From: <ave...@us...> - 2009-12-29 21:57:39
|
Revision: 7485 http://gemrb.svn.sourceforge.net/gemrb/?rev=7485&view=rev Author: avenger_teambg Date: 2009-12-29 21:57:27 +0000 (Tue, 29 Dec 2009) Log Message: ----------- implemented SetTokenObject action Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp gemrb/trunk/gemrb/plugins/Core/GameScript.cpp gemrb/trunk/gemrb/plugins/Core/GameScript.h Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-12-29 12:45:48 UTC (rev 7484) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-12-29 21:57:27 UTC (rev 7485) @@ -3240,6 +3240,7 @@ core->GetTokenDictionary()->SetAt( parameters->string1Parameter, str); } +//Assigns a numeric variable to the token void GameScript::SetTokenGlobal(Scriptable* Sender, Action* parameters) { ieDword value = CheckVariable( Sender, parameters->string0Parameter ); @@ -3249,6 +3250,17 @@ core->GetTokenDictionary()->SetAtCopy( parameters->string1Parameter, tmpstr ); } +//Assigns the target object's name (not scriptname) to the token +void GameScript::SetTokenObject(Scriptable* Sender, Action* parameters) +{ + Scriptable* tar = GetActorFromObject( Sender, parameters->objects[1] ); + if (!tar || tar->Type != ST_ACTOR) { + return; + } + Actor* actor = ( Actor* ) tar; + core->GetTokenDictionary()->SetAtCopy( parameters->string0Parameter, actor->GetName(0) ); +} + void GameScript::PlayDead(Scriptable* Sender, Action* parameters) { if (Sender->Type != ST_ACTOR) { Modified: gemrb/trunk/gemrb/plugins/Core/GameScript.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/GameScript.cpp 2009-12-29 12:45:48 UTC (rev 7484) +++ gemrb/trunk/gemrb/plugins/Core/GameScript.cpp 2009-12-29 21:57:27 UTC (rev 7485) @@ -815,6 +815,7 @@ {"settoken", GameScript::SetToken, 0}, {"settoken2da", GameScript::SetToken2DA, 0}, //GemRB specific {"settokenglobal", GameScript::SetTokenGlobal,AF_MERGESTRINGS}, + {"settokenobject", GameScript::SetTokenObject,0}, {"setupwish", GameScript::SetupWish, 0}, {"setvisualrange", GameScript::SetVisualRange, 0}, {"sg", GameScript::SG, 0}, Modified: gemrb/trunk/gemrb/plugins/Core/GameScript.h =================================================================== --- gemrb/trunk/gemrb/plugins/Core/GameScript.h 2009-12-29 12:45:48 UTC (rev 7484) +++ gemrb/trunk/gemrb/plugins/Core/GameScript.h 2009-12-29 21:57:27 UTC (rev 7485) @@ -1347,6 +1347,7 @@ static void SetToken(Scriptable* Sender, Action* parameters); static void SetToken2DA(Scriptable* Sender, Action* parameters); static void SetTokenGlobal(Scriptable* Sender, Action* parameters); + static void SetTokenObject(Scriptable* Sender, Action* parameters); static void SetTrackString(Scriptable* Sender, Action* parameters); static void SetupWish(Scriptable* Sender, Action* parameters); static void SetVisualRange(Scriptable* Sender, Action* parameters); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |