void OnGameObjectCreate(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_FORCE_FIELD:
         case GO_BOSS_COLLISION_1:
         case GO_BOSS_COLLISION_2:
         case GO_FIRE_BARRIER:
         case GO_MURUS_GATE_1:
         case GO_MURUS_GATE_2:
             AddDoor(go, true);
             break;
         default:
             break;
     }
 }
		void OnGameObjectCreate(GameObject* go)
		{
			switch (go->GetEntry())
			{
				// Generic doors
			case GOB_ANTECHAMBER_DOOR_ENTRANCE:
			case GOB_ANTECHAMBER_DOOR_EXIT:
			case GOB_ATRIUM_DOOR_ENTRANCE:
			case GOB_ATRIUM_DOOR_EXIT:
				AddDoor(go, true);
				break;
				// Specific doors
			case GOB_ORATIUM_DOOR_ENTRANCE:
				AddDoor(go, true);
				zorlokEntranceDoorGuid = go->GetGUID();
				break;
			case GOB_QUARTERS_DOOR_ENTRANCE:
				AddDoor(go, true);
				tayakEntranceDoorGuid = go->GetGUID();
				break;
			case GOB_QUARTERS_DOOR_EXIT:
				AddDoor(go, true);
				tayakExitDoorGuid = go->GetGUID();
				break;
			case GOB_STAIRWAYS_DOOR_EXIT:
				AddDoor(go, true);
				garalonEntranceDoorGuid = go->GetGUID();
				break;
			case GOB_BALCONY_DOOR_EXIT:
				AddDoor(go, true);
				meljarakExitDoorGuid = go->GetGUID();
				break;
			case GOB_SANCTUM_DOOR_ENTRANCE:
				AddDoor(go, true);
				unsokEntranceDoorGuid = go->GetGUID();
				break;
			case GOB_HEARTOFFEAR_DOOR_ENTRANCE:
				AddDoor(go, true);
				shekzeerEntranceDoorGuid = go->GetGUID();
				break;
			default:
				break;
			}
		}
示例#3
0
 void OnGameObjectCreate(GameObject* go)
 {
     switch (go->GetEntry())
     {
         case GO_STRANGE_GONG:
             StrangeGongGUID = go->GetGUID();
             break;
         case GO_MASSIVE_GATE:
             MasiveGateGUID = go->GetGUID();
             AddDoor(go, true);
             if (ZulAmanState != NOT_STARTED)
                 go->SetGoState(GO_STATE_ACTIVE);
             break;
         default:
             break;
     }
 }
 void OnGameObjectRemove(GameObject* gameObject)
 {
     switch (gameObject->GetEntry())
     {
         case GO_LEVIATHAN_DOOR:
         case GO_XT_002_DOOR:
         case GO_DOODAD_UL_SIGILDOOR_03:
         case GO_DOODAD_UL_UNIVERSEFLOOR_01:
         case GO_DOODAD_UL_UNIVERSEFLOOR_02:
         case GO_DOODAD_UL_UNIVERSEGLOBE01:
         case GO_DOODAD_UL_ULDUAR_TRAPDOOR_03:
             AddDoor(gameObject, false);
             break;
         default:
             break;
     }
 }
