From 5aa9fdb556a6d78520ee98d0f88f28c884c7e3df Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 5 Jun 2009 14:37:15 -0500 Subject: *Still use the old updatevictim functions for most scripts because some old scripts may cause crash using new function. --HG-- branch : trunk --- src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp | 2 +- src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp | 2 +- src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp | 2 +- src/game/CreatureAI.cpp | 10 ++++++++++ src/game/CreatureAI.h | 1 + 5 files changed, 14 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp index 6b0d5cf65fe..ecc9a8d8d03 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp @@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp index 1ab7c5e3334..8ce017a936e 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp index 535ca8ca21f..05dea45ed25 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI events.Update(diff); - if(phase != PHASE_BIRTH && !UpdateVictim() || !CheckInRoom()) + if(phase != PHASE_BIRTH && !UpdateCombatState() || !CheckInRoom()) return; if(phase == PHASE_GROUND) diff --git a/src/game/CreatureAI.cpp b/src/game/CreatureAI.cpp index f61aca24405..143dfec99d3 100644 --- a/src/game/CreatureAI.cpp +++ b/src/game/CreatureAI.cpp @@ -145,6 +145,16 @@ bool CreatureAI::UpdateVictimWithGaze() } bool CreatureAI::UpdateVictim() +{ + if(!me->isInCombat()) + return false; + + if(Unit *victim = me->SelectVictim()) + AttackStart(victim); + return me->getVictim(); +} + +bool CreatureAI::UpdateCombatState() { if(!me->isInCombat()) return false; diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h index d9d437c936c..91fabe30448 100644 --- a/src/game/CreatureAI.h +++ b/src/game/CreatureAI.h @@ -72,6 +72,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI bool UpdateVictim(); bool UpdateVictimWithGaze(); + bool UpdateCombatState(); void SelectNearestTarget(Unit *who); public: -- cgit v1.2.3