Merge branch 'development' of https://github.com/TwistedJenius/Torque3D into TwistedJenius-development

This commit is contained in:
David Wyand 2012-10-04 12:48:53 -04:00
commit 349f6f238f
10 changed files with 30 additions and 50 deletions

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this) function WorldEditor::init(%this)
{ {
// add objclasses which we do not want to collide with // add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective); %this.ignoreObjClass(Sky);
// editing modes // editing modes
%this.numEditModes = 3; %this.numEditModes = 3;

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this) function WorldEditor::init(%this)
{ {
// add objclasses which we do not want to collide with // add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective); %this.ignoreObjClass(Sky);
// editing modes // editing modes
%this.numEditModes = 3; %this.numEditModes = 3;

View file

@ -504,8 +504,6 @@ datablock PlayerData(DefaultPlayerData)
throwForce = 30; throwForce = 30;
aiAvoidThis = 1;
minLookAngle = "-1.4"; minLookAngle = "-1.4";
maxLookAngle = "0.9"; maxLookAngle = "0.9";
maxFreelookAngle = 3.0; maxFreelookAngle = 3.0;

View file

@ -87,7 +87,7 @@ function DemoPlayer::onEndSequence(%this,%obj,%slot)
// AIPlayer static functions // AIPlayer static functions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
function AIPlayer::spawn(%name,%spawnPoint) function AIPlayer::produce(%name,%spawnPoint)
{ {
// Create the demo player object // Create the demo player object
%player = new AiPlayer() %player = new AiPlayer()
@ -107,7 +107,7 @@ function AIPlayer::spawnOnPath(%name,%path)
if (!isObject(%path)) if (!isObject(%path))
return 0; return 0;
%node = %path.getObject(0); %node = %path.getObject(0);
%player = AIPlayer::spawn(%name, %node.getTransform()); %player = AIPlayer::produce(%name, %node.getTransform());
return %player; return %player;
} }
@ -118,7 +118,6 @@ function AIPlayer::spawnOnPath(%name,%path)
function AIPlayer::followPath(%this,%path,%node) function AIPlayer::followPath(%this,%path,%node)
{ {
// Start the player following a path // Start the player following a path
%this.stopThread(0);
if (!isObject(%path)) if (!isObject(%path))
{ {
%this.path = ""; %this.path = "";
@ -160,7 +159,7 @@ function AIPlayer::moveToNode(%this,%index)
// Move to the given path node index // Move to the given path node index
%this.currentNode = %index; %this.currentNode = %index;
%node = %this.path.getObject(%index); %node = %this.path.getObject(%index);
%this.setMoveDestination(%node.getTransform(), %index == %this.targetNode); %this.setMoveDestination(%node.getTransform());
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -298,28 +297,26 @@ function AIPlayer::getNearestPlayerTarget(%this)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
function AIManager::think(%this) function AIPlayer::think(%player)
{ {
// We could hook into the player's onDestroyed state instead of having to // Thinking allows us to consider other things...
// "think", but thinking allows us to consider other things... %player.schedule(500, think);
if (!isObject(%this.player))
%this.player = %this.spawn();
%this.schedule(500, think);
} }
function AIManager::spawn(%this) function AIPlayer::spawn(%path)
{ {
%player = AIPlayer::spawnOnPath("Shootme", "MissionGroup/Paths/Path1"); %player = AIPlayer::spawnOnPath("Shootme", %path);
if (isObject(%player)) if (isObject(%player))
{ {
%player.followPath("MissionGroup/Paths/Path1", -1); %player.followPath(%path, -1);
// slow this sucker down, I'm tired of chasing him! // slow this sucker down, I'm tired of chasing him!
%player.setMoveSpeed(0.5); %player.setMoveSpeed(0.5);
//%player.mountImage(xxxImage, 0); //%player.mountImage(xxxImage, 0);
//%player.setInventory(xxxAmmo, 1000); //%player.setInventory(xxxAmmo, 1000);
//%player.think();
return %player; return %player;
} }

View file

@ -405,10 +405,8 @@ function GameCore::startGame(%game)
$Game::Schedule = %game.schedule($Game::Duration * 1000, "onGameDurationEnd"); $Game::Schedule = %game.schedule($Game::Duration * 1000, "onGameDurationEnd");
$Game::Running = true; $Game::Running = true;
// // Start the AIManager // // Start the AI on the specified path
// new ScriptObject(AIManager) {}; // AIPlayer::spawn("Path1");
// MissionCleanup.add(AIManager);
// AIManager.think();
} }
function GameCore::endGame(%game, %client) function GameCore::endGame(%game, %client)
@ -423,9 +421,6 @@ function GameCore::endGame(%game, %client)
return; return;
} }
// // Stop the AIManager
// AIManager.delete();
// Stop any game timers // Stop any game timers
cancel($Game::Schedule); cancel($Game::Schedule);
@ -699,7 +694,7 @@ function GameCore::onDeath(%game, %client, %sourceObject, %sourceClient, %damage
call( %sendMsgFunction, 'MsgClientKilled', %client, %sourceClient, %damLoc ); call( %sendMsgFunction, 'MsgClientKilled', %client, %sourceClient, %damLoc );
// Dole out points and check for win // Dole out points and check for win
if ( %damageType $= "Suicide" || %sourceClient == %client ) if (( %damageType $= "Suicide" || %sourceClient == %client ) && isObject(%sourceClient))
{ {
%game.incDeaths( %client, 1, true ); %game.incDeaths( %client, 1, true );
%game.incScore( %client, -1, false ); %game.incScore( %client, -1, false );

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this) function WorldEditor::init(%this)
{ {
// add objclasses which we do not want to collide with // add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective); %this.ignoreObjClass(Sky);
// editing modes // editing modes
%this.numEditModes = 3; %this.numEditModes = 3;

View file

@ -504,8 +504,6 @@ datablock PlayerData(DefaultPlayerData)
throwForce = 30; throwForce = 30;
aiAvoidThis = 1;
minLookAngle = "-1.4"; minLookAngle = "-1.4";
maxLookAngle = "0.9"; maxLookAngle = "0.9";
maxFreelookAngle = 3.0; maxFreelookAngle = 3.0;

View file

@ -87,7 +87,7 @@ function DemoPlayer::onEndSequence(%this,%obj,%slot)
// AIPlayer static functions // AIPlayer static functions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
function AIPlayer::spawn(%name,%spawnPoint) function AIPlayer::produce(%name,%spawnPoint)
{ {
// Create the demo player object // Create the demo player object
%player = new AiPlayer() %player = new AiPlayer()
@ -107,7 +107,7 @@ function AIPlayer::spawnOnPath(%name,%path)
if (!isObject(%path)) if (!isObject(%path))
return 0; return 0;
%node = %path.getObject(0); %node = %path.getObject(0);
%player = AIPlayer::spawn(%name, %node.getTransform()); %player = AIPlayer::produce(%name, %node.getTransform());
return %player; return %player;
} }
@ -118,7 +118,6 @@ function AIPlayer::spawnOnPath(%name,%path)
function AIPlayer::followPath(%this,%path,%node) function AIPlayer::followPath(%this,%path,%node)
{ {
// Start the player following a path // Start the player following a path
%this.stopThread(0);
if (!isObject(%path)) if (!isObject(%path))
{ {
%this.path = ""; %this.path = "";
@ -160,7 +159,7 @@ function AIPlayer::moveToNode(%this,%index)
// Move to the given path node index // Move to the given path node index
%this.currentNode = %index; %this.currentNode = %index;
%node = %this.path.getObject(%index); %node = %this.path.getObject(%index);
%this.setMoveDestination(%node.getTransform(), %index == %this.targetNode); %this.setMoveDestination(%node.getTransform());
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -298,28 +297,26 @@ function AIPlayer::getNearestPlayerTarget(%this)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
function AIManager::think(%this) function AIPlayer::think(%player)
{ {
// We could hook into the player's onDestroyed state instead of having to // Thinking allows us to consider other things...
// "think", but thinking allows us to consider other things... %player.schedule(500, think);
if (!isObject(%this.player))
%this.player = %this.spawn();
%this.schedule(500, think);
} }
function AIManager::spawn(%this) function AIPlayer::spawn(%path)
{ {
%player = AIPlayer::spawnOnPath("Shootme", "MissionGroup/Paths/Path1"); %player = AIPlayer::spawnOnPath("Shootme", %path);
if (isObject(%player)) if (isObject(%player))
{ {
%player.followPath("MissionGroup/Paths/Path1", -1); %player.followPath(%path, -1);
// slow this sucker down, I'm tired of chasing him! // slow this sucker down, I'm tired of chasing him!
%player.setMoveSpeed(0.5); %player.setMoveSpeed(0.5);
//%player.mountImage(xxxImage, 0); //%player.mountImage(xxxImage, 0);
//%player.setInventory(xxxAmmo, 1000); //%player.setInventory(xxxAmmo, 1000);
//%player.think();
return %player; return %player;
} }

View file

@ -405,10 +405,8 @@ function GameCore::startGame(%game)
$Game::Schedule = %game.schedule($Game::Duration * 1000, "onGameDurationEnd"); $Game::Schedule = %game.schedule($Game::Duration * 1000, "onGameDurationEnd");
$Game::Running = true; $Game::Running = true;
// // Start the AIManager // // Start the AI on the specified path
// new ScriptObject(AIManager) {}; // AIPlayer::spawn("Path1");
// MissionCleanup.add(AIManager);
// AIManager.think();
} }
function GameCore::endGame(%game, %client) function GameCore::endGame(%game, %client)
@ -423,9 +421,6 @@ function GameCore::endGame(%game, %client)
return; return;
} }
// // Stop the AIManager
// AIManager.delete();
// Stop any game timers // Stop any game timers
cancel($Game::Schedule); cancel($Game::Schedule);
@ -699,7 +694,7 @@ function GameCore::onDeath(%game, %client, %sourceObject, %sourceClient, %damage
call( %sendMsgFunction, 'MsgClientKilled', %client, %sourceClient, %damLoc ); call( %sendMsgFunction, 'MsgClientKilled', %client, %sourceClient, %damLoc );
// Dole out points and check for win // Dole out points and check for win
if ( %damageType $= "Suicide" || %sourceClient == %client ) if (( %damageType $= "Suicide" || %sourceClient == %client ) && isObject(%sourceClient))
{ {
%game.incDeaths( %client, 1, true ); %game.incDeaths( %client, 1, true );
%game.incScore( %client, -1, false ); %game.incScore( %client, -1, false );

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this) function WorldEditor::init(%this)
{ {
// add objclasses which we do not want to collide with // add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective); %this.ignoreObjClass(Sky);
// editing modes // editing modes
%this.numEditModes = 3; %this.numEditModes = 3;