(Mostly) updated verve implementation.

This commit is contained in:
Areloch 2019-03-07 16:23:41 -06:00
parent 775ca57047
commit 87ee749801
538 changed files with 68727 additions and 49 deletions

View file

@ -0,0 +1,19 @@
function Verve::create( %this )
{
exec("data/Verve/gui/verveCinematic.gui");
exec("data/Verve/scripts/server/verveCinematicController.cs");
exec("data/Verve/scripts/server/verveCinematicTrigger.cs");
exec("data/Verve/scripts/server/vervePathTutorialData.cs");
if(isObject(DatablockFilesList))
{
DatablockFilesList.add( "data/Verve/scripts/datablocks/verve/VerveActorData.cs" );
DatablockFilesList.add( "data/Verve/scripts/datablocks/verve/VervePathTutorialData.cs" );
}
}
function Verve::destroy( %this )
{
}

View file

@ -0,0 +1,9 @@
<ModuleDefinition
ModuleId="Verve"
VersionId="1"
Description="Module that implements Verve."
ScriptFile="Verve.cs"
CreateFunction="create"
DestroyFunction="destroy"
Group="Game">
</ModuleDefinition>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author />
<authoring_tool>Torque 3D 2009 Interior Exporter</authoring_tool>
<comments />
</contributor>
<created>8/09/2009 2:52:45 PM</created>
<modified>8/09/2009 2:52:45 PM</modified>
<revision />
<title />
<subject />
<keywords />
<unit meter="1.000000" />
<up_axis>Z_UP</up_axis>
</asset>
<library_images>
<image id="PILLAR128X128G-Diffuse" name="PILLAR128X128G-Diffuse">
<init_from>file://PILLAR128X128G.png</init_from>
</image>
<image id="FULL128X128G-Diffuse" name="FULL128X128G-Diffuse">
<init_from>file://FULL128X128G.png</init_from>
</image>
<image id="BLACK-Diffuse" name="BLACK-Diffuse">
<init_from>file://BLACK.png</init_from>
</image>
</library_images>
<library_materials>
<material id="PILLAR128X128G" name="PILLAR128X128G">
<instance_effect url="#PILLAR128X128G-fx" />
</material>
<material id="FULL128X128G" name="FULL128X128G">
<instance_effect url="#FULL128X128G-fx" />
</material>
<material id="BLACK" name="BLACK">
<instance_effect url="#BLACK-fx" />
</material>
</library_materials>
<library_effects>
<effect id="PILLAR128X128G-fx" name="PILLAR128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="PILLAR128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="FULL128X128G-fx" name="FULL128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="FULL128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="BLACK-fx" name="BLACK-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="BLACK-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="Door-lib" name="DoorMesh">
<mesh>
<source id="Door-Position">
<float_array id="Door-Position-array" count="24">
2.0000 -0.2500 -2.0000
2.0000 -0.2500 2.0000
2.0000 0.2500 -2.0000
2.0000 0.2500 2.0000
-2.0000 -0.2500 -2.0000
-2.0000 0.2500 -2.0000
-2.0000 -0.2500 2.0000
-2.0000 0.2500 2.0000
</float_array>
<technique_common>
<accessor source="#Door-Position-array" count="8" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="Door-Normal">
<float_array id="Door-Normal-array" count="18">
1.0000 -0.0000 -0.0000
-1.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000
-0.0000 -1.0000 -0.0000
-0.0000 -0.0000 1.0000
-0.0000 -0.0000 -1.0000
</float_array>
<technique_common>
<accessor source="#Door-Normal-array" count="6" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="Door-UV0">
<float_array id="Door-UV0-array" count="28">
5.7500 0.0000
5.7500 1.0000
6.0000 0.0000
6.0000 1.0000
-5.7500 0.0000
-6.0000 0.0000
-5.7500 1.0000
-6.0000 1.0000
1.0000 0.0000
0.0000 0.0000
1.0000 1.0000
0.0000 1.0000
8.0000 0.0000
8.0000 1.0000
</float_array>
<technique_common>
<accessor source="#Door-UV0-array" count="14" stride="2">
<param name="S" type="float" />
<param name="T" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="Door-Vertex">
<input semantic="POSITION" source="#Door-Position" />
</vertices>
<triangles material="PILLAR128X128G" count="4">
<input semantic="VERTEX" offset="0" source="#Door-Vertex" />
<input semantic="NORMAL" offset="1" source="#Door-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#Door-UV0" />
<p>
3 0 3 1 0 1 0 0 0
2 0 2 3 0 3 0 0 0
7 1 7 5 1 5 4 1 4
6 1 6 7 1 7 4 1 4
</p>
</triangles>
<triangles material="FULL128X128G" count="4">
<input semantic="VERTEX" offset="0" source="#Door-Vertex" />
<input semantic="NORMAL" offset="1" source="#Door-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#Door-UV0" />
<p>
3 2 11 2 2 9 5 2 8
7 2 10 3 2 11 5 2 8
1 3 10 6 3 11 4 3 9
0 3 8 1 3 10 4 3 9
</p>
</triangles>
<triangles material="BLACK" count="4">
<input semantic="VERTEX" offset="0" source="#Door-Vertex" />
<input semantic="NORMAL" offset="1" source="#Door-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#Door-UV0" />
<p>
3 4 13 7 4 11 6 4 9
1 4 12 3 4 13 6 4 9
2 5 11 0 5 9 4 5 12
5 5 13 2 5 11 4 5 12
</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="RootNode" name="RootNode">
<node id="Door" name="Door">
<instance_geometry url="#Door-lib">
<bind_material>
<technique_common>
<instance_material symbol="PILLAR128X128G" target="#PILLAR128X128G" />
<instance_material symbol="FULL128X128G" target="#FULL128X128G" />
<instance_material symbol="BLACK" target="#BLACK" />
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#RootNode" />
</scene>
</COLLADA>

