aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h3
-rw-r--r--src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp52
2 files changed, 28 insertions, 27 deletions
diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
index 17a7dd287ce..68523c4a6d9 100644
--- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
+++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h
@@ -22,7 +22,8 @@ enum Data
TYPE_GELIHAST,
TYPE_KELRIS,
TYPE_SHRINE,
- TYPE_AKU_MAI
+ TYPE_AKU_MAI,
+ DATA_FIRE
};
enum Creatures
diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp
index fcfa68819b9..d8c653c61fc 100644
--- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp
@@ -24,11 +24,12 @@ EndScriptData */
#include "precompiled.h"
#include "blackfathom_deeps.h"
-#define MAX_ENCOUNTER 3
+#define MAX_ENCOUNTER 4
/* Encounter 0 = Gelihast
Encounter 1 = Twilight Lord Kelris
Encounter 2 = Shrine event
+ Encounter 3 = Aku'Mai
Must kill twilight lord for shrine event to be possible
*/
@@ -53,6 +54,7 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
uint64 m_uiMainDoorGUID;
uint8 m_auiEncounter[MAX_ENCOUNTER];
+ uint8 m_uiCountFires;
void Initialize()
{
@@ -66,6 +68,7 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
m_uiShrineOfGelihastGUID = 0;
m_uiAltarOfTheDeepsGUID = 0;
m_uiMainDoorGUID = 0;
+ m_uiCountFires = 0;
}
void OnCreatureCreate(Creature* pCreature, bool add)
@@ -107,13 +110,17 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
break;
case GO_SHRINE_OF_GELIHAST:
m_uiShrineOfGelihastGUID = pGo->GetGUID();
- pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ if (m_auiEncounter[0] != DONE)
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_ALTAR_OF_THE_DEEPS:
m_uiAltarOfTheDeepsGUID = pGo->GetGUID();
- pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
+ if (m_auiEncounter[3] != DONE)
+ pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
case GO_AKU_MAI_DOOR:
+ if (m_auiEncounter[2] == DONE)
+ HandleGameObject(NULL,true,pGo);
m_uiMainDoorGUID = pGo->GetGUID();
break;
}
@@ -143,12 +150,15 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
}
break;
- case TYPE_SHRINE:
- m_auiEncounter[2] = uiData;
+ case TYPE_AKU_MAI:
+ m_auiEncounter[3] = uiData;
if (uiData == DONE)
if (GameObject *pGo = instance->GetGameObject(m_uiAltarOfTheDeepsGUID))
pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
break;
+ case DATA_FIRE:
+ m_uiCountFires = uiData;
+ break;
}
}
@@ -156,10 +166,16 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
{
switch(uiType)
{
- case TYPE_KELRIS:
+ case TYPE_GELIHAST:
return m_auiEncounter[0];
- case TYPE_SHRINE:
+ case TYPE_KELRIS:
return m_auiEncounter[1];
+ case TYPE_SHRINE:
+ return m_auiEncounter[2];
+ case TYPE_AKU_MAI:
+ return m_auiEncounter[3];
+ case DATA_FIRE:
+ return m_uiCountFires;
}
return 0;
@@ -198,7 +214,10 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance
pShrine2 && pShrine2->GetGoState() == GO_STATE_ACTIVE &&
pShrine3 && pShrine3->GetGoState() == GO_STATE_ACTIVE &&
pShrine4 && pShrine4->GetGoState() == GO_STATE_ACTIVE)
+ {
HandleGameObject(m_uiMainDoorGUID,true);
+ m_auiEncounter[2] = DONE;
+ }
}
};
@@ -207,20 +226,6 @@ InstanceData* GetInstanceData_instance_blackfathom_deeps(Map* pMap)
return new instance_blackfathom_deeps(pMap);
}
-bool GoHello_blackfathom_fire(Player *pPlayer, GameObject* pGo)
-{
- ScriptedInstance *pInstance = pGo->GetInstanceData();
-
- if (pInstance)
- {
- pGo->SetGoState(GO_STATE_ACTIVE);
- pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
- ((instance_blackfathom_deeps*)pInstance)->CheckFires();
- return true;
- }
- return false;
-}
-
void AddSC_instance_blackfathom_deeps()
{
Script *newscript;
@@ -228,9 +233,4 @@ void AddSC_instance_blackfathom_deeps()
newscript->Name = "instance_blackfathom_deeps";
newscript->GetInstanceData = &GetInstanceData_instance_blackfathom_deeps;
newscript->RegisterSelf();
-
- newscript = new Script;
- newscript->Name = "go_blackfathom_fire";
- newscript->pGOHello = &GoHello_blackfathom_fire;
- newscript->RegisterSelf();
}