示例#5
0
    void OnGameObjectCreate(GameObject* pGo, bool add)
    {
        if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
        {
            uint32 section = GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY());
            if (add)
                HeiganEruption[section].insert(pGo);
            else
                HeiganEruption[section].erase(pGo);
            return;
        }

        switch (pGo->GetEntry())
        {
        case GO_BIRTH:
            if (!add && Sapphiron) Sapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
            return;
        case GO_GOTHIK_GATE:
            pGothikGate = add ? pGo : NULL;
            break;
        case GO_HORSEMEN_CHEST:
            HorsemenChest = add ? pGo : NULL;
            break;
        case GO_HORSEMEN_CHEST_HERO:
            HorsemenChest = add ? pGo : NULL;
            break;
        case GO_KELTHUZAD_PORTAL01:
            uiPortals[0] = pGo->GetGUID();
            break;
        case GO_KELTHUZAD_PORTAL02:
            uiPortals[1] = pGo->GetGUID();
            break;
        case GO_KELTHUZAD_PORTAL03:
            uiPortals[2] = pGo->GetGUID();
            break;
        case GO_KELTHUZAD_PORTAL04:
            uiPortals[3] = pGo->GetGUID();
            break;
        case GO_KELTHUZAD_TRIGGER:
            uiKelthuzadTrigger = pGo->GetGUID();
            break;
        }

        AddDoor(pGo, add);
    }
 void OnGameObjectCreate(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_PRISON_DOOR_04:
             PrisonDoor4GUID = go->GetGUID();
             // no break
         case GO_PRISON_DOOR_01:
         case GO_PRISON_DOOR_02:
         case GO_PRISON_DOOR_03:
         case GO_PRISON_DOOR_05:
         case GO_SUMMON_DOOR:
             AddDoor(go, true);
             break;
         case GO_BROGGOK_LEVER:
             BroggokLeverGUID = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_1:
             PrisonCellGUIDs[DATA_PRISON_CELL1 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_2:
             PrisonCellGUIDs[DATA_PRISON_CELL2 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_3:
             PrisonCellGUIDs[DATA_PRISON_CELL3 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_4:
             PrisonCellGUIDs[DATA_PRISON_CELL4 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_5:
             PrisonCellGUIDs[DATA_PRISON_CELL5 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_6:
             PrisonCellGUIDs[DATA_PRISON_CELL6 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_7:
             PrisonCellGUIDs[DATA_PRISON_CELL7 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         case GO_PRISON_CELL_DOOR_8:
             PrisonCellGUIDs[DATA_PRISON_CELL8 - DATA_PRISON_CELL1] = go->GetGUID();
             break;
         default:
             break;
     }
 }
            void OnGameObjectCreate(GameObject* go)
            {
                switch (go->GetEntry())
                {
                    case GO_LADY_VASHJ_BRIDGE_CONSOLE:
					case GO_COILFANG_BRIDGE1:
					case GO_COILFANG_BRIDGE2:
					case GO_COILFANG_BRIDGE3:
                        AddDoor(go, true);
						break;
					case GO_SHIELD_GENERATOR1:
					case GO_SHIELD_GENERATOR2:
					case GO_SHIELD_GENERATOR3:
					case GO_SHIELD_GENERATOR4:
						ShieldGeneratorGUID[go->GetEntry()-GO_SHIELD_GENERATOR1] = go->GetGUID();
						break;
                }
            }
 void OnGameObjectCreate(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_FORCEFIELD:
             AddDoor(go, true);
             break;
         case GO_GONG_OF_BETHEKK:
             _goGongOfBethekkGUID = go->GetGUID();
             if (GetBossState(DATA_ARLOKK) == DONE)
                 go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
             else
                 go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
             break;
         default:
             break;
     }
 }
示例#9
0
        void OnGameObjectCreate(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                heiganEruptionGUID[section].insert(go->GetGUID());

                return;
            }

            switch (go->GetEntry())
            {
                case GO_GOTHIK_GATE:
                    gothikGateGUID = go->GetGUID();
                    go->SetGoState(gothikDoorState);
                    break;
                case GO_HORSEMEN_CHEST:
                    horsemenChestGUID = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST_HERO:
                    horsemenChestGUID = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL01:
                    portalsGUID[0] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL02:
                    portalsGUID[1] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL03:
                    portalsGUID[2] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL04:
                    portalsGUID[3] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_TRIGGER:
                    kelthuzadTriggerGUID = go->GetGUID();
                    break;
                default:
                    break;
            }

            AddDoor(go, true);
        }
 void OnGameObjectCreate(GameObject* go)
 {
     switch (go->GetEntry())
     {
     case GO_FACTORY_DOOR:
         m_ListOfGUID[DATA_FACTORY_DOOR] = go->GetGUID();
         AddDoor(go, true);
         break;
     case GO_FACTORY_DOOR_LEVER:
         m_ListOfGUID[DATA_FACTORY_DOOR_LEVER] = go->GetGUID();
         break;
     case GO_HEAVY_DOOR2:
         AddDoor(go, true);
         m_ListOfGUID[DATA_HEAVY_DOOR2] = go->GetGUID();
         break;
     case GO_MASTROOM_DOOR:
         AddDoor(go, true);
         m_ListOfGUID[DATA_MASTROOM_DOOR] = go->GetGUID();
         break;
     case GO_MASTROOM_DOOR_LEVER:
         m_ListOfGUID[DATA_MASTROOM_DOOR_LEVER] = go->GetGUID();
         break;
     case GO_HEAVY_DOOR4:
         AddDoor(go, true);
         m_ListOfGUID[DATA_HEAVY_DOOR4] = go->GetGUID();
         break;
     case GO_FOUNDRY_DOOR:
         m_ListOfGUID[DATA_FOUNDRY_DOOR] = go->GetGUID();
         AddDoor(go, true);
         break;
     case GO_FOUNDRY_DOOR_LEVER:
         m_ListOfGUID[DATA_FOUNDRY_DOOR_LEVER] = go->GetGUID();
         break;
     case GO_IRONCLAD_DOOR:
         m_ListOfGUID[DATA_IRONCLAD_DOOR] = go->GetGUID();
         AddDoor(go, true);
         break;
     case GO_IRONCLAD_DOOR_LEVER:
         m_ListOfGUID[DATA_IRONCLAD_DOOR_LEVER] = go->GetGUID();
         break;
     case GO_DEFIAS_CANNON:
         m_ListOfGUID[DATA_DEFIAS_CANNON] = go->GetGUID();
         break;
     case GO_MR_SMITE_CHEST:
         m_ListOfGUID[DATA_MR_SMITE_CHEST] = go->GetGUID();
         break;
     }
     if (!m_SpecialNpcSpawned)
         m_LoadingInstanceTimer = 3000;
 }
 void OnGameObjectCreate(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_FIRE_FIELD:
             AddDoor(go, true);
             break;
         case GO_FLAME_WALLS:
             FlameWallsGUID = go->GetGUID();
             if (GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
                 HandleGameObject(FlameWallsGUID, true, go);
             break;
         case GO_FLAME_RING:
             FlameRingGUID = go->GetGUID();
             break;
         case GO_TWILIGHT_FLAME_RING:
             TwilightFlameRingGUID = go->GetGUID();
             break;
         case GO_BURNING_TREE_1:
             BurningTreeGUID[0] = go->GetGUID();
             if (GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE)
                 HandleGameObject(BurningTreeGUID[0], true);
             break;
         case GO_BURNING_TREE_2:
             BurningTreeGUID[1] = go->GetGUID();
             if (GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE)
                 HandleGameObject(BurningTreeGUID[1], true);
             break;
         case GO_BURNING_TREE_3:
             BurningTreeGUID[2] = go->GetGUID();
             if (GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE)
                 HandleGameObject(BurningTreeGUID[2], true);
             break;
         case GO_BURNING_TREE_4:
             BurningTreeGUID[3] = go->GetGUID();
             if (GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE)
                 HandleGameObject(BurningTreeGUID[3], true);
             break;
         default:
             break;
     }
 }
 void OnGameObjectRemove(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_NAJENTUS_GATE:
         case GO_SUPREMUS_GATE:
         case GO_SHADE_OF_AKAMA_DOOR:
         case GO_TERON_DOOR_1:
         case GO_TERON_DOOR_2:
         case GO_GURTOGG_DOOR:
         case GO_TEMPLE_DOOR:
         case GO_MOTHER_SHAHRAZ_DOOR:
         case GO_COUNCIL_DOOR_1:
         case GO_COUNCIL_DOOR_2:
             AddDoor(go, false);
             break;
         default:
             break;
     }
 }
 void OnGameObjectRemove(GameObject* go)
 {
     switch (go->GetEntry())
     {
         case GO_MAGTHERIDON_DOORS:
             AddDoor(go, false);
             break;
         case GO_MANTICRON_CUBE:
             _cubesSet.erase(go->GetGUID());
             break;
         case GO_MAGTHERIDON_HALL:
         case GO_MAGTHERIDON_COLUMN0:
         case GO_MAGTHERIDON_COLUMN1:
         case GO_MAGTHERIDON_COLUMN2:
         case GO_MAGTHERIDON_COLUMN3:
         case GO_MAGTHERIDON_COLUMN4:
         case GO_MAGTHERIDON_COLUMN5:
             _columnSet.erase(go->GetGUID());
             break;
     }
 }
 void OnGameObjectCreate(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_UTGARDE_MIRROR:
             UtgardeMirrorGUID = go->GetGUID();
             break;
         case GO_GORTOK_PALEHOOF_SPHERE:
             GortokPalehoofSphereGUID = go->GetGUID();
             if (GetBossState(DATA_GORTOK_PALEHOOF) == DONE)
             {
                 HandleGameObject(ObjectGuid::Empty, true, go);
                 go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
             }
             break;
         case GO_SKADI_THE_RUTHLESS_DOOR:
         case GO_KING_YMIRON_DOOR:
             AddDoor(go, true);
             break;
         default:
             break;
     }
 }
 void OnGameObjectCreate(GameObject* go) override
 {
     switch (go->GetEntry())
     {
         case GO_VEXALLUS_DOOR:
         case GO_SELIN_DOOR:
         case GO_SELIN_ENCOUNTER_DOOR:
         case GO_DELRISSA_DOOR:
         case GO_KAEL_DOOR:
             AddDoor(go, true);
             break;
         case GO_KAEL_STATUE_1:
             KaelStatue[0] = go->GetGUID();
             break;
         case GO_KAEL_STATUE_2:
             KaelStatue[1] = go->GetGUID();
             break;
         case GO_ESCAPE_ORB:
             EscapeOrbGUID = go->GetGUID();
             break;
         default:
             break;
     }
 }
 void OnGameObjectCreate(GameObject* go) override
 {
      if (go->GetEntry() == GO_IKISS_DOOR)
          AddDoor(go, true);
 }
 void OnGameObjectCreate(GameObject* go)
 {
     switch (go->GetEntry())
     {
         case GOB_STONE_GUARD_DOOR_ENTRANCE:
         case GOB_FENG_DOOR_FENCE:
         case GOB_FENG_DOOR_EXIT:
         case GOB_GARAJAL_FENCE:
         case GOB_GARAJAL_EXIT:
         case GOB_SPIRIT_KINGS_WIND_WALL:
         case GOB_SPIRIT_KINGS_EXIT:
         case GOB_CELESTIAL_DOOR:
             AddDoor(go, true);
             break;
         // Feng
         case GOB_SPEAR_STATUE:
         case GOB_FIST_STATUE:
         case GOB_STAFF_STATUE:
             fengStatuesGUIDs.push_back(go->GetGUID());
             break;
         case GOB_SHIELD_STATUE:
         {
             if (!instance->IsHeroic())
                 go->SetObjectScale(0.001f);
             else
                 fengStatuesGUIDs.push_back(go->GetGUID());
             break;
         }
         case GOB_STONE_GUARD_DOOR_EXIT:
             AddDoor(go, true);
             stoneGuardExit = go->GetGUID();
             break;
         case GOB_INVERSION:
             inversionGobGuid = go->GetGUID();
             break;
         case GOB_CANCEL:
             cancelGobGuid = go->GetGUID();
             break;
         case GOB_ENERGY_PLATFORM:
             energyPlatformGuid = go->GetGUID();
             go->SetGoState(GO_STATE_ACTIVE);
             break;
         case GOB_ELEGON_DOOR_ENTRANCE:
             ancientMoguDoorGuid = go->GetGUID();
             break;
         case GOB_WILL_OF_EMPEROR_ENTRANCE:
             emperorsDoorGuid = go->GetGUID();
             break;
         case GOB_ENERGY_TITAN_DISK:
             titanDiskGuid = go->GetGUID();
             break;
         case GOB_ENERGY_TITAN_CIRCLE_1:
         case GOB_ENERGY_TITAN_CIRCLE_2:
         case GOB_ENERGY_TITAN_CIRCLE_3:
             go->SetGoState(GO_STATE_ACTIVE);
             titanCirclesGuids.push_back(go->GetGUID());
             break;
         case GOB_CELESTIAL_COMMAND:
             celestialCommandGuid = go->GetGUID();
             break;
     }
 }
示例#18
0
void InstanceScript::OnGameObjectCreate(GameObject* go)
{
    AddObject(go, true);
    AddDoor(go, true);
}
//------------------------- LoadMap ------------------------------------
//
//  sets up the game environment from map file
//-----------------------------------------------------------------------------
bool Raven_Map::LoadMap(const std::string& filename)
{  
  std::ifstream in(filename.c_str());
  if (!in)
  {
    ErrorBox("Bad Map Filename");
    return false;
  }

  Clear();

  BaseGameEntity::ResetNextValidID();

  //first of all read and create the navgraph. This must be done before
  //the entities are read from the map file because many of the entities
  //will be linked to a graph node (the graph node will own a pointer
  //to an instance of the entity)
  m_pNavGraph = new NavGraph(false);
  
  m_pNavGraph->Load(in);

#ifdef LOG_CREATIONAL_STUFF
    debug_con << "NavGraph for " << filename << " loaded okay" << "";
#endif

  //determine the average distance between graph nodes so that we can
  //partition them efficiently
  m_dCellSpaceNeighborhoodRange = CalculateAverageGraphEdgeLength(*m_pNavGraph) + 1;

#ifdef LOG_CREATIONAL_STUFF
    debug_con << "Average edge length is " << CalculateAverageGraphEdgeLength(*m_pNavGraph) << "";
#endif

#ifdef LOG_CREATIONAL_STUFF
    debug_con << "Neighborhood range set to " << m_dCellSpaceNeighborhoodRange << "";
#endif


  //load in the map size and adjust the client window accordingly
  in >> m_iSizeX >> m_iSizeY;

#ifdef LOG_CREATIONAL_STUFF
    debug_con << "Partitioning navgraph nodes..." << "";
#endif

  //partition the graph nodes
  PartitionNavGraph();


  //get the handle to the game window and resize the client area to accommodate
  //the map
  extern char* g_szApplicationName;
  extern char* g_szWindowClassName;
  HWND hwnd = FindWindow(g_szWindowClassName, g_szApplicationName);
  const int ExtraHeightRqdToDisplayInfo = 50;
  ResizeWindow(hwnd, m_iSizeX, m_iSizeY+ExtraHeightRqdToDisplayInfo);

#ifdef LOG_CREATIONAL_STUFF
    debug_con << "Loading map..." << "";
#endif

 
  //now create the environment entities
  while (!in.eof())
  {   
    //get type of next map object
    int EntityType;
    
    in >> EntityType;

#ifdef LOG_CREATIONAL_STUFF
    debug_con << "Creating a " << GetNameOfType(EntityType) << "";
#endif

    //create the object
    switch(EntityType)
    {
    case type_wall:
 
        AddWall(in); break;

    case type_sliding_door:
 
        AddDoor(in); break;

    case type_door_trigger:
 
        AddDoorTrigger(in); break;

   case type_spawn_point:
     
       AddSpawnPoint(in); break;

   case type_health:
     
       AddHealth_Giver(in); break;

   case type_shotgun:
     
       AddWeapon_Giver(type_shotgun, in); break;

   case type_rail_gun:
     
       AddWeapon_Giver(type_rail_gun, in); break;

   case type_rocket_launcher:
     
       AddWeapon_Giver(type_rocket_launcher, in); break;

    default:
      
      throw std::runtime_error("<Map::Load>: Attempting to load undefined object");

      return false;
      
    }//end switch
  }

#ifdef LOG_CREATIONAL_STUFF
    debug_con << filename << " loaded okay" << "";
#endif

   //calculate the cost lookup table
  m_PathCosts = CreateAllPairsCostsTable(*m_pNavGraph);

  return true;
}
示例#20
0
void InstanceScript::OnGameObjectRemove(GameObject* go)
{
    AddObject(go, false);
    AddDoor(go, false);
}
示例#21
0
        void OnGameObjectRemove(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());

                HeiganEruptionGUID[section].erase(go->GetGUID());
                return;
            }

            switch (go->GetEntry())
            {
                case GO_BIRTH:
                    if (SapphironGUID)
                    {
                        if (Creature* pSapphiron = instance->GetCreature(SapphironGUID))
                            pSapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH);
                        return;
                    }
                case GO_ROOM_ANUBREKHAN:
                    uiNaxxDoors[DOOR_ROOM_ANUBREKHAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_ANUBREKHAN] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_ANUBREKHAN:
                    uiNaxxDoors[DOOR_PASSAGE_ANUBREKHAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_ANUBREKHAN] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_FAERLINA:
                    uiNaxxDoors[DOOR_PASSAGE_FAERLINA] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_FAERLINA] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_MAEXXNA:
                    uiNaxxDoors[DOOR_ROOM_MAEXXNA] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_FAERLINA] == DONE && m_auiEncounter[BOSS_MAEXXNA] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_NOTH:
                    uiNaxxDoors[DOOR_ROOM_NOTH] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_FAERLINA] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_NOTH:
                    uiNaxxDoors[DOOR_PASSAGE_NOTH] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_NOTH] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_HEIGAN:
                    uiNaxxDoors[DOOR_ROOM_HEIGAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_HEIGAN] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_HEIGAN:
                    uiNaxxDoors[DOOR_PASSAGE_HEIGAN] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_HEIGAN] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_LOATHEB:
                    uiNaxxDoors[DOOR_ROOM_LOATHEB] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_HEIGAN] == DONE && m_auiEncounter[BOSS_LOATHEB] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_GROBBULUS:
                    uiNaxxDoors[DOOR_ROOM_GROBBULUS] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_PATCHWERK] == DONE && m_auiEncounter[BOSS_GROBBULUS] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_GLUTH:
                    uiNaxxDoors[DOOR_PASSAGE_GLUTH] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_GLUTH] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_THADDIUS:
                    uiNaxxDoors[DOOR_ROOM_THADDIUS] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_GLUTH] == DONE && m_auiEncounter[BOSS_THADDIUS] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_GOTHIK:
                    uiNaxxDoors[DOOR_ROOM_GOTHIK] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_RAZUVIOUS] == DONE && m_auiEncounter[BOSS_GOTHIK] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_GOTHIK:
                    uiNaxxDoors[DOOR_PASSAGE_GOTHIK] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_GOTHIK] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_HORSEMEN:
                    uiNaxxDoors[DOOR_ROOM_HORSEMEN] = go->GetGUID();
                    go->SetGoState((m_auiEncounter[BOSS_GOTHIK] == DONE && m_auiEncounter[BOSS_HORSEMEN] != IN_PROGRESS) ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_PASSAGE_SAPPHIRON:
                    uiNaxxDoors[DOOR_PASSAGE_SAPPHIRON] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_SAPPHIRON] == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
                case GO_ROOM_KELTHUZAD:
                    uiNaxxDoors[DOOR_ROOM_KELTHUZAD] = go->GetGUID();
                    go->SetGoState(m_auiEncounter[BOSS_KELTHUZAD] != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
                    break;
            }

            AddDoor(go, false);
        }
 void OnGameObjectCreate(GameObject* gameObject)
 {
     switch (gameObject->GetEntry())
     {
         case GO_KOLOGARN_CHEST_HERO:
         case GO_KOLOGARN_CHEST:
             KologarnChestGUID = gameObject->GetGUID();
             break;
         case GO_KOLOGARN_BRIDGE:
             KologarnBridgeGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_KOLOGARN) == DONE)
                 HandleGameObject(0, false, gameObject);
             break;
         case GO_KOLOGARN_DOOR:
             KologarnDoorGUID = gameObject->GetGUID();
             break;
         case GO_THORIM_CHEST_HERO:
         case GO_THORIM_CHEST:
             ThorimChestGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_RARE_CACHE_OF_WINTER_HERO:
         case GO_HODIR_RARE_CACHE_OF_WINTER:
             HodirRareCacheGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_CHEST_HERO:
         case GO_HODIR_CHEST:
             HodirChestGUID = gameObject->GetGUID();
             break;
         case GO_LEVIATHAN_DOOR:
             AddDoor(gameObject, true);
             break;
         case GO_LEVIATHAN_GATE:
             LeviathanGateGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_LEVIATHAN) == DONE)
                 gameObject->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
             break;
         case GO_XT_002_DOOR:
             AddDoor(gameObject, true);
             break;
         case GO_VEZAX_DOOR:
             VezaxDoorGUID = gameObject->GetGUID();
             HandleGameObject(0, false, gameObject);
             break;
         case GO_RAZOR_HARPOON_1:
             RazorHarpoonGUIDs[0] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_2:
             RazorHarpoonGUIDs[1] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_3:
             RazorHarpoonGUIDs[2] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_4:
             RazorHarpoonGUIDs[3] = gameObject->GetGUID();
             break;
         case GO_MOLE_MACHINE:
             if (GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS)
                 gameObject->SetGoState(GO_STATE_ACTIVE);
         case GO_HODIR_DOOR:
             HodirDoorGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_ICE_DOOR:
             HodirIceDoorGUID = gameObject->GetGUID();
             break;
         case GO_ARCHIVUM_DOOR:
             ArchivumDoorGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_ASSEMBLY_OF_IRON) != DONE)
                 HandleGameObject(ArchivumDoorGUID, false);
             break;
         case GO_CELESTIAL_PLANETARIUM_ACCESS_10:
         case GO_CELESTIAL_PLANETARIUM_ACCESS_25:
             if (_algalonSummoned)
                 gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
             break;
         case GO_DOODAD_UL_SIGILDOOR_01:
             AlgalonSigilDoorGUID[0] = gameObject->GetGUID();
             if (_algalonSummoned)
                 gameObject->SetGoState(GO_STATE_ACTIVE);
             break;
         case GO_DOODAD_UL_SIGILDOOR_02:
             AlgalonSigilDoorGUID[1] = gameObject->GetGUID();
             if (_algalonSummoned)
                 gameObject->SetGoState(GO_STATE_ACTIVE);
             break;
         case GO_DOODAD_UL_SIGILDOOR_03:
             AlgalonSigilDoorGUID[2] = gameObject->GetGUID();
             AddDoor(gameObject, true);
             break;
         case GO_DOODAD_UL_UNIVERSEFLOOR_01:
             AlgalonFloorGUID[0] = gameObject->GetGUID();
             AddDoor(gameObject, true);
             break;
         case GO_DOODAD_UL_UNIVERSEFLOOR_02:
             AlgalonFloorGUID[1] = gameObject->GetGUID();
             AddDoor(gameObject, true);
             break;
         case GO_DOODAD_UL_UNIVERSEGLOBE01:
             AlgalonUniverseGUID = gameObject->GetGUID();
             AddDoor(gameObject, true);
             break;
         case GO_DOODAD_UL_ULDUAR_TRAPDOOR_03:
             AlgalonTrapdoorGUID = gameObject->GetGUID();
             AddDoor(gameObject, true);
             break;
         case GO_GIFT_OF_THE_OBSERVER_10:
         case GO_GIFT_OF_THE_OBSERVER_25:
             GiftOfTheObserverGUID = gameObject->GetGUID();
             break;
     }
 }
示例#23
0
 void OnGameObjectRemove(GameObject* go)
 {
     AddDoor(go, false);
 }
示例#24
0
        void OnGameObjectCreate(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                HeiganEruptionGUID[section].insert(go->GetGUID());

                return;
            }

            switch (go->GetEntry())
            {
                case GO_GOTHIK_GATE:
                    GothikGateGUID = go->GetGUID();
                    go->SetGoState(gothikDoorState);
                    break;
                case GO_HORSEMEN_CHEST:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST_HERO:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL01:
                    PortalsGUID[0] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL02:
                    PortalsGUID[1] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL03:
                    PortalsGUID[2] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL04:
                    PortalsGUID[3] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_TRIGGER:
                    KelthuzadTriggerGUID = go->GetGUID();
                    break;
               case GO_ARAC_PORTAL:
                    AracPortalGUID = go->GetGUID();
                    break;
               case GO_PLAG_PORTAL:
                    PlagPortalGUID = go->GetGUID();
                    break;
                case GO_MILI_PORTAL:
                    MiliPortalGUID = go->GetGUID();
                    break;
                case GO_CONS_PORTAL:
                    ConsPortalGUID = go->GetGUID();
                    break;
                case GO_ARAC_EYE_RAMP:
                    AracEyeGUID = go->GetGUID();
                    if (Encounter[DATA_MAEXXNA] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                case GO_PLAG_EYE_RAMP:
                    PlagEyeGUID = go->GetGUID();
                    if (Encounter[DATA_LOATHEB] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                case GO_MILI_EYE_RAMP:
                    MiliEyeGUID = go->GetGUID();
                    if (Encounter[DATA_HORSEMEN] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                case GO_CONS_EYE_RAMP:
                    ConsEyeGUID = go->GetGUID();
                    if (Encounter[DATA_THADDIUS] == DONE)
                        go->SetGoState(GO_STATE_ACTIVE);
                    break;
                default:
                    break;
            }
			
            AddDoor(go, true);
        }
示例#25
0
 void OnGameObjectCreate(GameObject* gameObject)
 {
     switch (gameObject->GetEntry())
     {
         case GO_KOLOGARN_CHEST_HERO:
         case GO_KOLOGARN_CHEST:
             KologarnChestGUID = gameObject->GetGUID();
             break;
         case GO_KOLOGARN_BRIDGE:
             KologarnBridgeGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_KOLOGARN) == DONE)
                 HandleGameObject(0, false, gameObject);
             break;
         case GO_KOLOGARN_DOOR:
             KologarnDoorGUID = gameObject->GetGUID();
             break;
         case GO_THORIM_CHEST_HERO:
         case GO_THORIM_CHEST:
             ThorimChestGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_RARE_CACHE_OF_WINTER_HERO:
         case GO_HODIR_RARE_CACHE_OF_WINTER:
             HodirRareCacheGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_CHEST_HERO:
         case GO_HODIR_CHEST:
             HodirChestGUID = gameObject->GetGUID();
             break;
         case GO_LEVIATHAN_DOOR:
             AddDoor(gameObject, true);
             break;
         case GO_LEVIATHAN_GATE:
             LeviathanGateGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_LEVIATHAN) == DONE)
                 gameObject->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
             break;
         case GO_XT_002_DOOR:
             AddDoor(gameObject, true);
             break;
         case GO_VEZAX_DOOR:
             VezaxDoorGUID = gameObject->GetGUID();
             HandleGameObject(0, false, gameObject);
             break;
         case GO_RAZOR_HARPOON_1:
             RazorHarpoonGUIDs[0] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_2:
             RazorHarpoonGUIDs[1] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_3:
             RazorHarpoonGUIDs[2] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_4:
             RazorHarpoonGUIDs[3] = gameObject->GetGUID();
             break;
         case GO_MOLE_MACHINE:
             if (GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS)
                 gameObject->SetGoState(GO_STATE_ACTIVE);
         case GO_HODIR_DOOR:
             HodirDoorGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_ICE_DOOR:
             HodirIceDoorGUID = gameObject->GetGUID();
             break;
         case GO_ARCHIVUM_DOOR:
             ArchivumDoorGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_ASSEMBLY_OF_IRON) != DONE)
                 HandleGameObject(ArchivumDoorGUID, false);
             break;
     }
 }
