From: <ave...@us...> - 2009-10-30 17:35:01
|
Revision: 7427 http://gemrb.svn.sourceforge.net/gemrb/?rev=7427&view=rev Author: avenger_teambg Date: 2009-10-30 17:34:35 +0000 (Fri, 30 Oct 2009) Log Message: ----------- fixed iwd monster summoning (animation/EA) Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Interface.cpp gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Interface.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Interface.cpp 2009-10-29 20:09:10 UTC (rev 7426) +++ gemrb/trunk/gemrb/plugins/Core/Interface.cpp 2009-10-30 17:34:35 UTC (rev 7427) @@ -2538,9 +2538,12 @@ if (vvcres[0]) { ScriptedAnimation* vvc = gamedata->GetScriptedAnimation(vvcres, false); if (vvc) { - //This is the final position of the actor, not the original target point + //This is the final position of the summoned creature + //not the original target point vvc->XPos=ab->Pos.x; vvc->YPos=ab->Pos.y; + //force vvc to play only once + vvc->PlayOnce(); map->AddVVCell( vvc ); } } Modified: gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp 2009-10-29 20:09:10 UTC (rev 7426) +++ gemrb/trunk/gemrb/plugins/IWDOpcodes/IWDOpc.cpp 2009-10-30 17:34:35 UTC (rev 7427) @@ -817,7 +817,7 @@ //the monster should appear near the effect position Point p(fx->PosX, fx->PosY); Effect *newfx = EffectQueue::CreateUnsummonEffect(fx); - core->SummonCreature(monster, areahit, Owner, target, p, EAM_DEFAULT, fx->Parameter1, newfx); + core->SummonCreature(monster, areahit, Owner, target, p, EAM_SOURCEALLY, fx->Parameter1, newfx); delete newfx; return FX_NOT_APPLIED; } @@ -878,7 +878,7 @@ //the monster should appear near the effect position Point p(fx->PosX, fx->PosY); Effect *newfx = EffectQueue::CreateUnsummonEffect(fx); - core->SummonCreature(monster, areahit, Owner, target, p, EAM_DEFAULT, fx->Parameter1, newfx); + core->SummonCreature(monster, areahit, Owner, target, p, EAM_SOURCEALLY, fx->Parameter1, newfx); delete newfx; return FX_NOT_APPLIED; } @@ -955,7 +955,7 @@ //the monster should appear near the effect position Point p(fx->PosX, fx->PosY); Effect *newfx = EffectQueue::CreateUnsummonEffect(fx); - core->SummonCreature(monster, areahit, Owner, target, p, EAM_DEFAULT, fx->Parameter1, newfx); + core->SummonCreature(monster, areahit, Owner, target, p, EAM_SOURCEALLY, fx->Parameter1, newfx); delete newfx; return FX_NOT_APPLIED; } @@ -1043,7 +1043,7 @@ //the monster should appear near the effect position Point p(fx->PosX, fx->PosY); Effect *newfx = EffectQueue::CreateUnsummonEffect(fx); - core->SummonCreature(monster, areahit, Owner, target, p, EAM_DEFAULT, fx->Parameter1, newfx); + core->SummonCreature(monster, areahit, Owner, target, p, EAM_SOURCEALLY, fx->Parameter1, newfx); delete newfx; return FX_NOT_APPLIED; } @@ -1644,7 +1644,7 @@ //the monster should appear near the effect position Point p(fx->PosX, fx->PosY); Effect *newfx = EffectQueue::CreateUnsummonEffect(fx); - core->SummonCreature(monster, areahit, Owner, target, p, EAM_DEFAULT, fx->Parameter1, newfx); + core->SummonCreature(monster, areahit, Owner, target, p, EAM_SOURCEALLY, fx->Parameter1, newfx); delete newfx; } return FX_NOT_APPLIED; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |