From: Laszlo T. <ave...@us...> - 2011-07-31 21:42:56
|
gemrb: Infinity Engine emulator The branch master has been updated via 78baae14a46f19b93e856579d407b4b4c5a9d011 (commit) via df448d2d58947b69beecd8585593f06dc5975eef (commit) Summary of changes: gemrb/core/EffectQueue.h | 3 +++ gemrb/core/GameScript/GameScript.cpp | 1 + gemrb/core/GameScript/GameScript.h | 1 + gemrb/core/GameScript/Triggers.cpp | 15 +++++++++++++++ gemrb/plugins/PSTOpcodes/PSTOpcodes.cpp | 4 ++++ 5 files changed, 24 insertions(+), 0 deletions(-) from de657dac4f766abcbc3acada69c476c936b696c2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=78baae14a46f19b93e856579d407b4b4c5a9d011 commit 78baae14a46f19b93e856579d407b4b4c5a9d011 Author: Avenger <ave...@so...> Date: Sun Jul 31 23:42:17 2011 +0200 missing from guardian mantle diff --git a/gemrb/core/EffectQueue.h b/gemrb/core/EffectQueue.h index 7f3efc2..b16b584 100644 --- a/gemrb/core/EffectQueue.h +++ b/gemrb/core/EffectQueue.h @@ -89,6 +89,9 @@ class Scriptable; #define IMM_SECTYPE_DEC 0x1000 #define IMM_RESOURCE_DEC 0x2000 +//pst immunities +#define IMM_GUARDIAN 0x80000000 + // FIXME: Dice roll should be probably done just once, e.g. when equipping // the item, not each time the fx are applied // <avenger> the dice values are actually level limits, except in 3 hp modifier functions http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=df448d2d58947b69beecd8585593f06dc5975eef commit df448d2d58947b69beecd8585593f06dc5975eef Author: Avenger <ave...@so...> Date: Sun Jul 31 23:41:18 2011 +0200 implemented IsInGuardianMantle diff --git a/gemrb/core/GameScript/GameScript.cpp b/gemrb/core/GameScript/GameScript.cpp index 44a23d9..21fb9b2 100644 --- a/gemrb/core/GameScript/GameScript.cpp +++ b/gemrb/core/GameScript/GameScript.cpp @@ -210,6 +210,7 @@ static const TriggerLink triggernames[] = { {"isfacingsavedrotation", GameScript::IsFacingSavedRotation, 0}, {"isgabber", GameScript::IsGabber, 0}, {"isheartoffurymodeon", GameScript::NightmareModeOn, 0}, + {"isinguardianmantle", GameScript::IsInGuardianMantle, 0}, {"islocked", GameScript::IsLocked, 0}, {"isextendednight", GameScript::IsExtendedNight, 0}, {"ismarkedspell", GameScript::IsMarkedSpell, 0}, diff --git a/gemrb/core/GameScript/GameScript.h b/gemrb/core/GameScript/GameScript.h index 5428461..e080724 100644 --- a/gemrb/core/GameScript/GameScript.h +++ b/gemrb/core/GameScript/GameScript.h @@ -777,6 +777,7 @@ public: //Script Functions static int IsExtendedNight(Scriptable* Sender, Trigger* parameters); static int IsFacingObject(Scriptable* Sender, Trigger* parameters); static int IsFacingSavedRotation(Scriptable* Sender, Trigger* parameters); + static int IsInGuardianMantle(Scriptable* Sender, Trigger* parameters); static int IsLocked(Scriptable* Sender, Trigger* parameters); static int IsMarkedSpell(Scriptable* Sender, Trigger* parameters); static int IsOverMe(Scriptable* Sender, Trigger* parameters); diff --git a/gemrb/core/GameScript/Triggers.cpp b/gemrb/core/GameScript/Triggers.cpp index 906c82c..7d3f562 100644 --- a/gemrb/core/GameScript/Triggers.cpp +++ b/gemrb/core/GameScript/Triggers.cpp @@ -3956,6 +3956,21 @@ int GameScript::Unusable(Scriptable* Sender, Trigger* parameters) return ret; } +//returns true if the immunity flag is set +//(attacker has to make a successful spell save to hit the target) +int GameScript::IsInGuardianMantle(Scriptable* Sender, Trigger* parameters) +{ + Scriptable *tar = GetActorFromObject( Sender, parameters->objectParameter ); + if (!tar || tar->Type != ST_ACTOR) { + return 0; + } + Actor* actor = ( Actor* ) tar; + if (actor->GetStat(IE_IMMUNITY)&IMM_GUARDIAN) { + return 1; + } + return 0; +} + int GameScript::HasBounceEffects(Scriptable* Sender, Trigger* parameters) { Scriptable *tar = GetActorFromObject( Sender, parameters->objectParameter ); diff --git a/gemrb/plugins/PSTOpcodes/PSTOpcodes.cpp b/gemrb/plugins/PSTOpcodes/PSTOpcodes.cpp index 29f7fd6..7c60598 100644 --- a/gemrb/plugins/PSTOpcodes/PSTOpcodes.cpp +++ b/gemrb/plugins/PSTOpcodes/PSTOpcodes.cpp @@ -777,6 +777,10 @@ int fx_overlay (Scriptable* Owner, Actor* target, Effect* fx) } break; case 4: + //this is not the original position, but the immunity stat was already used for things like this + //as an added benefit, HasImmunityEffects also works with the pst spell + STAT_BIT_OR( IE_IMMUNITY, IMM_GUARDIAN); + break; case 5: break; case 6: ----------------------------------------------------------------------- This is an automated email from the git hooks/post-receive script. -- gemrb: Infinity Engine emulator |