aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/EasternKingdoms/Stratholme
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-01-03 21:55:45 +0100
committerShauren <shauren.trinity@gmail.com>2022-10-04 00:19:38 +0200
commit76be303351ae398b7f9e69e4c472cb5b05fce45e (patch)
treeb7139aa70f1e9492fe8b94224fee28bbbe1ec34c /src/server/scripts/EasternKingdoms/Stratholme
parent9b924522d0549dd67b10e2cbdfc20297dd21e182 (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.cpp78
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;
}