void SetData(uint32 uiType, uint32 uiData) { switch(uiType) { case TYPE_QUEST: m_auiEncounter[0] = uiData; break; case TYPE_CRATES_COUNT: m_uiCratesCount = m_uiCratesCount + uiData; if(m_uiCratesCount == 5) { m_auiEncounter[0] = DONE; ChromiWhispers(); } DoUpdateWorldState(WORLD_STATE_COS_CRATE_COUNT, m_uiCratesCount); break; case TYPE_INTRO: m_auiEncounter[1] = uiData; break; case TYPE_PHASE: m_auiEncounter[2] = uiData; break; case TYPE_ENCOUNTER: m_auiEncounter[3] = uiData; break; case TYPE_WING: m_auiEncounter[4] = uiData; break; case TYPE_BONUS: m_auiEncounter[5] = uiData; if(uiData == IN_PROGRESS) { if(Creature* Corruptor = GetSingleCreatureFromStorage(NPC_INFINITE_CORRUPTOR)) Corruptor->SetPhaseMask(1, true); DoUpdateWorldState(WORLD_STATE_COS_TIME_ON, 1); DoUpdateWorldState(WORLD_STATE_COS_TIME_COUNT, 25); } break; case TYPE_MALGANIS: m_auiEncounter[6] = uiData; if (uiData == DONE) { DoRespawnGameObject(m_uiMalChestGUID, 30*MINUTE); if (GameObject* pGo = GetSingleGameObjectFromStorage(GO_MALGANIS_CHEST)) pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); if (GameObject* pGo = GetSingleGameObjectFromStorage(GO_MALGANIS_CHEST_H)) pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); if (Creature* pChromi2 = GetSingleCreatureFromStorage(NPC_CHROMI02)) pChromi2->SetVisibility(VISIBILITY_OFF); if (GameObject* pGo = GetSingleGameObjectFromStorage(GO_EXIT)) pGo->SetGoState(GO_STATE_ACTIVE); } break; case TYPE_ZOMBIEFEST: { if(!m_bZombiefestInProgress) m_bZombiefestInProgress = true; } } }
void SetData(uint32 uiType, uint32 uiData) { switch(uiType) { case TYPE_QUEST: m_auiEncounter[0] = uiData; break; case TYPE_CRATES_COUNT: m_uiCratesCount = m_uiCratesCount + uiData; if(m_uiCratesCount == 5) { m_auiEncounter[0] = DONE; ChromiWhispers(); } DoUpdateWorldState(WORLD_STATE_COS_CRATE_COUNT, m_uiCratesCount); break; case TYPE_INTRO: m_auiEncounter[1] = uiData; break; case TYPE_PHASE: m_auiEncounter[2] = uiData; break; case TYPE_ENCOUNTER: m_auiEncounter[3] = uiData; break; case TYPE_WING: m_auiEncounter[4] = uiData; break; case TYPE_BONUS: m_auiEncounter[5] = uiData; if(uiData == IN_PROGRESS) { if(Creature* Corruptor = instance->GetCreature(m_uiCorruptorGUID)) Corruptor->SetPhaseMask(1, true); DoUpdateWorldState(WORLD_STATE_COS_TIME_ON, 1); DoUpdateWorldState(WORLD_STATE_COS_TIME_COUNT, 25); } break; case TYPE_MALGANIS: m_auiEncounter[6] = uiData; if (uiData == DONE) { DoRespawnGameObject(m_uiMalChestGUID, 30*MINUTE); if (GameObject* pGo = instance->GetGameObject(m_uiMalChestGUID)) pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); if (Creature* pChromi2 = instance->GetCreature(m_uiChromi02GUID)) pChromi2->SetVisibility(VISIBILITY_OFF); if (GameObject* pGo = instance->GetGameObject(m_uiExitGUID)) pGo->SetGoState(GO_STATE_ACTIVE); } break; } }
void instance_culling_of_stratholme::SetData(uint32 uiType, uint32 uiData) { switch(uiType) { case TYPE_GRAIN_EVENT: m_auiEncounter[TYPE_GRAIN_EVENT] = uiData; if (uiData == SPECIAL) DoUpdateWorldState(WORLD_STATE_CRATES, 1); else if (uiData == IN_PROGRESS) { if (m_uiGrainCrateCount >= 5) return; ++m_uiGrainCrateCount; DoUpdateWorldState(WORLD_STATE_CRATES_COUNT, m_uiGrainCrateCount); if (m_uiGrainCrateCount == 5) { UpdateQuestCredit(); ChromiWhispers(); m_uiRemoveCrateStateTimer = 20000; SetData(TYPE_GRAIN_EVENT, DONE); } } break; case TYPE_ARTHAS_INTRO_EVENT: m_auiEncounter[TYPE_ARTHAS_INTRO_EVENT] = uiData; break; case TYPE_ARTHAS_ESCORT_EVENT: m_auiEncounter[TYPE_ARTHAS_ESCORT_EVENT] = uiData; break; case TYPE_MEATHOOK_EVENT: m_auiEncounter[TYPE_MEATHOOK_EVENT] = uiData; if (uiData == DONE) SetData(TYPE_SALRAMM_EVENT, IN_PROGRESS); break; case TYPE_SALRAMM_EVENT: m_auiEncounter[TYPE_SALRAMM_EVENT] = uiData; if (uiData == DONE) DoUpdateWorldState(WORLD_STATE_WAVE, 0); // Remove WaveCounter break; case TYPE_EPOCH_EVENT: m_auiEncounter[TYPE_EPOCH_EVENT] = uiData; break; case TYPE_MALGANIS_EVENT: m_auiEncounter[TYPE_MALGANIS_EVENT] = uiData; if (uiData == DONE) { DoRespawnGameObject(m_uiDarkRunedChestGUID, 30*MINUTE); DoSpawnChromieIfNeeded(); } break; case TYPE_INFINITE_CORRUPTER_TIME: m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME] = uiData; if (!uiData) { DoUpdateWorldState(WORLD_STATE_TIME, 0); // Remove Timer DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, 0); } else DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, uiData/(MINUTE*IN_MILLISECONDS)); break; case TYPE_INFINITE_CORRUPTER: m_auiEncounter[TYPE_INFINITE_CORRUPTER] = uiData; switch(uiData) { case IN_PROGRESS: if (!m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME]) SetData(TYPE_INFINITE_CORRUPTER_TIME, MINUTE*25*IN_MILLISECONDS); DoUpdateWorldState(WORLD_STATE_TIME, 1);// Show Timer break; case DONE: SetData(TYPE_INFINITE_CORRUPTER_TIME, 0); break; case SPECIAL: DoChromieHurrySpeech(); break; case FAIL: SetData(TYPE_INFINITE_CORRUPTER_TIME, 0); if (Creature* pCorrupter = instance->GetCreature(m_uiCorrupterGUID)) if (pCorrupter->isAlive()) pCorrupter->ForcedDespawn(); break; } break; case TYPE_PHASE: m_auiEncounter[TYPE_PHASE] = uiData; break; case TYPE_ENCOUNTER: m_auiEncounter[TYPE_ENCOUNTER] = uiData; break; case TYPE_WING: m_auiEncounter[TYPE_WING] = uiData; break; case TYPE_ZOMBIEFEST: m_auiEncounter[TYPE_ZOMBIEFEST] = uiData; if(uiData == IN_PROGRESS) m_uiZombieTimer = 0; break; case TYPE_ZOMBIE_COUNT: m_uiZombieCount = m_uiZombieCount + uiData; break; } if (uiData == DONE || (uiType == TYPE_INFINITE_CORRUPTER && uiData == FAIL)) { 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; } }