View file

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="utf-8" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author />
<authoring_tool>Torque 3D 2009 Interior Exporter</authoring_tool>
<comments />
</contributor>
<created>12/09/2009 9:50:04 AM</created>
<modified>12/09/2009 9:50:04 AM</modified>
<revision />
<title />
<subject />
<keywords />
<unit meter="1.000000" />
<up_axis>Z_UP</up_axis>
</asset>
<library_images>
<image id="DemoRoomLrg_PILLAR128X128G-Diffuse" name="DemoRoomLrg_PILLAR128X128G-Diffuse">
<init_from>file://PILLAR128X128G.png</init_from>
</image>
<image id="DemoRoomLrg_FULL128X128G-Diffuse" name="DemoRoomLrg_FULL128X128G-Diffuse">
<init_from>file://FULL128X128G.png</init_from>
</image>
</library_images>
<library_materials>
<material id="DemoRoomLrg_PILLAR128X128G" name="DemoRoomLrg_PILLAR128X128G">
<instance_effect url="#DemoRoomLrg_PILLAR128X128G-fx" />
</material>
<material id="DemoRoomLrg_FULL128X128G" name="DemoRoomLrg_FULL128X128G">
<instance_effect url="#DemoRoomLrg_FULL128X128G-fx" />
</material>
</library_materials>
<library_effects>
<effect id="DemoRoomLrg_PILLAR128X128G-fx" name="DemoRoomLrg_PILLAR128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="DemoRoomLrg_PILLAR128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="DemoRoomLrg_FULL128X128G-fx" name="DemoRoomLrg_FULL128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="DemoRoomLrg_FULL128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="ElevatorPlatform_5c1b8cbb-lib" name="ElevatorPlatform_5c1b8cbbMesh">
<mesh>
<source id="ElevatorPlatform_5c1b8cbb-Position">
<float_array id="ElevatorPlatform_5c1b8cbb-Position-array" count="24">
2.0000 -1.7500 -0.2500
2.0000 -1.7500 0.2500
2.0000 1.7500 -0.2500
2.0000 1.7500 0.2500
-2.0000 -1.7500 -0.2500
-2.0000 1.7500 -0.2500
-2.0000 -1.7500 0.2500
-2.0000 1.7500 0.2500
</float_array>
<technique_common>
<accessor source="#ElevatorPlatform_5c1b8cbb-Position-array" count="8" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ElevatorPlatform_5c1b8cbb-Normal">
<float_array id="ElevatorPlatform_5c1b8cbb-Normal-array" count="18">
1.0000 -0.0000 -0.0000
-1.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000
-0.0000 -1.0000 -0.0000
-0.0000 -0.0000 1.0000
-0.0000 -0.0000 -1.0000
</float_array>
<technique_common>
<accessor source="#ElevatorPlatform_5c1b8cbb-Normal-array" count="6" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ElevatorPlatform_5c1b8cbb-UV0">
<float_array id="ElevatorPlatform_5c1b8cbb-UV0-array" count="16">
3.2500 -1.0000
3.0000 -1.0000
3.2500 0.0000
3.0000 0.0000
0.0000 -1.0000
0.0000 0.0000
1.0000 -1.0000
1.0000 0.0000
</float_array>
<technique_common>
<accessor source="#ElevatorPlatform_5c1b8cbb-UV0-array" count="8" stride="2">
<param name="S" type="float" />
<param name="T" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ElevatorPlatform_5c1b8cbb-Vertex">
<input semantic="POSITION" source="#ElevatorPlatform_5c1b8cbb-Position" />
</vertices>
<triangles material="DemoRoomLrg_PILLAR128X128G" count="8">
<input semantic="VERTEX" offset="0" source="#ElevatorPlatform_5c1b8cbb-Vertex" />
<input semantic="NORMAL" offset="1" source="#ElevatorPlatform_5c1b8cbb-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#ElevatorPlatform_5c1b8cbb-UV0" />
<p>
3 0 3 1 0 1 0 0 0
2 0 2 3 0 3 0 0 0
7 1 1 5 1 0 4 1 2
6 1 3 7 1 1 4 1 2
3 2 1 2 2 0 5 2 2
7 2 3 3 2 1 5 2 2
1 3 3 6 3 1 4 3 0
0 3 2 1 3 3 4 3 0
</p>
</triangles>
<triangles material="DemoRoomLrg_FULL128X128G" count="4">
<input semantic="VERTEX" offset="0" source="#ElevatorPlatform_5c1b8cbb-Vertex" />
<input semantic="NORMAL" offset="1" source="#ElevatorPlatform_5c1b8cbb-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#ElevatorPlatform_5c1b8cbb-UV0" />
<p>
3 4 7 7 4 5 6 4 4
1 4 6 3 4 7 6 4 4
2 5 5 0 5 4 4 5 6
5 5 7 2 5 5 4 5 6
</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="RootNode" name="RootNode">
<node id="ElevatorPlatform_5c1b8cbb" name="ElevatorPlatform_5c1b8cbb">
<instance_geometry url="#ElevatorPlatform_5c1b8cbb-lib">
<bind_material>
<technique_common>
<instance_material symbol="DemoRoomLrg_PILLAR128X128G" target="#DemoRoomLrg_PILLAR128X128G" />
<instance_material symbol="DemoRoomLrg_FULL128X128G" target="#DemoRoomLrg_FULL128X128G" />
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#RootNode" />
</scene>
</COLLADA>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -0,0 +1,179 @@
//--- Door.dae MATERIALS BEGIN ---
singleton Material(Door_PILLAR128X128G)
{
mapTo = "PILLAR128X128G";
diffuseMap[0] = "PILLAR128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(Door_FULL128X128G)
{
mapTo = "FULL128X128G";
diffuseMap[0] = "FULL128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(Door_BLACK)
{
mapTo = "BLACK";
diffuseMap[0] = "BLACK";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
//--- Door.dae MATERIALS END ---
//--- DemoRoomLrg.dae MATERIALS BEGIN ---
singleton Material(DemoRoomLrg_BLACK)
{
mapTo = "BLACK";
diffuseMap[0] = "BLACK";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(DemoRoomLrg_FULL128X128G)
{
mapTo = "FULL128X128G";
diffuseMap[0] = "FULL128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(DemoRoomLrg_PILLAR128X128G)
{
mapTo = "PILLAR128X128G";
diffuseMap[0] = "PILLAR128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(DemoRoomLrg_FULL64X64G)
{
mapTo = "FULL64X64G";
diffuseMap[0] = "FULL64X64G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
//--- DemoRoomLrg.dae MATERIALS END ---
//--- ElevatorPlatform.dae MATERIALS BEGIN ---
singleton Material(ElevatorPlatform_DemoRoomLrg_PILLAR128X128G)
{
mapTo = "DemoRoomLrg_PILLAR128X128G";
diffuseMap[0] = "PILLAR128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(ElevatorPlatform_DemoRoomLrg_FULL128X128G)
{
mapTo = "DemoRoomLrg_FULL128X128G";
diffuseMap[0] = "FULL128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
//--- ElevatorPlatform.dae MATERIALS END ---

View file

@ -0,0 +1,43 @@
//--- OBJECT WRITE BEGIN ---
%guiContent = new GameTSCtrl(VerveCinematicGui) {
canSaveDynamicFields = "1";
Enabled = "1";
isContainer = "1";
Profile = "GuiContentProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = "0 0";
Extent = "1024 768";
MinExtent = "8 8";
canSave = "1";
Visible = "1";
tooltipprofile = "GuiToolTipProfile";
hovertime = "1000";
Margin = "0 0 0 0";
Padding = "0 0 0 0";
AnchorTop = "1";
AnchorBottom = "0";
AnchorLeft = "1";
AnchorRight = "0";
cameraZRot = "0";
forceFOV = "0";
helpTag = "0";
noCursor = "1";
new VFadeControl( VFadeControlGui ) {
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "0";
Profile = "GuiTransparentProfile";
HorizSizing = "width";
VertSizing = "height";
position = "0 0";
Extent = "1024 768";
MinExtent = "8 8";
canSave = "1";
Visible = "1";
tooltipprofile = "GuiToolTipProfile";
hovertime = "1000";
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,68 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
// Load up all datablocks. This function is called when
// a server is constructed.
// Do the sounds first -- later scripts/datablocks may need them
exec("./audioProfiles.cs");
// LightFlareData and LightAnimData(s)
exec("./lights.cs");
// Do the various effects next -- later scripts/datablocks may need them
exec("./particles.cs");
exec("./environment.cs");
exec("./triggers.cs");
// Add a rigid example
exec("./rigidShape.cs");
exec("./health.cs");
// Load our supporting weapon datablocks, effects and such. They must be
// loaded before any weapon that uses them.
exec("./weapon.cs");
exec("./weapons/grenadefx.cs");
exec("./weapons/rocketfx.cs");
// Load the weapon datablocks
exec("./weapons/Lurker.cs");
exec("./weapons/Ryder.cs");
exec("./weapons/ProxMine.cs");
exec("./weapons/Turret.cs");
exec("./teleporter.cs");
// Load the default player datablocks
exec("./player.cs");
// Load our other player datablocks
exec("./aiPlayer.cs");
// Load the vehicle datablocks
exec("./vehicles/cheetahCar.cs");
// Load Verve Data.
exec("./verve/VerveActorData.cs");
exec("./verve/VervePathTutorialData.cs");

View file

@ -0,0 +1,40 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
function VHumanoidActorData::create( %dataBlock )
{
%actorObject = new VHumanoidActor()
{
dataBlock = %dataBlock;
};
return %actorObject;
}
//-----------------------------------------------------------------------------
datablock VHumanoidActorData( VSoldierActorData )
{
Category = "VActor";
ShapeFile = "data/Verve/art/shapes/actors/Soldier/soldier_rigged.DAE";
};

View file

@ -0,0 +1,34 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock StaticShapeData( VervePathTutorial_DoorData )
{
Category = "VerveTutorialData";
shapeFile = "data/Verve/art/shapes/VervePathTutorial/Door.dae";
};
datablock StaticShapeData( VervePathTutorial_ElevatorPlatformData )
{
Category = "VerveTutorialData";
shapeFile = "data/Verve/art/shapes/VervePathTutorial/ElevatorPlatform.dae";
};

View file

@ -0,0 +1,130 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
$Verve::CinematicController = 0;
//-----------------------------------------------------------------------------
function Verve::GetCinematicController()
{
// Valid Controller?
if ( !isObject( $Verve::CinematicController ) )
{
$Verve::CinematicController = new VController()
{
Class = "VerveCinematicController";
};
}
// Return Controller.
return $Verve::CinematicController;
}
//-----------------------------------------------------------------------------
// Verve::PlayCinematic( "sequences/BurgFlythrough.vsf" );
function Verve::PlayCinematic( %sequenceFile )
{
if ( !isFile( %sequenceFile ) )
{
error ( "Verve::PlayCinematic() - Invalid Sequence File." );
return 0;
}
// Fetch Controller.
%controller = Verve::GetCinematicController();
// Already Playing?
if ( %controller.isPlaying() )
{
error ( "Verve::PlayCinematic() - Cinematic in Progress." );
return 0;
}
// Load the Sequence.
if ( !%controller.readFile( %sequenceFile ) )
{
return 0;
}
// Stop Input.
if ( isObject( moveMap ) )
{
moveMap.pop();
}
// Store the Current Gui.
$Verve::StoredGui = Canvas.getContent();
// Valid GUI?
if ( !isObject( VerveCinematicGui ) )
{
// Execute GUI Script.
exec( "art/gui/VerveCinematic.gui" );
}
// Set the Cinematic Gui.
Canvas.setContent( VerveCinematicGui );
// Clear First Person.
%clientCount = ClientGroup.getCount();
for ( %i = 0; %i < %clientCount; %i++ )
{
// Fetch Client.
%clientConnection = ClientGroup.getObject( %i );
// Store Status.
%clientConnection.FirstPerson = %clientConnection.isFirstPerson();
// Clear.
%clientConnection.setFirstPerson( false );
}
// Play the Sequence.
%controller.play();
// Return the Controller.
return %controller;
}
//-----------------------------------------------------------------------------
function VerveCinematicController::onStop( %this )
{
// Reset First Person Status.
%clientCount = ClientGroup.getCount();
for ( %i = 0; %i < %clientCount; %i++ )
{
// Fetch Client.
%clientConnection = ClientGroup.getObject( %i );
// Reset.
%clientConnection.setFirstPerson( %clientConnection.FirstPerson );
}
// Reset the Canvas.
Canvas.setContent( $Verve::StoredGui );
// Resume Input.
if ( isObject( moveMap ) )
{
moveMap.push();
}
}

View file

@ -0,0 +1,35 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock TriggerData( VerveCinematicTrigger )
{
Field = "Value";
};
//-----------------------------------------------------------------------------
function VerveCinematicTrigger::onEnterTrigger( %this, %trigger, %object )
{
// Play Sequence.
Verve::PlayCinematic( %trigger.SequenceFile );
}

View file

@ -0,0 +1,34 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock StaticShapeData( VervePathTutorial_DoorData )
{
Category = "VerveTutorialData";
shapeFile = "art/shapes/VervePathTutorial/Door.dae";
};
datablock StaticShapeData( VervePathTutorial_ElevatorPlatformData )
{
Category = "VerveTutorialData";
shapeFile = "art/shapes/VervePathTutorial/ElevatorPlatform.dae";
};

View file

@ -0,0 +1,85 @@
<?xml version="1.0" ?>
<VerveControllerSequence Version="0.0.0a">
<Properties>
<Time>0</Time>
<Duration>1000</Duration>
<TimeScale>1</TimeScale>
<Loop>1</Loop>
<LoopBackwards>1</LoopBackwards>
<LoopCount>0</LoopCount>
<LoopDelay>500</LoopDelay>
<ResetOnCompletion>1</ResetOnCompletion>
</Properties>
<DataTable>
<DataItem Type="STATIC" Name="DoorGroup0_LeftPath" Value="DoorPath_Left" />
<DataItem Type="STATIC" Name="DoorGroup0_Left" Value="DoorShape0_Left" />
<DataItem Type="STATIC" Name="DoorGroup0_RightPath" Value="DoorPath_Right" />
<DataItem Type="STATIC" Name="DoorGroup0_Right" Value="DoorShape0_Right" />
</DataTable>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup0_Left</Label>
<Reference>DoorGroup0_Left</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup0_LeftPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>0</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup0_Right</Label>
<Reference>DoorGroup0_Right</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup0_RightPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>0</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
</VerveControllerSequence>

View file

@ -0,0 +1,87 @@
<?xml version="1.0" ?>
<VerveControllerSequence Version="0.0.0a">
<Properties>
<Time>0</Time>
<Duration>1000</Duration>
<TimeScale>1</TimeScale>
<Loop>1</Loop>
<LoopBackwards>1</LoopBackwards>
<LoopDelay>500</LoopDelay>
<ResetOnCompletion>1</ResetOnCompletion>
<name>VerveEditorController</name>
<parentGroup>RootGroup</parentGroup>
<canSaveDynamicFields>1</canSaveDynamicFields>
</Properties>
<DataTable>
<DataItem Type="STATIC" Name="DoorGroup1_Right" Value="DoorShape1_Right" />
<DataItem Type="STATIC" Name="DoorGroup1_Left" Value="DoorShape1_Left" />
<DataItem Type="STATIC" Name="DoorGroup1_RightPath" Value="DoorPath_Right" />
<DataItem Type="STATIC" Name="DoorGroup1_LeftPath" Value="DoorPath_Left" />
</DataTable>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup1_Left</Label>
<Reference>DoorGroup1_Left</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup1_LeftPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>1</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup1_Right</Label>
<Reference>DoorGroup1_Right</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup1_RightPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>1</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
</VerveControllerSequence>

View file

@ -0,0 +1,53 @@
<?xml version="1.0" ?>
<VerveControllerSequence Version="0.0.0a">
<Properties>
<Time>0</Time>
<Duration>5000</Duration>
<TimeScale>1</TimeScale>
<Loop>0</Loop>
<LoopBackwards>0</LoopBackwards>
<LoopCount>-1</LoopCount>
<LoopDelay>0</LoopDelay>
<ResetOnCompletion>0</ResetOnCompletion>
<name>VerveEditorController</name>
<parentGroup>RootGroup</parentGroup>
<canSaveDynamicFields>1</canSaveDynamicFields>
</Properties>
<DataTable>
<DataItem Type="STATIC" Name="ElevatorPlatformGroup" Value="ElevatorPlatformShape" />
<DataItem Type="STATIC" Name="ElevatorPlatformGroupPath" Value="ElevatorPlatformPath" />
</DataTable>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>ElevatorPlatformGroup</Label>
<Reference>ElevatorPlatformGroup</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>ElevatorPlatformGroupPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>0</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>5000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
</VerveControllerSequence>