diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h | 3 | ||||
| -rw-r--r-- | src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp | 52 | 
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();  }  | 