示例#26
0
            void OnGameObjectCreate(GameObject* gameObject)
            {
                switch(gameObject->GetEntry())
                {
                    case GO_KOLOGARN_CHEST_HERO:
                    case GO_KOLOGARN_CHEST:
                        KologarnChestGUID = gameObject->GetGUID();
                        break;
                    case GO_KOLOGARN_BRIDGE:
                        KologarnBridgeGUID = gameObject->GetGUID();
                        if(GetBossState(BOSS_KOLOGARN) == DONE)
                            HandleGameObject(0, false, gameObject);
                        break;
                    case GO_KOLOGARN_DOOR:
                        KologarnDoorGUID = gameObject->GetGUID();
                        break;
                    case GO_HODIR_RARE_CACHE_OF_WINTER_HERO:
                    case GO_HODIR_RARE_CACHE_OF_WINTER:
                        HodirRareCacheGUID = gameObject->GetGUID();
                        break;
                    case GO_HODIR_CHEST_HERO:
                    case GO_HODIR_CHEST:
                        HodirChestGUID = gameObject->GetGUID();
                        break;
                    case GO_FREYA_CHEST_HERO:
                    case GO_FREYA_CHEST:
                        FreyaChestGUID = gameObject->GetGUID();
                        break;
                    case GO_LEVIATHAN_DOOR:
                        AddDoor(gameObject, true);
                        break;
                    case GO_LEVIATHAN_GATE:
                        LeviathanGateGUID = gameObject->GetGUID();
                        if(GetBossState(BOSS_LEVIATHAN) == DONE)
                            gameObject->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
                        break;
                    case GO_VEZAX_DOOR:
                        VezaxDoorGUID = gameObject->GetGUID();
                        HandleGameObject(0, false, gameObject);
                        break;
                    case GO_RAZOR_HARPOON_1:
                        RazorHarpoonGUIDs[0] = gameObject->GetGUID();
                        break;
                    case GO_RAZOR_HARPOON_2:
                        RazorHarpoonGUIDs[1] = gameObject->GetGUID();
                        break;
                    case GO_RAZOR_HARPOON_3:
                        RazorHarpoonGUIDs[2] = gameObject->GetGUID();
                        break;
                    case GO_RAZOR_HARPOON_4:
                        RazorHarpoonGUIDs[3] = gameObject->GetGUID();
                        break;
                    case GO_MOLE_MACHINE:
                        if(GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS)
                            gameObject->SetGoState(GO_STATE_ACTIVE);
                    case GO_HODIR_DOOR:
                        HodirDoorGUID = gameObject->GetGUID();
                        break;
                    case GO_HODIR_ICE_DOOR:
                        HodirIceDoorGUID = gameObject->GetGUID();
                        break;
                    case GO_ARCHIVUM_DOOR:
                        ArchivumDoorGUID = gameObject->GetGUID();
                        if(GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)
                            HandleGameObject(0, false, gameObject);
                        break;

                    // Mimiron
                    case GO_MIMIRON_ELEVATOR:
                        gameObject->setActive(true);
                        MimironElevatorGUID = gameObject->GetGUID();
                        break;
                    case GO_MIMIRON_DOOR_1:
                    case GO_MIMIRON_DOOR_2:
                    case GO_MIMIRON_DOOR_3:
                        gameObject->setActive(true);
                        MimironDoorGUIDList.push_back(gameObject->GetGUID());
                        break;

                    // Thorim
                    case GO_THORIM_CHEST_HERO:
                    case GO_THORIM_CHEST:
                        ThorimChestGUID = gameObject->GetGUID();
                        break;
                    case GO_THORIM_ENCOUNTER_DOOR:
                        ThorimDoorGUID = gameObject->GetGUID();
                        break;
                    case GO_THORIM_STONE_DOOR:
                        StoneDoorGUID = gameObject->GetGUID();
                        break;
                    case GO_THORIM_RUNIC_DOOR:
                        RunicDoorGUID = gameObject->GetGUID();
                        break;
                }
            }
