Core/InstanceScript: refactored load and save methods
This commit is contained in:
1 parent
9ab74b3910
commit
ef9b4aea5e
143 files changed
+487
-1860
No files matched your search
@@ -19,6 +19,7 @@
|
||||
#define AHNKAHET_H_
|
||||
|
||||
#define AhnKahetScriptName "instance_ahnkahet"
|
||||
#define DataHeader "AK"
|
||||
|
||||
uint32 const EncounterCount = 5;
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ class instance_ahnkahet : public InstanceMapScript
|
||||
{
|
||||
instance_ahnkahet_InstanceScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
@@ -258,50 +259,15 @@ class instance_ahnkahet : public InstanceMapScript
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
void WriteSaveDataMore(std::ostringstream& data) override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "A K " << GetBossSaveData() << SpheresState[0] << ' ' << SpheresState[1];
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
data << SpheresState[0] << ' ' << SpheresState[1];
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
void ReadSaveDataMore(std::istringstream& data) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'A' && dataHead2 == 'K')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
loadStream >> SpheresState[0];
|
||||
loadStream >> SpheresState[1];
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
data >> SpheresState[0];
|
||||
data >> SpheresState[1];
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -317,7 +283,7 @@ class instance_ahnkahet : public InstanceMapScript
|
||||
|
||||
std::set<uint64> InitiandGUIDs;
|
||||
|
||||
uint8 SpheresState[2];
|
||||
uint32 SpheresState[2];
|
||||
uint8 SwitchTrigger;
|
||||
};
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define AZJOL_NERUB_H_
|
||||
|
||||
#define AzjolNerubScriptName "instance_azjol_nerub"
|
||||
#define DataHeader "AN"
|
||||
|
||||
uint32 const EncounterCount = 3;
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ class instance_azjol_nerub : public InstanceMapScript
|
||||
{
|
||||
instance_azjol_nerub_InstanceScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
@@ -128,49 +129,6 @@ class instance_azjol_nerub : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "A N " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'A' && dataHead2 == 'N')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 KrikthirGUID;
|
||||
uint64 HadronoxGUID;
|
||||
|
||||
+1
-43
@@ -34,6 +34,7 @@ public:
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
sartharionGUID = 0;
|
||||
tenebronGUID = 0;
|
||||
shadronGUID = 0;
|
||||
@@ -98,49 +99,6 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "O S " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'O' && dataHead2 == 'S')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 sartharionGUID;
|
||||
uint64 tenebronGUID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define OBSIDIAN_SANCTUM_H_
|
||||
|
||||
#define OSScriptName "instance_obsidian_sanctum"
|
||||
#define DataHeader "OS"
|
||||
|
||||
uint32 const EncounterCount = 5;
|
||||
|
||||
|
||||
+3
-3
@@ -15,9 +15,9 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ObjectMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "SpellScript.h"
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "ruby_sanctum.h"
|
||||
|
||||
@@ -245,7 +245,7 @@ class npc_baltharus_the_warborn_clone : public CreatureScript
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
{
|
||||
// Setting DATA_BALTHARUS_SHARED_HEALTH to 0 when killed would bug the boss.
|
||||
if (_instance && me->GetHealth() > damage)
|
||||
if (me->GetHealth() > damage)
|
||||
_instance->SetData(DATA_BALTHARUS_SHARED_HEALTH, me->GetHealth() - damage);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "SpellScript.h"
|
||||
#include "ruby_sanctum.h"
|
||||
|
||||
enum Texts
|
||||
|
||||
+4
-46
@@ -15,12 +15,13 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "ruby_sanctum.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "TemporarySummon.h"
|
||||
#include "WorldPacket.h"
|
||||
#include "ruby_sanctum.h"
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
@@ -37,6 +38,7 @@ class instance_ruby_sanctum : public InstanceMapScript
|
||||
{
|
||||
instance_ruby_sanctum_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
BaltharusTheWarbornGUID = 0;
|
||||
@@ -294,17 +296,6 @@ class instance_ruby_sanctum : public InstanceMapScript
|
||||
return BaltharusSharedHealth;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "R S " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void FillInitialWorldStates(WorldPacket& data) override
|
||||
{
|
||||
data << uint32(WORLDSTATE_CORPOREALITY_MATERIAL) << uint32(50);
|
||||
@@ -312,39 +303,6 @@ class instance_ruby_sanctum : public InstanceMapScript
|
||||
data << uint32(WORLDSTATE_CORPOREALITY_TOGGLE) << uint32(0);
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'R' && dataHead2 == 'S')
|
||||
{
|
||||
for (uint8 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 BaltharusTheWarbornGUID;
|
||||
uint64 GeneralZarithrianGUID;
|
||||
|
||||
@@ -18,12 +18,9 @@
|
||||
#ifndef RUBY_SANCTUM_H_
|
||||
#define RUBY_SANCTUM_H_
|
||||
|
||||
#include "SpellScript.h"
|
||||
#include "Map.h"
|
||||
#include "Creature.h"
|
||||
#include "GameObjectAI.h"
|
||||
|
||||
#define RSScriptName "instance_ruby_sanctum"
|
||||
#define DataHeader "RS"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
Position const HalionControllerSpawnPos = {3156.037f, 533.2656f, 72.97205f, 0.0f};
|
||||
|
||||
+1
@@ -68,6 +68,7 @@ public:
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
uiMovementDone = 0;
|
||||
uiGrandChampionsDeaths = 0;
|
||||
uiArgentSoldierDeaths = 0;
|
||||
|
||||
+2
@@ -19,6 +19,8 @@
|
||||
#ifndef DEF_TOC_H
|
||||
#define DEF_TOC_H
|
||||
|
||||
#define DataHeader "TC"
|
||||
|
||||
enum Data
|
||||
{
|
||||
BOSS_GRAND_CHAMPIONS,
|
||||
|
||||
+1
@@ -33,6 +33,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
TrialCounter = 50;
|
||||
EventStage = 0;
|
||||
|
||||
+2
@@ -5,6 +5,8 @@
|
||||
#ifndef DEF_CRUSADER_H
|
||||
#define DEF_CRUSADER_H
|
||||
|
||||
#define DataHeader "TCR"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
BOSS_BEASTS = 0,
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define DRAK_THARON_KEEP_H_
|
||||
|
||||
#define DrakTharonKeepScriptName "instance_drak_tharon_keep"
|
||||
#define DataHeader "DTK"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
{
|
||||
instance_drak_tharon_keep_InstanceScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
|
||||
TrollgoreGUID = 0;
|
||||
@@ -159,49 +160,6 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
novos->AI()->DoAction(ACTION_CRYSTAL_HANDLER_DIED);
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "D K " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'D' && dataHead2 == 'K')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 TrollgoreGUID;
|
||||
uint64 NovosGUID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define DEF_FORGE_OF_SOULS_H
|
||||
|
||||
#define FoSScriptName "instance_forge_of_souls"
|
||||
#define DataHeader "FOS"
|
||||
|
||||
enum Data
|
||||
{
|
||||
|
||||
@@ -36,6 +36,7 @@ class instance_forge_of_souls : public InstanceMapScript
|
||||
{
|
||||
instance_forge_of_souls_InstanceScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
bronjahm = 0;
|
||||
devourerOfSouls = 0;
|
||||
@@ -110,47 +111,6 @@ class instance_forge_of_souls : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "F S " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* in) override
|
||||
{
|
||||
if (!in)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(in);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'F' && dataHead2 == 'S')
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
} else OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 bronjahm;
|
||||
uint64 devourerOfSouls;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define HALLS_OF_REFLECTION_H_
|
||||
|
||||
#define HoRScriptName "instance_halls_of_reflection"
|
||||
#define DataHeader "HOR"
|
||||
|
||||
uint32 const EncounterCount = 3;
|
||||
|
||||
|
||||
+14
-49
@@ -82,6 +82,7 @@ class instance_halls_of_reflection : public InstanceMapScript
|
||||
{
|
||||
instance_halls_of_reflection_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
|
||||
JainaOrSylvanasIntroGUID = 0;
|
||||
@@ -709,61 +710,25 @@ class instance_halls_of_reflection : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
void WriteSaveDataMore(std::ostringstream& data) override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "H R " << GetBossSaveData() << _introState << ' ' << _frostswornGeneralState;
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
data << _introState << ' ' << _frostswornGeneralState;
|
||||
}
|
||||
|
||||
void Load(char const* in) override
|
||||
void ReadSaveDataMore(std::istringstream& data) override
|
||||
{
|
||||
if (!in)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(in);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'H' && dataHead2 == 'R')
|
||||
{
|
||||
for (uint8 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
uint32 temp = 0;
|
||||
loadStream >> temp;
|
||||
if (temp == DONE)
|
||||
SetData(DATA_INTRO_EVENT, DONE);
|
||||
else
|
||||
SetData(DATA_INTRO_EVENT, NOT_STARTED);
|
||||
|
||||
loadStream >> temp;
|
||||
if (temp == DONE)
|
||||
SetData(DATA_FROSTSWORN_GENERAL, DONE);
|
||||
else
|
||||
SetData(DATA_FROSTSWORN_GENERAL, NOT_STARTED);
|
||||
}
|
||||
uint32 temp = 0;
|
||||
data >> temp;
|
||||
if (temp == DONE)
|
||||
SetData(DATA_INTRO_EVENT, DONE);
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
SetData(DATA_INTRO_EVENT, NOT_STARTED);
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
data >> temp;
|
||||
if (temp == DONE)
|
||||
SetData(DATA_FROSTSWORN_GENERAL, DONE);
|
||||
else
|
||||
SetData(DATA_FROSTSWORN_GENERAL, NOT_STARTED);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -41,6 +41,7 @@ class instance_pit_of_saron : public InstanceMapScript
|
||||
{
|
||||
instance_pit_of_saron_InstanceScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(Doors);
|
||||
_garfrostGUID = 0;
|
||||
@@ -264,50 +265,6 @@ class instance_pit_of_saron : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "P S " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* in) override
|
||||
{
|
||||
if (!in)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(in);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(in);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'P' && dataHead2 == 'S')
|
||||
{
|
||||
for (uint8 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 _garfrostGUID;
|
||||
uint64 _krickGUID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define PIT_OF_SARON_H_
|
||||
|
||||
#define PoSScriptName "instance_pit_of_saron"
|
||||
#define DataHeader "POS"
|
||||
|
||||
uint32 const EncounterCount = 3;
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef DEF_GUNDRAK_H
|
||||
#define DEF_GUNDRAK_H
|
||||
|
||||
#define DataHeader "GD"
|
||||
|
||||
enum Data
|
||||
{
|
||||
DATA_SLAD_RAN_EVENT,
|
||||
|
||||
@@ -45,6 +45,7 @@ public:
|
||||
{
|
||||
instance_gundrak_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
isHeroic = map->IsHeroic();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,11 +19,9 @@
|
||||
#define ICECROWN_CITADEL_H_
|
||||
|
||||
#include "SpellScript.h"
|
||||
#include "Map.h"
|
||||
#include "Creature.h"
|
||||
#include "SpellMgr.h"
|
||||
|
||||
#define ICCScriptName "instance_icecrown_citadel"
|
||||
#define DataHeader "IC"
|
||||
|
||||
uint32 const EncounterCount = 13;
|
||||
uint32 const WeeklyNPCs = 9;
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "InstanceScript.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "icecrown_citadel.h"
|
||||
#include "Spell.h"
|
||||
#include "Player.h"
|
||||
#include "icecrown_citadel.h"
|
||||
|
||||
#define GOSSIP_SENDER_ICC_PORT 631
|
||||
|
||||
|
||||
@@ -115,6 +115,7 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
{
|
||||
instance_icecrown_citadel_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
TeamInInstance = 0;
|
||||
@@ -1324,64 +1325,32 @@ class instance_icecrown_citadel : public InstanceMapScript
|
||||
}
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
void WriteSaveDataMore(std::ostringstream& data) override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "I C " << GetBossSaveData() << HeroicAttempts << ' '
|
||||
<< ColdflameJetsState << ' ' << BloodQuickeningState << ' ' << BloodQuickeningMinutes << ' ' << UpperSpireTeleporterActiveState;
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
data << HeroicAttempts << ' '
|
||||
<< ColdflameJetsState << ' '
|
||||
<< BloodQuickeningState << ' '
|
||||
<< BloodQuickeningMinutes << ' '
|
||||
<< UpperSpireTeleporterActiveState;
|
||||
}
|
||||
|
||||
void Load(const char* str) override
|
||||
void ReadSaveDataMore(std::istringstream& data) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
data >> HeroicAttempts;
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'I' && dataHead2 == 'C')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
loadStream >> HeroicAttempts;
|
||||
|
||||
uint32 temp = 0;
|
||||
loadStream >> temp;
|
||||
if (temp == IN_PROGRESS)
|
||||
ColdflameJetsState = NOT_STARTED;
|
||||
else
|
||||
ColdflameJetsState = temp ? DONE : NOT_STARTED;
|
||||
|
||||
loadStream >> temp;
|
||||
BloodQuickeningState = temp ? DONE : NOT_STARTED; // DONE means finished (not success/fail)
|
||||
loadStream >> BloodQuickeningMinutes;
|
||||
|
||||
loadStream >> temp;
|
||||
UpperSpireTeleporterActiveState = temp ? DONE : NOT_STARTED;
|
||||
}
|
||||
uint32 temp = 0;
|
||||
data >> temp;
|
||||
if (temp == IN_PROGRESS)
|
||||
ColdflameJetsState = NOT_STARTED;
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
ColdflameJetsState = temp ? DONE : NOT_STARTED;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
data >> temp;
|
||||
BloodQuickeningState = temp ? DONE : NOT_STARTED; // DONE means finished (not success/fail)
|
||||
data >> BloodQuickeningMinutes;
|
||||
|
||||
data >> temp;
|
||||
UpperSpireTeleporterActiveState = temp ? DONE : NOT_STARTED;
|
||||
}
|
||||
|
||||
void Update(uint32 diff) override
|
||||
|
||||
@@ -107,6 +107,7 @@ class instance_naxxramas : public InstanceMapScript
|
||||
{
|
||||
instance_naxxramas_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
LoadMinionData(minionData);
|
||||
@@ -427,50 +428,6 @@ class instance_naxxramas : public InstanceMapScript
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "N X " << GetBossSaveData() << playerDied;
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* strIn) override
|
||||
{
|
||||
if (!strIn)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(strIn);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(strIn);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'N' && dataHead2 == 'X')
|
||||
{
|
||||
for (uint8 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
loadStream >> playerDied;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
/* The Arachnid Quarter */
|
||||
// Grand Widow Faerlina
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef DEF_NAXXRAMAS_H
|
||||
#define DEF_NAXXRAMAS_H
|
||||
|
||||
#define DataHeader "NAX"
|
||||
|
||||
uint32 const EncounterCount = 15;
|
||||
|
||||
enum Encounter
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef DEF_EYE_OF_ETERNITY_H
|
||||
#define DEF_EYE_OF_ETERNITY_H
|
||||
|
||||
#define DataHeader "EOE"
|
||||
|
||||
enum InstanceData
|
||||
{
|
||||
DATA_MALYGOS_EVENT,
|
||||
|
||||
@@ -35,6 +35,7 @@ public:
|
||||
{
|
||||
instance_eye_of_eternity_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
|
||||
vortexTriggers.clear();
|
||||
@@ -278,65 +279,23 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "E E " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'E' && dataHead2 == 'E')
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
} else OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
private:
|
||||
std::list<uint64> vortexTriggers;
|
||||
std::list<uint64> portalTriggers;
|
||||
uint64 malygosGUID;
|
||||
uint64 irisGUID;
|
||||
uint64 lastPortalGUID;
|
||||
uint64 platformGUID;
|
||||
uint64 exitPortalGUID;
|
||||
uint64 heartOfMagicGUID;
|
||||
uint64 alexstraszaBunnyGUID;
|
||||
uint64 giftBoxBunnyGUID;
|
||||
Position focusingIrisPosition;
|
||||
Position exitPortalPosition;
|
||||
private:
|
||||
std::list<uint64> vortexTriggers;
|
||||
std::list<uint64> portalTriggers;
|
||||
uint64 malygosGUID;
|
||||
uint64 irisGUID;
|
||||
uint64 lastPortalGUID;
|
||||
uint64 platformGUID;
|
||||
uint64 exitPortalGUID;
|
||||
uint64 heartOfMagicGUID;
|
||||
uint64 alexstraszaBunnyGUID;
|
||||
uint64 giftBoxBunnyGUID;
|
||||
Position focusingIrisPosition;
|
||||
Position exitPortalPosition;
|
||||
};
|
||||
};
|
||||
|
||||
void AddSC_instance_eye_of_eternity()
|
||||
{
|
||||
new instance_eye_of_eternity();
|
||||
new instance_eye_of_eternity();
|
||||
}
|
||||
@@ -55,6 +55,7 @@ public:
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
|
||||
Anomalus = 0;
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef DEF_NEXUS_H
|
||||
#define DEF_NEXUS_H
|
||||
|
||||
#define DataHeader "NEX"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_MAGUS_TELESTRA_EVENT,
|
||||
|
||||
@@ -40,6 +40,7 @@ class instance_oculus : public InstanceMapScript
|
||||
{
|
||||
instance_oculus_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
@@ -286,49 +287,6 @@ class instance_oculus : public InstanceMapScript
|
||||
gwhelp->SetPhaseMask(1, true);
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "T O " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'T' && dataHead2 == 'O')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 DrakosGUID;
|
||||
uint64 VarosGUID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define OCULUS_H_
|
||||
|
||||
#define OculusScriptName "instance_oculus"
|
||||
#define DataHeader "OC"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define HALLS_OF_LIGHTNING_H_
|
||||
|
||||
#define HoLScriptName "instance_halls_of_lightning"
|
||||
#define DataHeader "HOL"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
|
||||
+1
-43
@@ -36,6 +36,7 @@ class instance_halls_of_lightning : public InstanceMapScript
|
||||
{
|
||||
instance_halls_of_lightning_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
@@ -136,49 +137,6 @@ class instance_halls_of_lightning : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "H L " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(const char* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'H' && dataHead2 == 'L')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 GeneralBjarngrimGUID;
|
||||
uint64 VolkhanGUID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define HALLS_OF_STONE_H_
|
||||
|
||||
#define HoSScriptName "instance_halls_of_stone"
|
||||
#define DataHeader "HOS"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "WorldSession.h"
|
||||
#include "halls_of_stone.h"
|
||||
#include <Player.h>
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
@@ -36,6 +36,7 @@ class instance_halls_of_stone : public InstanceMapScript
|
||||
{
|
||||
instance_halls_of_stone_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
@@ -203,49 +204,6 @@ class instance_halls_of_stone : public InstanceMapScript
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "H S " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'H' && dataHead2 == 'S')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 KrystallusGUID;
|
||||
uint64 MaidenOfGriefGUID;
|
||||
|
||||
@@ -123,6 +123,7 @@ class instance_ulduar : public InstanceMapScript
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
LoadDoorData(doorData);
|
||||
LoadMinionData(minionData);
|
||||
@@ -1033,84 +1034,50 @@ class instance_ulduar : public InstanceMapScript
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
void WriteSaveDataMore(std::ostringstream& data) override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "U U " << GetBossSaveData() << GetData(DATA_COLOSSUS) << ' ' << _algalonTimer << ' ' << (_algalonSummoned ? 1 : 0);
|
||||
data << GetData(DATA_COLOSSUS) << ' ' << _algalonTimer << ' ' << uint32(_algalonSummoned ? 1 : 0);
|
||||
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
saveStream << ' ' << (KeeperGUIDs[i] ? 1 : 0);
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
data << ' ' << uint32(KeeperGUIDs[i] ? 1 : 0);
|
||||
}
|
||||
|
||||
void Load(char const* strIn) override
|
||||
void ReadSaveDataMore(std::istringstream& data) override
|
||||
{
|
||||
if (!strIn)
|
||||
uint32 tempState;
|
||||
data >> tempState;
|
||||
if (tempState == IN_PROGRESS || tempState > SPECIAL)
|
||||
tempState = NOT_STARTED;
|
||||
SetData(DATA_COLOSSUS, tempState);
|
||||
|
||||
data >> _algalonTimer;
|
||||
data >> tempState;
|
||||
_algalonSummoned = tempState != 0;
|
||||
if (_algalonSummoned && GetBossState(BOSS_ALGALON) != DONE)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
_summonAlgalon = true;
|
||||
if (_algalonTimer && _algalonTimer <= 60)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000);
|
||||
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
|
||||
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, _algalonTimer);
|
||||
}
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(strIn);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(strIn);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'U' && dataHead2 == 'U')
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
uint32 tempState;
|
||||
loadStream >> tempState;
|
||||
if (tempState == IN_PROGRESS || tempState > SPECIAL)
|
||||
tempState = NOT_STARTED;
|
||||
SetData(DATA_COLOSSUS, tempState);
|
||||
|
||||
loadStream >> _algalonTimer;
|
||||
loadStream >> tempState;
|
||||
_algalonSummoned = tempState != 0;
|
||||
if (_algalonSummoned && GetBossState(BOSS_ALGALON) != DONE)
|
||||
{
|
||||
_summonAlgalon = true;
|
||||
if (_algalonTimer && _algalonTimer <= 60)
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000);
|
||||
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
|
||||
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, _algalonTimer);
|
||||
}
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
{
|
||||
loadStream >> tempState;
|
||||
_summonYSKeeper[i] = tempState != 0;
|
||||
}
|
||||
|
||||
if (GetBossState(BOSS_FREYA) == DONE && !_summonYSKeeper[0])
|
||||
_summonObservationRingKeeper[0] = true;
|
||||
if (GetBossState(BOSS_HODIR) == DONE && !_summonYSKeeper[1])
|
||||
_summonObservationRingKeeper[1] = true;
|
||||
if (GetBossState(BOSS_THORIM) == DONE && !_summonYSKeeper[2])
|
||||
_summonObservationRingKeeper[2] = true;
|
||||
if (GetBossState(BOSS_MIMIRON) == DONE && !_summonYSKeeper[3])
|
||||
_summonObservationRingKeeper[3] = true;
|
||||
data >> tempState;
|
||||
_summonYSKeeper[i] = tempState != 0;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
if (GetBossState(BOSS_FREYA) == DONE && !_summonYSKeeper[0])
|
||||
_summonObservationRingKeeper[0] = true;
|
||||
if (GetBossState(BOSS_HODIR) == DONE && !_summonYSKeeper[1])
|
||||
_summonObservationRingKeeper[1] = true;
|
||||
if (GetBossState(BOSS_THORIM) == DONE && !_summonYSKeeper[2])
|
||||
_summonObservationRingKeeper[2] = true;
|
||||
if (GetBossState(BOSS_MIMIRON) == DONE && !_summonYSKeeper[3])
|
||||
_summonObservationRingKeeper[3] = true;
|
||||
}
|
||||
|
||||
void Update(uint32 diff) override
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define DEF_ULDUAR_H
|
||||
|
||||
#define UlduarScriptName "instance_ulduar"
|
||||
#define DataHeader "UU"
|
||||
|
||||
extern Position const ObservationRingKeepersPos[4];
|
||||
extern Position const YSKeepersPos[4];
|
||||
|
||||
@@ -41,6 +41,7 @@ class instance_utgarde_keep : public InstanceMapScript
|
||||
{
|
||||
instance_utgarde_keep_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
LoadMinionData(minionData);
|
||||
@@ -191,53 +192,16 @@ class instance_utgarde_keep : public InstanceMapScript
|
||||
}
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
void WriteSaveDataMore(std::ostringstream& data) override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "U K " << GetBossSaveData();
|
||||
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
saveStream << Forges[i].Event << ' ';
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
data << Forges[i].Event << ' ';
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
void ReadSaveDataMore(std::istringstream& data) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'U' && dataHead2 == 'K')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
loadStream >> Forges[i].Event;
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
data >> Forges[i].Event;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define UTGARDE_KEEP_H_
|
||||
|
||||
#define UKScriptName "instance_utgarde_keep"
|
||||
#define DataHeader "UK"
|
||||
|
||||
uint32 const EncounterCount = 3;
|
||||
|
||||
|
||||
+1
-43
@@ -35,6 +35,7 @@ class instance_utgarde_pinnacle : public InstanceMapScript
|
||||
{
|
||||
instance_utgarde_pinnacle_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
@@ -181,49 +182,6 @@ class instance_utgarde_pinnacle : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
std::ostringstream saveStream;
|
||||
saveStream << "U P " << GetBossSaveData();
|
||||
|
||||
OUT_SAVE_INST_DATA_COMPLETE;
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(char const* str) override
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
OUT_LOAD_INST_DATA(str);
|
||||
|
||||
char dataHead1, dataHead2;
|
||||
|
||||
std::istringstream loadStream(str);
|
||||
loadStream >> dataHead1 >> dataHead2;
|
||||
|
||||
if (dataHead1 == 'U' && dataHead2 == 'P')
|
||||
{
|
||||
for (uint32 i = 0; i < EncounterCount; ++i)
|
||||
{
|
||||
uint32 tmpState;
|
||||
loadStream >> tmpState;
|
||||
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
|
||||
tmpState = NOT_STARTED;
|
||||
SetBossState(i, EncounterState(tmpState));
|
||||
}
|
||||
}
|
||||
else
|
||||
OUT_LOAD_INST_DATA_FAIL;
|
||||
|
||||
OUT_LOAD_INST_DATA_COMPLETE;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 SvalaSorrowgraveGUID;
|
||||
uint64 GortokPalehoofGUID;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define UTGARDE_PINNACLE_H_
|
||||
|
||||
#define UPScriptName "instance_utgarde_pinnacle"
|
||||
#define DataHeader "UP"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ class instance_vault_of_archavon : public InstanceMapScript
|
||||
{
|
||||
instance_vault_of_archavon_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(EncounterCount);
|
||||
|
||||
EmalonGUID = 0;
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef DEF_ARCHAVON_H
|
||||
#define DEF_ARCHAVON_H
|
||||
|
||||
#define DataHeader "VA"
|
||||
|
||||
uint32 const EncounterCount = 4;
|
||||
|
||||
enum Data
|
||||
|
||||
@@ -170,6 +170,7 @@ public:
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetHeaders(DataHeader);
|
||||
uiMoragg = 0;
|
||||
uiErekem = 0;
|
||||
uiIchoron = 0;
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef DEF_VIOLET_HOLD_H
|
||||
#define DEF_VIOLET_HOLD_H
|
||||
|
||||
#define DataHeader "VIO"
|
||||
|
||||
enum Data
|
||||
{
|
||||
DATA_1ST_BOSS_EVENT,
|
||||
|
||||
Reference in new issue
Block a user