aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMachiavelli <none@none>2009-11-04 17:56:10 +0100
committerMachiavelli <none@none>2009-11-04 17:56:10 +0100
commitef420fc98c16e6b4e3318ff5207b4282b35017dc (patch)
tree42b6985076f1555b1b02d5e572f3e9910f263400 /src
parentabbdd3f17e510586bfebc79cc48dbebd7cc207ad (diff)
Fix a crash in Ahn'Kahet, thanks to Aokromes. Fixes #57
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/instance_ahnkahet.cpp31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/instance_ahnkahet.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/instance_ahnkahet.cpp
index fa0b0e550b1..a6f57330b3b 100644
--- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/instance_ahnkahet.cpp
+++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/instance_ahnkahet.cpp
@@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
uint64 Prince_TaldaramPlatform;
uint64 Prince_TaldaramGate;
- uint64 InitiandGUIDs[MAX_JEDOGA_INITIANDS];
+ std::set<uint64> InitiandGUIDs;
uint64 JedogaSacrifices;
uint64 JedogaTarget;
@@ -68,15 +68,15 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
void Initialize()
{
+ memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
+ InitiandGUIDs.clear();
+
Elder_Nadox =0;
Prince_Taldaram =0;
Jedoga_Shadowseeker =0;
Herald_Volazj =0;
Amanitar =0;
- for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
- m_auiEncounter[i] = NOT_STARTED;
-
spheres[0] = NOT_STARTED;
spheres[1] = NOT_STARTED;
@@ -85,9 +85,6 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
initiandkilled = 0;
JedogaSacrifices = 0;
JedogaTarget = 0;
-
- for (uint8 i=0; i<MAX_JEDOGA_INITIANDS; ++i)
- InitiandGUIDs[i] = 0;
}
bool IsEncounterInProgress() const
@@ -107,7 +104,7 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
case 29310: Jedoga_Shadowseeker = pCreature->GetGUID(); break;
case 29311: Herald_Volazj = pCreature->GetGUID(); break;
case 30258: Amanitar = pCreature->GetGUID(); break;
- case 30114: InitiandGUIDs[InitiandCnt++] = pCreature->GetGUID(); break;
+ case 30114: InitiandGUIDs.insert(pCreature->GetGUID()); break;
}
}
@@ -163,11 +160,11 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
{
std::vector<uint64> vInitiands;
vInitiands.clear();
- for (uint8 i=0; i<MAX_JEDOGA_INITIANDS; ++i)
+ for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
- Creature* cr = instance->GetCreature(InitiandGUIDs[i]);
+ Creature* cr = instance->GetCreature(*itr);
if (cr && cr->isAlive())
- vInitiands.push_back(InitiandGUIDs[i]);
+ vInitiands.push_back(*itr);
}
if (vInitiands.empty())
return 0;
@@ -194,9 +191,9 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
m_auiEncounter[2] = data;
if (data == DONE)
{
- for (uint8 i = 0; i < MAX_JEDOGA_INITIANDS; ++i)
+ for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
- Creature* cr = instance->GetCreature(InitiandGUIDs[i]);
+ Creature* cr = instance->GetCreature(*itr);
if (cr && cr->isAlive())
{
cr->SetVisibility(VISIBILITY_OFF);
@@ -215,9 +212,9 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
case DATA_JEDOGA_TRIGGER_SWITCH: switchtrigger = data; break;
case DATA_INITIAND_KILLED: initiandkilled = data; break;
case DATA_JEDOGA_RESET_INITIANDS:
- for (uint8 i=0; i < MAX_JEDOGA_INITIANDS; ++i)
+ for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
- Creature* cr = instance->GetCreature(InitiandGUIDs[i]);
+ Creature* cr = instance->GetCreature(*itr);
if (cr)
{
cr->Respawn();
@@ -242,9 +239,9 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
case DATA_SPHERE1_EVENT: return spheres[0];
case DATA_SPHERE2_EVENT: return spheres[1];
case DATA_ALL_INITIAND_DEAD:
- for (uint8 i=0; i<MAX_JEDOGA_INITIANDS; ++i)
+ for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
{
- Creature* cr = instance->GetCreature(InitiandGUIDs[i]);
+ Creature* cr = instance->GetCreature(*itr);
if (!cr || (cr && cr->isAlive())) return 0;
}
return 1;