示例#27
0
 void OnGameObjectCreate(GameObject* pGo)
 {
     AddDoor(pGo, true);
     switch(pGo->GetEntry())
     {
         case GO_LEVIATHAN_DOOR:
             uiLeviathanDoor = pGo->GetGUID();
             break;
         case GO_KOLOGARN_BRIDGE:
             uiKologarnBridge = pGo->GetGUID();
             HandleGameObject(uiKologarnBridge, true);
             break;
         case GO_HODIR_RARE_CHEST_10:
             uiHodirRareChest = pGo->GetGUID();
             break;
         case GO_HODIR_RARE_CHEST_25:
             uiHodirRareChest = pGo->GetGUID();
             break;
         case GO_RUNIC_DOOR:
             uiRunicDoor = pGo->GetGUID();
             break;
         case GO_STONE_DOOR:
             uiStoneDoor = pGo->GetGUID();
             break;
         case GO_THORIM_LEVER:
             uiThorimLever = pGo->GetGUID();
             break;
         case GO_MIMIRON_TRAM:
             uiMimironTram = pGo->GetGUID();
             break;
         case GO_MIMIRON_ELEVATOR:
             uiMimironElevator = pGo->GetGUID();
             break;
         case GO_KEEPERS_DOOR:
             uiKeepersGate = pGo->GetGUID();
             pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
             if (instance)
                 for (uint32 i = BOSS_MIMIRON; i < BOSS_VEZAX; ++i)
                     if (GetBossState(i) != DONE)
                         pGo->SetFlag(GAMEOBJECT_FLAGS,GO_FLAG_LOCKED);
             break;
         case GO_ARCHIVUM_CONSOLE:
             uiArchivumConsole = pGo->GetGUID();
             break;
         case GO_UNIVERSE_FLOOR_ARCHIVUM:
             uiUniverseFloorArchivum = pGo->GetGUID();
             break;
             // Celestial Planetarium
         case GO_CELESTIAL_ACCES:
             uiCelestialConsole = pGo->GetGUID();
             break;
         case GO_CELESTIAL_DOOR:
             uiCelestialDoor = pGo->GetGUID();
             break;
         case GO_UNIVERSE_FLOOR_CELESTIAL:
             uiUniverseFloorCelestial = pGo->GetGUID();
             break;
         case GO_AZEROTH_GLOBE:
             uiAzerothGlobe = pGo->GetGUID();
             break;
         case GO_GIFT_OF_OBSERVER_10:
             uiAlagonLoot = pGo->GetGUID();
             break;
         case GO_GIFT_OF_OBSERVER_25:
             uiAlagonLoot = pGo->GetGUID();
             break;
         default:
             break;
     }
 }
示例#28
0
 void OnGameObjectCreate(GameObject* gameObject)
 {
     switch (gameObject->GetEntry())
     {
         case GO_IRON_COUNCIL_ENTRANCE:
             IronCouncilEntranceGUID = gameObject->GetGUID();
             break;
         case GO_XT002_DOOR:
             XT002DoorGUID = gameObject->GetGUID();
             break;
         case GO_KOLOGARN_CHEST_HERO:
         case GO_KOLOGARN_CHEST:
             KologarnChestGUID = gameObject->GetGUID();
             break;
         case GO_KOLOGARN_BRIDGE:
             KologarnBridgeGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_KOLOGARN) == DONE)
                 HandleGameObject(0, false, gameObject);
             break;
         case GO_KOLOGARN_DOOR:
             KologarnDoorGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_RARE_CACHE_OF_WINTER_HERO:
         case GO_HODIR_RARE_CACHE_OF_WINTER:
             HodirRareCacheGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_CHEST_HERO:
         case GO_HODIR_CHEST:
             HodirChestGUID = gameObject->GetGUID();
             break;
         case GO_LEVIATHAN_DOOR:
             AddDoor(gameObject, true);
             break;
         case GO_LEVIATHAN_GATE:
             LeviathanGateGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_LEVIATHAN) == DONE)
                 gameObject->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
             break;
         case GO_VEZAX_DOOR:
             VezaxDoorGUID = gameObject->GetGUID();
             HandleGameObject(0, false, gameObject);
             break;
         case GO_RAZOR_HARPOON_1:
             RazorHarpoonGUIDs[0] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_2:
             RazorHarpoonGUIDs[1] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_3:
             RazorHarpoonGUIDs[2] = gameObject->GetGUID();
             break;
         case GO_RAZOR_HARPOON_4:
             RazorHarpoonGUIDs[3] = gameObject->GetGUID();
             break;
         case GO_MOLE_MACHINE:
             if (GetBossState(BOSS_RAZORSCALE) == IN_PROGRESS)
                 gameObject->SetGoState(GO_STATE_ACTIVE);
             break;
         case GO_HODIR_DOOR:
             HodirDoorGUID = gameObject->GetGUID();
             break;
         case GO_HODIR_ICE_DOOR:
             HodirIceDoorGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_HODIR) == DONE)
                 HandleGameObject(HodirIceDoorGUID, true);
             break;
         case GO_HODIR_STONE_DOOR:
             HodirStoneDoorGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_HODIR) == DONE)
                 HandleGameObject(HodirStoneDoorGUID, true);
             break;
         case GO_ARCHIVUM_DOOR:
             ArchivumDoorGUID = gameObject->GetGUID();
             HandleGameObject(0, GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE, gameObject);
             break;
         case GO_MIMIRON_TRAIN:
             gameObject->setActive(true);
             MimironTrainGUID = gameObject->GetGUID();
             break;
         case GO_MIMIRON_ELEVATOR:
             gameObject->setActive(true);
             MimironElevatorGUID = gameObject->GetGUID();
             break;
         case GO_MIMIRON_DOOR_1:
         case GO_MIMIRON_DOOR_2:
         case GO_MIMIRON_DOOR_3:
             gameObject->setActive(true);
             MimironDoorGUIDList.push_back(gameObject->GetGUID());
             break;
         case GO_WAY_TO_YOGG:
             WayToYoggGUID = gameObject->GetGUID();
             if (GetBossState(BOSS_FREYA) == DONE &&
                 GetBossState(BOSS_MIMIRON) == DONE &&
                 GetBossState(BOSS_HODIR) == DONE &&
                 GetBossState(BOSS_THORIM) == DONE)
                 gameObject->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
             break;
         case GO_THORIM_CHEST_HERO:
         case GO_THORIM_CHEST:
             ThorimChestGUID = gameObject->GetGUID();
             break;
         case GO_THORIM_ENCOUNTER_DOOR:
             ThorimDoorGUID = gameObject->GetGUID();
             break;
         case GO_THORIM_STONE_DOOR:
             StoneDoorGUID = gameObject->GetGUID();
             break;
         case GO_THORIM_RUNIC_DOOR:
             RunicDoorGUID = gameObject->GetGUID();
         break;
         case GO_ALGALON_DOOR:
             AlgalonDoorGUID       = gameObject->GetGUID();
             gameObject->SetGoState(GO_STATE_READY);
             if (AlgalonIntroDone)
                 gameObject->SetGoState(GO_STATE_ACTIVE);
         break;
         case GO_ALGALON_FLOOR_OOC:
             AlgalonFloorOOCGUID   = gameObject->GetGUID();
             gameObject->SetGoState(GO_STATE_READY);
             gameObject->setActive(true);
             gameObject->SetPhaseMask(PHASEMASK_ANYWHERE,false);
         break;
         case GO_ALGALON_FLOOR_COM:
             AlgalonFloorCOMGUID   = gameObject->GetGUID();
             gameObject->SetGoState(GO_STATE_ACTIVE);
             gameObject->SetPhaseMask(PHASEMASK_ANYWHERE,false);
         break;
         case GO_ALGALON_BRIDGE:
             AlgalonBridgeGUID     = gameObject->GetGUID();
             gameObject->SetGoState(GO_STATE_READY);
             gameObject->SetPhaseMask(PHASEMASK_ANYWHERE,false);
         break;
         case GO_ALGALON_GLOBE:
             AlgalonGlobeGUID      = gameObject->GetGUID();
             HandleGameObject(0, false, gameObject);
             gameObject->SetPhaseMask(PHASEMASK_ANYWHERE,false);
         break;
         case GO_ALGALON_INVISDOOR:
             AlgalonForceFieldGUID= gameObject->GetGUID();
             AddDoor(gameObject, true);
             gameObject->SetGoState(GO_STATE_ACTIVE);
             gameObject->SetPhaseMask(PHASEMASK_ANYWHERE,false);
         break;
         case GO_ALGALON_CONSOLE:
             if (AlgalonIntroDone)
             {
                 gameObject->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
             }          
         break;
         case GO_YOGGSARON_DOOR:
             YoggSaronDoorGUID = gameObject->GetGUID();
             HandleGameObject(NULL, true, gameObject);
         break;
         case GO_YOGGBRAIN_DOOR_1:
             YoggSaronBrainDoor1GUID = gameObject->GetGUID();
         break;
         case GO_YOGGBRAIN_DOOR_2:
             YoggSaronBrainDoor2GUID = gameObject->GetGUID();
             HandleGameObject(NULL, false, gameObject);
         break;
         case GO_YOGGBRAIN_DOOR_3:
             YoggSaronBrainDoor3GUID = gameObject->GetGUID();
             HandleGameObject(NULL, false, gameObject);
         break;
     }
 }
 void OnGameObjectRemove(GameObject* go) override
 {
      if (go->GetEntry() == GO_IKISS_DOOR)
          AddDoor(go, false);
 }
示例#30
0
        void OnGameObjectCreate(GameObject* go)
        {
            if (go->GetGOInfo()->displayId == 6785 || go->GetGOInfo()->displayId == 1287)
            {
                uint32 section = GetEruptionSection(go->GetPositionX(), go->GetPositionY());
                HeiganEruptionGUID[section].insert(go->GetGUID());

                return;
            }

            switch (go->GetEntry())
            {
                case 16506:
                case 16505:
                    FaerlinaMinion.insert(go->GetGUID());
                    break;
                case 16803:
                    RazuviousMinion.insert(go->GetGUID());
                    break;
                case 16063:
                case 16064:
                case 16065:
                case 30549:
                    Horsemen.insert(go->GetGUID());
                    break;
                case GO_PASSAGE_SAPPHIRON:
                    SapphironWall = go->GetGUID();
                    break;
                case GO_ROOM_GROBBULUS:
                    GrobbulusDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_GLUTH:
                    GluthDoor = go->GetGUID();
                    break;
                case GO_ROOM_THADDIUS:
                    ThaddiusDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_ANUBREKHAN:
                    AnubrekhanDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_FAERLINA:
                    FaerlinaDoor = go->GetGUID();
                    break;
                case GO_ROOM_MAEXXNA:
                    MaexxnaDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_NOTH:
                    NothDoor_Out = go->GetGUID();
                    break;
                case GO_ROOM_HEIGAN:
                    HeiganDoor = go->GetGUID();
                    break;
                case GO_PASSAGE_GOTHIK:
                    GothicDoor = go->GetGUID();
                    break;
                case GO_ROOM_HORSEMEN:
                    HorsemenDoor = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_HORSEMEN_CHEST_HERO:
                    HorsemenChestGUID = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL01:
                    uiPortals[0] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL02:
                    uiPortals[1] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL03:
                    uiPortals[2] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_PORTAL04:
                    uiPortals[3] = go->GetGUID();
                    break;
                case GO_KELTHUZAD_TRIGGER:
                    uiKelthuzadTrigger = go->GetGUID();
                    break;
                default:
                    break;
            }

            AddDoor(go, true);
        }