aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormegamage <none@none>2009-09-01 19:28:20 -0500
committermegamage <none@none>2009-09-01 19:28:20 -0500
commitf808a461cc62c8bab6f2ff3d5d93867334dc64ed (patch)
tree5265a99207b02b65121674c27a14d407a37c35f5
parent1e7386c638b819065791f85e09976697a39cc868 (diff)
*Fix a crash caused by gothik. Thanks to new001.
--HG-- branch : trunk
-rw-r--r--src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp
index 8844c41e896..00d769cb880 100644
--- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp
+++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp
@@ -106,8 +106,8 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
boss_gothikAI(Creature *c) : BossAI(c, BOSS_GOTHIK) {}
uint32 waveCount;
- std::vector<Creature*> liveTrigger;
- std::vector<Creature*> deadTrigger;
+ typedef std::vector<Creature*> TriggerVct;
+ TriggerVct liveTrigger, deadTrigger;
void Reset()
{
@@ -156,6 +156,20 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
summons.Summon(summon);
}
+ void SummonedCreatureDespawn(Creature *summon)
+ {
+ if (summon->GetEntry() == WORLD_TRIGGER)
+ {
+ //for(TriggerVct::iterator itr = liveTrigger.begin(); itr != liveTrigger.end(); ++itr)
+ // if(*itr == summon)
+ error_log("boss_gothikAI: trigger is despawned!");
+ EnterEvadeMode();
+ return;
+ }
+
+ summons.Despawn(summon);
+ }
+
void KilledUnit(Unit* victim)
{
if (!(rand()%5))
@@ -164,6 +178,8 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
void JustDied(Unit* Killer)
{
+ liveTrigger.clear();
+ deadTrigger.clear();
_JustDied();
DoScriptText(SAY_DEATH, me);
}