diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-01-03 21:55:45 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-10-04 00:19:38 +0200 |
| commit | 76be303351ae398b7f9e69e4c472cb5b05fce45e (patch) | |
| tree | b7139aa70f1e9492fe8b94224fee28bbbe1ec34c /src/server/scripts/EasternKingdoms/Stratholme | |
| parent | 9b924522d0549dd67b10e2cbdfc20297dd21e182 (diff) | |
Core/Scripts: Save instance data in JSON format
Diffstat (limited to 'src/server/scripts/EasternKingdoms/Stratholme')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp | 78 |
1 files changed, 17 insertions, 61 deletions
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp index c2c2022f73b..7cf6697426e 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp @@ -34,7 +34,6 @@ EndScriptData */ #include "MotionMaster.h" #include "Player.h" #include "stratholme.h" -#include <sstream> enum InstanceEvents { @@ -60,9 +59,7 @@ class instance_stratholme : public InstanceMapScript instance_stratholme_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { SetHeaders(DataHeader); - - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - EncounterState[i] = NOT_STARTED; + SetBossNumber(MAX_ENCOUNTER); for (uint8 i = 0; i < 5; ++i) IsSilverHandDead[i] = false; @@ -71,7 +68,6 @@ class instance_stratholme : public InstanceMapScript scarletsKilled = 0; } - uint32 EncounterState[MAX_ENCOUNTER]; uint8 scarletsKilled; bool IsSilverHandDead[5]; @@ -126,7 +122,7 @@ class instance_stratholme : public InstanceMapScript bool StartSlaugtherSquare() { //change to DONE when crystals implemented - if (EncounterState[1] == IN_PROGRESS && EncounterState[2] == IN_PROGRESS && EncounterState[3] == IN_PROGRESS) + if (GetBossState(1) == IN_PROGRESS && GetBossState(2) == IN_PROGRESS && GetBossState(3) == IN_PROGRESS) { HandleGameObject(portGauntletGUID, true); HandleGameObject(portSlaugtherGUID, true); @@ -254,9 +250,9 @@ class instance_stratholme : public InstanceMapScript switch (data) { case IN_PROGRESS: - if (EncounterState[0] == IN_PROGRESS || EncounterState[0] == FAIL) + if (GetBossState(0) == IN_PROGRESS || GetBossState(0) == FAIL) break; - EncounterState[0] = data; + SetBossState(0, EncounterState(data)); events.ScheduleEvent(EVENT_BARON_RUN, 45min); TC_LOG_DEBUG("scripts", "Instance Stratholme: Baron run in progress."); break; @@ -264,10 +260,10 @@ class instance_stratholme : public InstanceMapScript DoRemoveAurasDueToSpellOnPlayers(SPELL_BARON_ULTIMATUM); if (Creature* ysida = instance->GetCreature(ysidaGUID)) ysida->CastSpell(ysida, SPELL_PERM_FEIGN_DEATH, true); - EncounterState[0] = data; + SetBossState(0, EncounterState(data)); break; case DONE: - EncounterState[0] = data; + SetBossState(0, EncounterState(data)); if (Creature* ysida = instance->GetCreature(ysidaGUID)) { @@ -303,7 +299,7 @@ class instance_stratholme : public InstanceMapScript } break; case TYPE_BARONESS: - EncounterState[1] = data; + SetBossState(1, EncounterState(data)); if (data == IN_PROGRESS) { HandleGameObject(ziggurat1GUID, true); @@ -312,7 +308,7 @@ class instance_stratholme : public InstanceMapScript } break; case TYPE_NERUB: - EncounterState[2] = data; + SetBossState(2, EncounterState(data)); if (data == IN_PROGRESS) { HandleGameObject(ziggurat2GUID, true); @@ -321,7 +317,7 @@ class instance_stratholme : public InstanceMapScript } break; case TYPE_PALLID: - EncounterState[3] = data; + SetBossState(3, EncounterState(data)); if (data == IN_PROGRESS) { HandleGameObject(ziggurat3GUID, true); @@ -362,7 +358,7 @@ class instance_stratholme : public InstanceMapScript events.ScheduleEvent(EVENT_SLAUGHTER_SQUARE, 1min); TC_LOG_DEBUG("scripts", "Instance Stratholme: Slaugther event will continue in 1 minute."); } - EncounterState[4] = data; + SetBossState(4, EncounterState(data)); break; case TYPE_BARON: if (data == IN_PROGRESS) @@ -383,7 +379,7 @@ class instance_stratholme : public InstanceMapScript SetData(TYPE_BARON_RUN, DONE); } - EncounterState[5] = data; + SetBossState(5, EncounterState(data)); break; case TYPE_SH_AELMAR: IsSilverHandDead[0] = (data) ? true : false; @@ -401,46 +397,6 @@ class instance_stratholme : public InstanceMapScript IsSilverHandDead[4] = (data) ? true : false; break; } - - if (data == DONE) - SaveToDB(); - } - - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream saveStream; - saveStream << EncounterState[0] << ' ' << EncounterState[1] << ' ' << EncounterState[2] << ' ' - << EncounterState[3] << ' ' << EncounterState[4] << ' ' << EncounterState[5]; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(char const* in) override - { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(in); - - std::istringstream loadStream(in); - loadStream >> EncounterState[0] >> EncounterState[1] >> EncounterState[2] >> EncounterState[3] - >> EncounterState[4] >> EncounterState[5]; - - // Do not reset 1, 2 and 3. they are not set to done, yet . - if (EncounterState[0] == IN_PROGRESS) - EncounterState[0] = NOT_STARTED; - if (EncounterState[4] == IN_PROGRESS) - EncounterState[4] = NOT_STARTED; - if (EncounterState[5] == IN_PROGRESS) - EncounterState[5] = NOT_STARTED; - - OUT_LOAD_INST_DATA_COMPLETE; } uint32 GetData(uint32 type) const override @@ -452,17 +408,17 @@ class instance_stratholme : public InstanceMapScript return 1; return 0; case TYPE_BARON_RUN: - return EncounterState[0]; + return GetBossState(0); case TYPE_BARONESS: - return EncounterState[1]; + return GetBossState(1); case TYPE_NERUB: - return EncounterState[2]; + return GetBossState(2); case TYPE_PALLID: - return EncounterState[3]; + return GetBossState(3); case TYPE_RAMSTEIN: - return EncounterState[4]; + return GetBossState(4); case TYPE_BARON: - return EncounterState[5]; + return GetBossState(5); } return 0; } |
