From: <ave...@us...> - 2008-08-01 16:20:14
|
Revision: 5241 http://gemrb.svn.sourceforge.net/gemrb/?rev=5241&view=rev Author: avenger_teambg Date: 2008-08-01 16:20:24 +0000 (Fri, 01 Aug 2008) Log Message: ----------- moving close to Point target when casting spells Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2008-08-01 16:15:25 UTC (rev 5240) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2008-08-01 16:20:24 UTC (rev 5241) @@ -2245,6 +2245,18 @@ return; } + if(Sender->Type==ST_ACTOR) { + Actor *act = (Actor *) Sender; + + unsigned int dist = GetSpellDistance(spellres, act); + + if (PersonalDistance(parameters->pointParameter, Sender) > dist) { + GoNearAndRetry(Sender, parameters->pointParameter, dist); + Sender->ReleaseCurrentAction(); + return; + } + } + //set target Actor *actor = (Actor *) Sender; actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-02-04 22:09:51
|
Revision: 5652 http://gemrb.svn.sourceforge.net/gemrb/?rev=5652&view=rev Author: fuzzie Date: 2009-02-04 21:41:03 +0000 (Wed, 04 Feb 2009) Log Message: ----------- display string on failed attempt to open locked door Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-02-04 21:02:15 UTC (rev 5651) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-02-04 21:41:03 UTC (rev 5652) @@ -2159,6 +2159,7 @@ //TODO: the original engine allowed opening of a door when the //key was on any of the partymembers if (!Key || !actor->inventory.HasItem(Key,0) ) { + core->DisplayConstantString(STR_DOORLOCKED,0xd7d7be); //playsound unsuccessful opening of door core->PlaySound(DS_OPEN_FAIL); Sender->ReleaseCurrentAction(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ze...@us...> - 2009-03-07 20:45:59
|
Revision: 5770 http://gemrb.svn.sourceforge.net/gemrb/?rev=5770&view=rev Author: zefklop Date: 2009-03-07 20:45:57 +0000 (Sat, 07 Mar 2009) Log Message: ----------- DisplayStringWait is almost like DisplayStringHead... Now Jon speaks to his golem. Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-07 19:50:06 UTC (rev 5769) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-07 20:45:57 UTC (rev 5770) @@ -1412,7 +1412,7 @@ Sender->AddActionInFront( Sender->CurrentAction ); return; } - DisplayStringCore( Sender, parameters->int0Parameter, DS_CONSOLE|DS_WAIT|DS_SPEECH); + DisplayStringCore( Sender, parameters->int0Parameter, DS_CONSOLE|DS_WAIT|DS_SPEECH|DS_HEAD); Sender->ReleaseCurrentAction(); } @@ -2285,9 +2285,9 @@ if(Sender->Type==ST_ACTOR) { Actor *act = (Actor *) Sender; - + unsigned int dist = GetSpellDistance(spellres, act); - + if (PersonalDistance(tar, Sender) > dist) { GoNearAndRetry(Sender, tar, true, dist); Sender->ReleaseCurrentAction(); @@ -2329,9 +2329,9 @@ if(Sender->Type==ST_ACTOR) { Actor *act = (Actor *) Sender; - + unsigned int dist = GetSpellDistance(spellres, act); - + if (PersonalDistance(parameters->pointParameter, Sender) > dist) { GoNearAndRetry(Sender, parameters->pointParameter, dist); Sender->ReleaseCurrentAction(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ave...@us...> - 2009-03-13 19:07:04
|
Revision: 5789 http://gemrb.svn.sourceforge.net/gemrb/?rev=5789&view=rev Author: avenger_teambg Date: 2009-03-13 19:06:45 +0000 (Fri, 13 Mar 2009) Log Message: ----------- fixed a few bad casts causing crashes Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-11 22:32:45 UTC (rev 5788) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-13 19:06:45 UTC (rev 5789) @@ -1419,7 +1419,7 @@ void GameScript::ForceFacing(Scriptable* Sender, Action* parameters) { Scriptable* tar = GetActorFromObject( Sender, parameters->objects[1] ); - if (!tar) { + if (!tar && tar->Type!=ST_ACTOR) { Sender->ReleaseCurrentAction(); return; } @@ -1462,7 +1462,7 @@ void GameScript::FaceSavedLocation(Scriptable* Sender, Action* parameters) { Scriptable* target = GetActorFromObject( Sender, parameters->objects[1] ); - if (!target) { + if (!target && target->Type!=ST_ACTOR) { Sender->ReleaseCurrentAction(); return; } @@ -2221,7 +2221,7 @@ core->PlaySound(DS_CLOSE_FAIL); } else { Actor *actor = (Actor *) Sender; - actor->SetOrientation( GetOrient( *otherp, actor->Pos ), false); + actor->SetOrientation( GetOrient( *otherp, actor->Pos ), false); door->SetDoorOpen( false, true, actor->GetID() ); } } else { @@ -2295,10 +2295,12 @@ } } - //set target - Actor *actor = (Actor *) Sender; - if (tar != Sender) { - actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); + //face target + if (Sender->Type==ST_ACTOR) { + Actor *actor = (Actor *) Sender; + if (tar != Sender) { + actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); + } } Sender->CastSpell( spellres, tar, true ); @@ -2339,9 +2341,12 @@ } } - //set target - Actor *actor = (Actor *) Sender; - actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); + //face target + if (Sender->Type==ST_ACTOR) { + Actor *actor = (Actor *) Sender; + actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); + } + Sender->CastSpellPoint( spellres, parameters->pointParameter, true ); //if target was set, feed action back @@ -2377,10 +2382,12 @@ return; } - //set target - Actor *actor = (Actor *) Sender; - if (tar != Sender) { - actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); + //face target + if (Sender->Type==ST_ACTOR) { + Actor *actor = (Actor *) Sender; + if (tar != Sender) { + actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); + } } Sender->CastSpell( spellres, tar, false ); @@ -2410,9 +2417,12 @@ return; } - //set target - Actor *actor = (Actor *) Sender; - actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); + //face target + if (Sender->Type==ST_ACTOR) { + Actor *actor = (Actor *) Sender; + actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); + } + Sender->CastSpellPoint( spellres, parameters->pointParameter, false ); //if target was set, feed action back @@ -2448,10 +2458,12 @@ return; } - //set target - Actor *actor = (Actor *) Sender; - if (tar != Sender) { - actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); + //face target + if (Sender->type==ST_ACTOR) { + Actor *actor = (Actor *) Sender; + if (tar != Sender) { + actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); + } } Sender->CastSpell (spellres, tar, false); @@ -2480,9 +2492,12 @@ return; } - //set target - Actor *actor = (Actor *) Sender; - actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); + //face target + if (Sender->type==ST_ACTOR) { + Actor *actor = (Actor *) Sender; + actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); + } + Sender->CastSpellPoint (spellres, parameters->pointParameter, false); //if target was set, feed action back This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ave...@us...> - 2009-03-13 19:08:42
|
Revision: 5790 http://gemrb.svn.sourceforge.net/gemrb/?rev=5790&view=rev Author: avenger_teambg Date: 2009-03-13 19:08:27 +0000 (Fri, 13 Mar 2009) Log Message: ----------- typos Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-13 19:06:45 UTC (rev 5789) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-13 19:08:27 UTC (rev 5790) @@ -2459,7 +2459,7 @@ } //face target - if (Sender->type==ST_ACTOR) { + if (Sender->Type==ST_ACTOR) { Actor *actor = (Actor *) Sender; if (tar != Sender) { actor->SetOrientation( GetOrient( tar->Pos, actor->Pos ), false ); @@ -2493,7 +2493,7 @@ } //face target - if (Sender->type==ST_ACTOR) { + if (Sender->Type==ST_ACTOR) { Actor *actor = (Actor *) Sender; actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ave...@us...> - 2009-03-13 20:06:32
|
Revision: 5793 http://gemrb.svn.sourceforge.net/gemrb/?rev=5793&view=rev Author: avenger_teambg Date: 2009-03-13 20:06:22 +0000 (Fri, 13 Mar 2009) Log Message: ----------- fixed a minor bug in PlaySequence action Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-13 19:45:26 UTC (rev 5792) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-13 20:06:22 UTC (rev 5793) @@ -1766,7 +1766,7 @@ if (tar->Type != ST_ACTOR) { return; } - Actor* actor = ( Actor* ) Sender; + Actor* actor = ( Actor* ) tar; actor->SetStance( parameters->int0Parameter ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2009-03-15 22:18:17
|
Revision: 5807 http://gemrb.svn.sourceforge.net/gemrb/?rev=5807&view=rev Author: lynxlupodian Date: 2009-03-15 22:17:38 +0000 (Sun, 15 Mar 2009) Log Message: ----------- fixed one wrong stat assignement in ChangeAIType Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-15 20:23:14 UTC (rev 5806) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-03-15 22:17:38 UTC (rev 5807) @@ -5714,7 +5714,7 @@ continue; } if (!strnicmp(ObjectIDSTableNames[i],"class",8)) { - scr->SetBase(IE_RACE, val); + scr->SetBase(IE_CLASS, val); continue; } if (!strnicmp(ObjectIDSTableNames[i],"gender",8)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-05-15 20:19:43
|
Revision: 5979 http://gemrb.svn.sourceforge.net/gemrb/?rev=5979&view=rev Author: fuzzie Date: 2009-05-15 20:19:27 +0000 (Fri, 15 May 2009) Log Message: ----------- the other half of previous proximity traps commit Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-15 20:17:56 UTC (rev 5978) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-15 20:19:27 UTC (rev 5979) @@ -2023,8 +2023,12 @@ break; case ST_PROXIMITY: trigger = (InfoPoint *) tar; + // this point is incorrect! will cause actor to enter trap + // need to find a point using trigger->outline + p = &trigger->Pos; + otherp = p; distance = Distance(tar, Sender); - flags = trigger->Trapped && trigger->TrapDetected; + flags = trigger->Trapped && trigger->TrapDetected && trigger->CanDetectTrap(); break; default: Sender->ReleaseCurrentAction(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2009-05-16 10:33:40
|
Revision: 5981 http://gemrb.svn.sourceforge.net/gemrb/?rev=5981&view=rev Author: lynxlupodian Date: 2009-05-16 10:32:02 +0000 (Sat, 16 May 2009) Log Message: ----------- disallow suicide attempts by equipped weaponry Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-15 22:31:40 UTC (rev 5980) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-16 10:32:02 UTC (rev 5981) @@ -4524,7 +4524,7 @@ Scriptable* tar; tar = GetActorFromObject( Sender, parameters->objects[1], GA_NO_DEAD ); - if (!tar || (tar->Type != ST_ACTOR && tar->Type !=ST_DOOR && tar->Type !=ST_CONTAINER) ) { + if (!tar || (tar->Type != ST_ACTOR && tar->Type !=ST_DOOR && tar->Type !=ST_CONTAINER) || tar == Sender) { Sender->ReleaseCurrentAction(); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ave...@us...> - 2009-05-17 19:31:43
|
Revision: 5992 http://gemrb.svn.sourceforge.net/gemrb/?rev=5992&view=rev Author: avenger_teambg Date: 2009-05-17 19:31:35 +0000 (Sun, 17 May 2009) Log Message: ----------- changed DisplayString, maybe this is closer to reality Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-17 19:23:25 UTC (rev 5991) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-17 19:31:35 UTC (rev 5992) @@ -1395,14 +1395,18 @@ FreeSrc(rndstr, parameters->string0Parameter); } -//apparently this should not display over head +//apparently this should not display over head (for actors) void GameScript::DisplayString(Scriptable* Sender, Action* parameters) { Scriptable* target = GetActorFromObject( Sender, parameters->objects[1]); if (!target) { target=Sender; } - DisplayStringCore( target, parameters->int0Parameter, DS_CONSOLE); + if (Sender->Type==ST_ACTOR) { + DisplayStringCore( target, parameters->int0Parameter, DS_CONSOLE); + } else { + DisplayStringCore( target, parameters->int0Parameter, DS_CONSOLE|DS_HEAD); + } } //DisplayStringHead, but wait for previous talk to succeed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-05-23 16:53:49
|
Revision: 6067 http://gemrb.svn.sourceforge.net/gemrb/?rev=6067&view=rev Author: fuzzie Date: 2009-05-23 16:53:39 +0000 (Sat, 23 May 2009) Log Message: ----------- scripts need StartDialogue to happen immediately, so remove BD_CHECKDIST from flags Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-23 16:32:17 UTC (rev 6066) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-23 16:53:39 UTC (rev 6067) @@ -1800,7 +1800,7 @@ //string0, no interrupt, talkcount increased void GameScript::StartDialogue(Scriptable* Sender, Action* parameters) { - BeginDialog( Sender, parameters, BD_STRING0 | BD_TALKCOUNT | BD_SETDIALOG | BD_CHECKDIST ); + BeginDialog( Sender, parameters, BD_STRING0 | BD_TALKCOUNT | BD_SETDIALOG ); } //string0, no interrupt, talkcount increased, don't set default This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-05-30 19:42:17
|
Revision: 6193 http://gemrb.svn.sourceforge.net/gemrb/?rev=6193&view=rev Author: fuzzie Date: 2009-05-30 19:42:04 +0000 (Sat, 30 May 2009) Log Message: ----------- allow unlocking doors when another party member has the key Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-30 19:40:29 UTC (rev 6192) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-05-30 19:42:04 UTC (rev 6193) @@ -2165,9 +2165,28 @@ actor->SetOrientation( GetOrient( *otherp, actor->Pos ), false); if (door->Flags&DOOR_LOCKED) { const char *Key = door->GetKey(); - //TODO: the original engine allowed opening of a door when the - //key was on any of the partymembers - if (!Key || !actor->inventory.HasItem(Key,0) ) { + Actor *haskey = NULL; + + if (Key && actor->InParty) { + Game *game = core->GetGame(); + //allow opening of a door when the key is on any partymember + for (int idx = 0; idx < game->GetPartySize(false); idx++) { + Actor *pc = game->FindPC(idx + 1); + if (!pc) continue; + + if (pc->inventory.HasItem(Key,0) ) { + haskey = pc; + break; + } + } + } else if (Key) { + //actor is not in party, check only actor + if (actor->inventory.HasItem(Key,0) ) { + haskey = actor; + } + } + + if (!haskey) { core->DisplayConstantString(STR_DOORLOCKED,0xd7d7be,door); //playsound unsuccessful opening of door core->PlaySound(DS_OPEN_FAIL); @@ -2178,7 +2197,7 @@ // remove the key (but not in PS:T!) if (!core->HasFeature(GF_REVERSE_DOOR) && door->Flags&DOOR_KEY) { CREItem *item = NULL; - actor->inventory.RemoveItem(Key,0,&item); + haskey->inventory.RemoveItem(Key,0,&item); //the item should always be existing!!! if (item) { delete item; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-01 22:31:42
|
Revision: 6257 http://gemrb.svn.sourceforge.net/gemrb/?rev=6257&view=rev Author: fuzzie Date: 2009-06-01 22:31:29 +0000 (Mon, 01 Jun 2009) Log Message: ----------- apply DisplayString non-living sender change to DisplayStringNoName Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-01 21:40:41 UTC (rev 6256) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-01 22:31:29 UTC (rev 6257) @@ -1302,7 +1302,15 @@ void GameScript::DisplayStringNoName(Scriptable* Sender, Action* parameters) { - DisplayStringCore( Sender, parameters->int0Parameter, DS_CONSOLE|DS_NONAME); + Scriptable* target = GetActorFromObject( Sender, parameters->objects[1]); + if (!target) { + target=Sender; + } + if (Sender->Type==ST_ACTOR) { + DisplayStringCore( target, parameters->int0Parameter, DS_CONSOLE|DS_NONAME); + } else { + DisplayStringCore( target, parameters->int0Parameter, DS_AREA|DS_NONAME); + } } void GameScript::DisplayStringNoNameHead(Scriptable* Sender, Action* parameters) @@ -1423,7 +1431,7 @@ void GameScript::ForceFacing(Scriptable* Sender, Action* parameters) { Scriptable* tar = GetActorFromObject( Sender, parameters->objects[1] ); - if (!tar && tar->Type!=ST_ACTOR) { + if (!tar || tar->Type!=ST_ACTOR) { Sender->ReleaseCurrentAction(); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-02 11:55:56
|
Revision: 6259 http://gemrb.svn.sourceforge.net/gemrb/?rev=6259&view=rev Author: fuzzie Date: 2009-06-02 11:55:48 +0000 (Tue, 02 Jun 2009) Log Message: ----------- fix GlobalMax/MinGlobal breakage from r1647 Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-02 06:21:52 UTC (rev 6258) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-02 11:55:48 UTC (rev 6259) @@ -1474,7 +1474,7 @@ void GameScript::FaceSavedLocation(Scriptable* Sender, Action* parameters) { Scriptable* target = GetActorFromObject( Sender, parameters->objects[1] ); - if (!target && target->Type!=ST_ACTOR) { + if (!target || target->Type!=ST_ACTOR) { Sender->ReleaseCurrentAction(); return; } @@ -3241,12 +3241,10 @@ void GameScript::GlobalMaxGlobal(Scriptable* Sender, Action* parameters) { - ieDword value1 = CheckVariable( Sender, - parameters->string0Parameter ); - ieDword value2 = CheckVariable( Sender, - parameters->string1Parameter ); + ieDword value1 = CheckVariable( Sender, parameters->string0Parameter ); + ieDword value2 = CheckVariable( Sender, parameters->string1Parameter ); if (value1 < value2) { - SetVariable( Sender, parameters->string0Parameter, value1 ); + SetVariable( Sender, parameters->string0Parameter, value2 ); } } @@ -3254,8 +3252,8 @@ { ieDword value1 = CheckVariable( Sender, parameters->string0Parameter ); ieDword value2 = CheckVariable( Sender, parameters->string1Parameter ); - if (value1 < value2) { - SetVariable( Sender, parameters->string0Parameter, value1 ); + if (value1 > value2) { + SetVariable( Sender, parameters->string0Parameter, value2 ); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-04 13:09:04
|
Revision: 6285 http://gemrb.svn.sourceforge.net/gemrb/?rev=6285&view=rev Author: fuzzie Date: 2009-06-04 13:09:01 +0000 (Thu, 04 Jun 2009) Log Message: ----------- check for invalid slot in actions, due to missing items Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-03 22:41:19 UTC (rev 6284) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-04 13:09:01 UTC (rev 6285) @@ -5178,6 +5178,7 @@ //the following part is coming from GUISCript.cpp with trivial changes int Slot = c->inventory.FindItem(parameters->string0Parameter, 0); if (Slot<0) { + return; } int res = core->CanMoveItem(c->inventory.GetSlotItem(Slot) ); if (!res) { //cannot move @@ -5583,8 +5584,8 @@ return; } Actor *act = (Actor *) Sender; - ieDword Slot, header; - ieDword flags; + int Slot; + ieDword header, flags; ieResRef itemres; if (parameters->string0Parameter[0]) { @@ -5599,6 +5600,11 @@ flags = parameters->int2Parameter; } + if (Slot == -1) { + Sender->ReleaseCurrentAction(); + return; + } + if (!ResolveItemName( itemres, act, Slot) ) { Sender->ReleaseCurrentAction(); return; @@ -5623,7 +5629,8 @@ } Actor *act = (Actor *) Sender; - ieDword Slot, header; + int Slot; + ieDword header; ieResRef itemres; ieDword flags; @@ -5639,6 +5646,11 @@ flags = parameters->int2Parameter; } + if (Slot == -1) { + Sender->ReleaseCurrentAction(); + return; + } + if (!ResolveItemName( itemres, act, Slot) ) { Sender->ReleaseCurrentAction(); return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-06 11:28:10
|
Revision: 6317 http://gemrb.svn.sourceforge.net/gemrb/?rev=6317&view=rev Author: fuzzie Date: 2009-06-06 11:28:08 +0000 (Sat, 06 Jun 2009) Log Message: ----------- fix Activate action Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-06 09:21:33 UTC (rev 6316) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-06 11:28:08 UTC (rev 6317) @@ -2873,15 +2873,15 @@ actor->BaseStats[IE_AVATARREMOVAL]=1; } -//this isn't sure void GameScript::Activate(Scriptable* Sender, Action* parameters) { Scriptable* tar = GetActorFromObject( Sender, parameters->objects[1] ); if (!tar || tar->Type != ST_ACTOR) { return; } - tar->Activate(); - //tar->Active |= SCR_VISIBLE; + // Deactivate hides, so this should unhide.. + //tar->Activate(); + tar->Unhide(); } void GameScript::ForceLeaveAreaLUA(Scriptable* Sender, Action* parameters) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-07 18:07:12
|
Revision: 6350 http://gemrb.svn.sourceforge.net/gemrb/?rev=6350&view=rev Author: fuzzie Date: 2009-06-07 18:07:03 +0000 (Sun, 07 Jun 2009) Log Message: ----------- DisplayStringNoNameHead takes a target parameter Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-07 16:31:54 UTC (rev 6349) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-07 18:07:03 UTC (rev 6350) @@ -1315,7 +1315,12 @@ void GameScript::DisplayStringNoNameHead(Scriptable* Sender, Action* parameters) { - DisplayStringCore( Sender, parameters->int0Parameter, DS_HEAD|DS_CONSOLE|DS_NONAME); + Scriptable* target = GetActorFromObject( Sender, parameters->objects[1] ); + if (!target) { + target=Sender; + } + + DisplayStringCore( target, parameters->int0Parameter, DS_HEAD|DS_CONSOLE|DS_NONAME); } //display message over current script owner This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2009-06-09 21:46:29
|
Revision: 6375 http://gemrb.svn.sourceforge.net/gemrb/?rev=6375&view=rev Author: lynxlupodian Date: 2009-06-09 21:45:23 +0000 (Tue, 09 Jun 2009) Log Message: ----------- always memorize granted special abilities Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-09 21:26:36 UTC (rev 6374) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-09 21:45:23 UTC (rev 6375) @@ -4641,7 +4641,7 @@ return; } Actor *actor = (Actor *) Sender; - actor->LearnSpell (parameters->string0Parameter, parameters->int0Parameter); + actor->LearnSpell (parameters->string0Parameter, parameters->int0Parameter|LS_MEMO); core->SetEventFlag(EF_ACTION); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-17 11:56:07
|
Revision: 6498 http://gemrb.svn.sourceforge.net/gemrb/?rev=6498&view=rev Author: fuzzie Date: 2009-06-17 11:56:06 +0000 (Wed, 17 Jun 2009) Log Message: ----------- try to fix DayNight logic Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-17 11:49:00 UTC (rev 6497) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-17 11:56:06 UTC (rev 6498) @@ -4677,9 +4677,12 @@ //i'm not sure if we should add a whole day either, needs more research void GameScript::DayNight(Scriptable* /*Sender*/, Action* parameters) { - int padding = (core->GetGame()->GameTime/AI_UPDATE_TIME)%7200; - padding = (padding/300+24-parameters->int0Parameter)%24*300; - core->GetGame()->AdvanceTime(7200+padding*AI_UPDATE_TIME); + // first, calculate the current number of hours. + int padding = ((core->GetGame()->GameTime / AI_UPDATE_TIME) % 7200) / 300; + // then, calculate the offset (in hours) required to take us to the desired hour. + padding = (24 + parameters->int0Parameter - padding) % 24; + // then, advance one day (7200), plus the desired number of hours. + core->GetGame()->AdvanceTime(7200 + padding*AI_UPDATE_TIME*300); } //implement pst style parameters: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-17 12:09:01
|
Revision: 6500 http://gemrb.svn.sourceforge.net/gemrb/?rev=6500&view=rev Author: fuzzie Date: 2009-06-17 12:08:47 +0000 (Wed, 17 Jun 2009) Log Message: ----------- fix target in DisplayStringWait Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-17 12:02:22 UTC (rev 6499) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-17 12:08:47 UTC (rev 6500) @@ -1429,7 +1429,11 @@ Sender->AddActionInFront( Sender->CurrentAction ); return; } - DisplayStringCore( Sender, parameters->int0Parameter, DS_CONSOLE|DS_WAIT|DS_SPEECH|DS_HEAD); + Scriptable* target = GetActorFromObject( Sender, parameters->objects[1]); + if (!target) { + target=Sender; + } + DisplayStringCore( target, parameters->int0Parameter, DS_CONSOLE|DS_WAIT|DS_SPEECH|DS_HEAD); Sender->ReleaseCurrentAction(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-20 18:20:15
|
Revision: 6544 http://gemrb.svn.sourceforge.net/gemrb/?rev=6544&view=rev Author: fuzzie Date: 2009-06-20 18:20:10 +0000 (Sat, 20 Jun 2009) Log Message: ----------- fix ReallyForceSpell actions Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-20 17:23:08 UTC (rev 6543) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-20 18:20:10 UTC (rev 6544) @@ -2538,11 +2538,12 @@ } actor->SetStance (IE_ANI_CONJURE); } + Sender->CastSpell (spellres, tar, false); if (tar->Type==ST_ACTOR) { - Sender->LastTarget=tar->GetGlobalID(); + //Sender->LastTarget=tar->GetGlobalID(); Sender->CastSpellEnd(spellres); } else { - GetPositionFromScriptable(tar, Sender->LastTargetPos, false); + //GetPositionFromScriptable(tar, Sender->LastTargetPos, false); Sender->CastSpellPointEnd(spellres); } Sender->ReleaseCurrentAction(); @@ -2561,7 +2562,7 @@ return; } - Sender->LastTargetPos=parameters->pointParameter; + //Sender->LastTargetPos=parameters->pointParameter; if (Sender->Type == ST_ACTOR) { if (Sender->GetInternalFlag()&IF_STOPATTACK) { Sender->ReleaseCurrentAction(); @@ -2571,6 +2572,7 @@ actor->SetOrientation( GetOrient( parameters->pointParameter, actor->Pos ), false ); actor->SetStance (IE_ANI_CONJURE); } + Sender->CastSpellPoint (spellres, parameters->pointParameter, false); Sender->CastSpellPointEnd(spellres); Sender->ReleaseCurrentAction(); } @@ -2596,11 +2598,12 @@ Actor *actor = (Actor *) Sender; actor->SetStance (IE_ANI_CONJURE); } + Sender->CastSpell (spellres, tar, false); if (tar->Type==ST_ACTOR) { - Sender->LastTarget=tar->GetGlobalID(); + //Sender->LastTarget=tar->GetGlobalID(); Sender->CastSpellEnd(spellres); } else { - GetPositionFromScriptable(tar, Sender->LastTargetPos, false); + //GetPositionFromScriptable(tar, Sender->LastTargetPos, false); Sender->CastSpellPointEnd(spellres); } Sender->ReleaseCurrentAction(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-23 13:12:48
|
Revision: 6596 http://gemrb.svn.sourceforge.net/gemrb/?rev=6596&view=rev Author: fuzzie Date: 2009-06-23 12:13:43 +0000 (Tue, 23 Jun 2009) Log Message: ----------- add some hack to MoveViewPoint/MoveViewObject to temporarily compensate for blocking changes Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-23 12:01:42 UTC (rev 6595) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-23 12:13:43 UTC (rev 6596) @@ -932,6 +932,7 @@ void GameScript::MoveViewPoint(Scriptable* Sender, Action* parameters) { core->timer->SetMoveViewPort( parameters->pointParameter.x, parameters->pointParameter.y, parameters->int0Parameter<<1, true ); + Sender->SetWait(1); // todo, blocking? Sender->ReleaseCurrentAction(); // todo, blocking? } @@ -942,6 +943,7 @@ return; } core->timer->SetMoveViewPort( scr->Pos.x, scr->Pos.y, parameters->int0Parameter<<1, true ); + Sender->SetWait(1); // todo, blocking? Sender->ReleaseCurrentAction(); // todo, blocking? } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-23 22:35:15
|
Revision: 6608 http://gemrb.svn.sourceforge.net/gemrb/?rev=6608&view=rev Author: fuzzie Date: 2009-06-23 22:35:14 +0000 (Tue, 23 Jun 2009) Log Message: ----------- fix RandomFly Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-23 22:27:14 UTC (rev 6607) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-23 22:35:14 UTC (rev 6608) @@ -4979,7 +4979,7 @@ actor->RandomWalk( false, false ); } -void GameScript::RandomFly(Scriptable* Sender, Action* parameters) +void GameScript::RandomFly(Scriptable* Sender, Action* /*parameters*/) { if (Sender->Type != ST_ACTOR) { Sender->ReleaseCurrentAction(); @@ -4995,8 +4995,8 @@ //fly in this direction for 5 steps actor->MoveLine(5, GL_PASS, actor->GetOrientation() ); //readding the action to the end of the queue - Sender->AddAction( parameters ); - Sender->ReleaseCurrentAction(); + //Sender->AddAction( parameters ); + //Sender->ReleaseCurrentAction(); } //UseContainer uses the predefined target (like Nidspecial1 dialog hack) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lyn...@us...> - 2009-06-24 20:30:03
|
Revision: 6616 http://gemrb.svn.sourceforge.net/gemrb/?rev=6616&view=rev Author: lynxlupodian Date: 2009-06-24 20:28:46 +0000 (Wed, 24 Jun 2009) Log Message: ----------- hack: GameScript::Fade*Color should not be blocking enabled you to reach chapter2 in soa Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-24 17:58:24 UTC (rev 6615) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-24 20:28:46 UTC (rev 6616) @@ -457,14 +457,14 @@ void GameScript::FadeToColor(Scriptable* Sender, Action* parameters) { core->timer->SetFadeToColor( parameters->pointParameter.x ); - Sender->SetWait( parameters->pointParameter.x ); +// Sender->SetWait( parameters->pointParameter.x ); Sender->ReleaseCurrentAction(); // todo, blocking? } void GameScript::FadeFromColor(Scriptable* Sender, Action* parameters) { core->timer->SetFadeFromColor( parameters->pointParameter.x ); - Sender->SetWait( parameters->pointParameter.x ); +// Sender->SetWait( parameters->pointParameter.x ); Sender->ReleaseCurrentAction(); // todo, blocking? } @@ -472,7 +472,7 @@ { core->timer->SetFadeToColor( parameters->pointParameter.x ); core->timer->SetFadeFromColor( parameters->pointParameter.x ); - Sender->SetWait( parameters->pointParameter.x<<1 ); //multiply by 2 +// Sender->SetWait( parameters->pointParameter.x<<1 ); //multiply by 2 Sender->ReleaseCurrentAction(); // todo, blocking? } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2009-06-26 22:35:14
|
Revision: 6632 http://gemrb.svn.sourceforge.net/gemrb/?rev=6632&view=rev Author: fuzzie Date: 2009-06-26 22:35:12 +0000 (Fri, 26 Jun 2009) Log Message: ----------- reset more scripts in JoinParty Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Actions.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Actions.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-26 20:04:14 UTC (rev 6631) +++ gemrb/trunk/gemrb/plugins/Core/Actions.cpp 2009-06-26 22:35:12 UTC (rev 6632) @@ -2980,7 +2980,10 @@ Actor* act = ( Actor* ) Sender; act->SetBase( IE_EA, EA_PC ); if (core->HasFeature( GF_HAS_DPLAYER )) { - act->SetScript( "", AI_SCRIPT_LEVEL, true ); + /* we must reset various existing scripts */ + act->SetScript( "DEFAULT", AI_SCRIPT_LEVEL, true ); + act->SetScript( "", SCR_RACE, true ); + act->SetScript( "", SCR_GENERAL, true ); act->SetScript( "DPLAYER2", SCR_DEFAULT, false ); } AutoTable pdtable("pdialog"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |