void instance_black_temple::SetData(uint32 uiType, uint32 uiData) { debug_log("SD2: Instance Black Temple: SetData received for type %u with data %u",uiType,uiData); switch(uiType) { case TYPE_NAJENTUS: m_auiEncounter[uiType] = uiData; if (uiData == DONE) DoUseDoorOrButton(GO_NAJENTUS_GATE); break; case TYPE_SUPREMUS: m_auiEncounter[uiType] = uiData; if (uiData == DONE) DoUseDoorOrButton(GO_SUPREMUS_DOORS); break; case TYPE_SHADE: case TYPE_GOREFIEND: case TYPE_BLOODBOIL: case TYPE_RELIQUIARY: m_auiEncounter[uiType] = uiData; if (uiData == DONE && CanPreMotherDoorOpen()) DoUseDoorOrButton(GO_PRE_SHAHRAZ_DOOR); break; case TYPE_SHAHRAZ: if (uiData == DONE) DoUseDoorOrButton(GO_POST_SHAHRAZ_DOOR); m_auiEncounter[uiType] = uiData; break; case TYPE_COUNCIL: DoUseDoorOrButton(GO_COUNCIL_DOOR); m_auiEncounter[uiType] = uiData; break; case TYPE_ILLIDAN: m_auiEncounter[uiType] = uiData; break; default: error_log("SD2: Instance Black Temple: ERROR SetData = %u for type %u does not exist/not implemented.", uiType, uiData); return; } if (uiData == DONE) { OUT_SAVE_INST_DATA; std::ostringstream saveStream; saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " " << m_auiEncounter[6] << " " << m_auiEncounter[7] << " " << m_auiEncounter[8]; m_strInstData = saveStream.str(); SaveToDB(); OUT_SAVE_INST_DATA_COMPLETE; } }
void OnObjectCreate(GameObject* pGo) { switch(pGo->GetEntry()) { case 185483: // Gate past Naj'entus (at the entrance to Supermoose's courtyards) m_uiNajentusGateGUID = pGo->GetGUID(); if (m_auiEncounter[0] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case 185882: // Main Temple Doors - right past Supermoose (Supremus) m_uiMainTempleDoorsGUID = pGo->GetGUID(); if (m_auiEncounter[1] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case 185478: m_uiShadeAkamaDoorGUID = pGo->GetGUID(); // Door close during encounter break; case 185892: m_uiBloodboilPostDoorGUID = pGo->GetGUID(); // Door open after killing Bloodboil if (m_auiEncounter[4] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case 185479: // Door leading to Mother Shahraz m_uiShahrazPreDoorGUID = pGo->GetGUID(); if (CanPreMotherDoorOpen()) pGo->SetGoState(GO_STATE_ACTIVE); break; case 185481: // Door leading to the Council (grand promenade) m_uiCouncilDoorGUID = pGo->GetGUID(); if (m_auiEncounter[6] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case 185482: // Door after shahraz m_uiShahrazPostDoorGUID = pGo->GetGUID(); if (m_auiEncounter[6] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case 185905: // Gate leading to Temple Summit m_uiIllidanGateGUID = pGo->GetGUID(); break; case 186261: // Right door at Temple Summit m_uiIllidanDoorGUID[0] = pGo->GetGUID(); break; case 186262: // Left door at Temple Summit m_uiIllidanDoorGUID[1] = pGo->GetGUID(); break; } }
void instance_black_temple::OnObjectCreate(GameObject* pGo) { switch(pGo->GetEntry()) { case GO_NAJENTUS_GATE: // Gate past Naj'entus (at the entrance to Supermoose's courtyards) if (m_auiEncounter[TYPE_NAJENTUS] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case GO_SUPREMUS_DOORS: // Main Temple Doors - right past Supermoose (Supremus) if (m_auiEncounter[TYPE_SUPREMUS] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case GO_SHADE_OF_AKAMA: // Door close during encounter break; case GO_PRE_SHAHRAZ_DOOR: // Door leading to Mother Shahraz if (CanPreMotherDoorOpen()) pGo->SetGoState(GO_STATE_ACTIVE); break; case GO_POST_SHAHRAZ_DOOR: // Door after shahraz if (m_auiEncounter[6] == DONE) pGo->SetGoState(GO_STATE_ACTIVE); break; case GO_PRE_COUNCIL_DOOR: // Door leading to the Council (grand promenade) break; case GO_COUNCIL_DOOR: // Door leading to the Council (inside) break; case GO_ILLIDAN_GATE: // Gate leading to Temple Summit // TODO - dependend on council state break; case GO_ILLIDAN_DOOR_R: // Right door at Temple Summit case GO_ILLIDAN_DOOR_L: // Left door at Temple Summit break; default: return; } m_mGoEntryGuidStore[pGo->GetEntry()] = pGo->GetObjectGuid(); }
void SetData(uint32 uiType, uint32 uiData) { debug_log("SD2: Instance Black Temple: SetData received for type %u with data %u",uiType,uiData); switch(uiType) { case TYPE_NAJENTUS: m_auiEncounter[0] = uiData; if (uiData == DONE) DoUseDoorOrButton(m_uiNajentusGateGUID); break; case TYPE_SUPREMUS: m_auiEncounter[1] = uiData; if (uiData == DONE) DoUseDoorOrButton(m_uiMainTempleDoorsGUID); break; case TYPE_SHADE: m_auiEncounter[2] = uiData; if (uiData == DONE && CanPreMotherDoorOpen()) DoUseDoorOrButton(m_uiShahrazPreDoorGUID); break; case TYPE_GOREFIEND: m_auiEncounter[3] = uiData; if (uiData == DONE && CanPreMotherDoorOpen()) DoUseDoorOrButton(m_uiShahrazPreDoorGUID); break; case TYPE_BLOODBOIL: m_auiEncounter[4] = uiData; if (uiData == DONE && CanPreMotherDoorOpen()) DoUseDoorOrButton(m_uiShahrazPreDoorGUID); break; case TYPE_RELIQUIARY: m_auiEncounter[5] = uiData; if (uiData == DONE && CanPreMotherDoorOpen()) DoUseDoorOrButton(m_uiShahrazPreDoorGUID); break; case TYPE_SHAHRAZ: if (uiData == DONE) { DoUseDoorOrButton(m_uiCouncilDoorGUID); DoUseDoorOrButton(m_uiShahrazPostDoorGUID); } m_auiEncounter[6] = uiData; break; case TYPE_COUNCIL: m_auiEncounter[7] = uiData; break; case TYPE_ILLIDAN: m_auiEncounter[8] = uiData; break; default: error_log("SD2: Instance Black Temple: ERROR SetData = %u for type %u does not exist/not implemented.",uiType,uiData); break; } if (uiData == DONE) { OUT_SAVE_INST_DATA; std::ostringstream saveStream; saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " " << m_auiEncounter[6] << " " << m_auiEncounter[7] << " " << m_auiEncounter[8]; strInstData = saveStream.str(); SaveToDB(); OUT_SAVE_INST_DATA_COMPLETE; } }