From: Laszlo T. <ave...@us...> - 2005-07-24 19:28:16
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27266/plugins/Core Modified Files: EffectQueue.cpp Log Message: added invisibility, luck, lore, morale opcodes Index: EffectQueue.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/Core/EffectQueue.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** EffectQueue.cpp 24 Jul 2005 19:04:42 -0000 1.26 --- EffectQueue.cpp 24 Jul 2005 19:28:06 -0000 1.27 *************** *** 47,50 **** --- 47,54 ---- int fx_maximum_hp_modifier (Actor* Owner, Actor* target, Effect* fx); int fx_intelligence_modifier (Actor* Owner, Actor* target, Effect* fx); + int fx_invisibility_state (Actor* Owner, Actor* target, Effect* fx); + int fx_lore_modifier (Actor* Owner, Actor* target, Effect* fx); + int fx_luck_modifier (Actor* Owner, Actor* target, Effect* fx); + int fx_morale_modifier (Actor* Owner, Actor* target, Effect* fx); int fx_save_vs_death_modifier (Actor* Owner, Actor* target, Effect* fx); int fx_save_vs_wands_modifier (Actor* Owner, Actor* target, Effect* fx); *************** *** 91,94 **** --- 95,102 ---- { "DexterityModifier", fx_dexterity_modifier }, { "IntelligenceModifier", fx_intelligence_modifier }, + { "InvisibilityState", fx_invisibility_state }, + { "LoreModifier", fx_lore_modifier }, + { "LuckModifier", fx_luck_modifier }, + { "MoraleModifier", fx_morale_modifier }, { "SaveVsBreathModifier", fx_save_vs_breath_modifier }, { "SaveVsDeathModifier", fx_save_vs_death_modifier }, *************** *** 534,537 **** --- 542,588 ---- } + // 0x14 + // this is more complex, there is a half-invisibility state + // and there is a hidden state + int fx_invisibility_state (Actor* /*Owner*/, Actor* target, Effect* fx) + { + switch (fx->Parameter2) { + case 1: + STATE_SET( STATE_INVISIBLE ); + break; + case 2: + STATE_SET( STATE_INVIS2 ); + break; + } + return FX_APPLIED; + } + + // 0x15 + int fx_lore_modifier (Actor* /*Owner*/, Actor* target, Effect* fx) + { + if (0) printf( "fx_lore_modifier (%2d): Mod: %d, Type: %d\n", fx->Opcode, fx->Parameter1, fx->Parameter2 ); + + target->NewStat( IE_LORE, fx->Parameter1, fx->Parameter2 ); + return FX_APPLIED; + } + + // 0x16 + int fx_luck_modifier (Actor* /*Owner*/, Actor* target, Effect* fx) + { + if (0) printf( "fx_luck_modifier (%2d): Mod: %d, Type: %d\n", fx->Opcode, fx->Parameter1, fx->Parameter2 ); + + target->NewStat( IE_LUCK, fx->Parameter1, fx->Parameter2 ); + return FX_APPLIED; + } + + // 0x17 + int fx_morale_modifier (Actor* /*Owner*/, Actor* target, Effect* fx) + { + if (0) printf( "fx_morale_modifier (%2d): Mod: %d, Type: %d\n", fx->Opcode, fx->Parameter1, fx->Parameter2 ); + + target->NewStat( IE_MORALE, fx->Parameter1, fx->Parameter2 ); + return FX_APPLIED; + } + // 0x21 int fx_save_vs_death_modifier (Actor* /*Owner*/, Actor* target, Effect* fx) |