diff options
-rw-r--r-- | src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 3006b905673..5d720ad8721 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -128,6 +128,8 @@ struct instance_naxxramas : public InstanceData uint64 uiKelthuzadTrigger; uint64 uiPortals[4]; + GOState gothikDoorState; + time_t minHorsemenDiedTime; time_t maxHorsemenDiedTime; @@ -171,7 +173,9 @@ struct instance_naxxramas : public InstanceData pSapphiron->AI()->DoAction(DATA_SAPPHIRON_BIRTH); return; } - case GO_GOTHIK_GATE: GothikGateGUID = add ? pGo->GetGUID() : 0; break; + case GO_GOTHIK_GATE: + GothikGateGUID = add ? pGo->GetGUID() : 0; + break; case GO_HORSEMEN_CHEST: HorsemenChestGUID = add ? pGo->GetGUID() : 0; break; case GO_HORSEMEN_CHEST_HERO: HorsemenChestGUID = add ? pGo->GetGUID() : 0; break; case GO_KELTHUZAD_PORTAL01: uiPortals[0] = pGo->GetGUID(); break; @@ -194,6 +198,7 @@ struct instance_naxxramas : public InstanceData case DATA_GOTHIK_GATE: if (GameObject *pGothikGate = instance->GetGameObject(GothikGateGUID)) pGothikGate->SetGoState(GOState(value)); + gothikDoorState = GOState(value); break; case DATA_HORSEMEN0: @@ -307,6 +312,21 @@ struct instance_naxxramas : public InstanceData } return false; } + + std::string GetSaveData() + { + std::ostringstream saveStream; + saveStream << GetBossSaveData() << gothikDoorState; + return saveStream.str(); + } + + void Load(const char * data) + { + std::istringstream loadStream(LoadBossState(data)); + uint32 buff; + loadStream >> buff; + gothikDoorState = GOState(buff); + } }; InstanceData* GetInstanceData_instance_naxxramas(Map* pMap) |