refactor(Core/InstanceScript): refactored load and save methods (#14977)

Co-authored-by: joschiwald <736792+joschiwald@users.noreply.github.com>
This commit is contained in:
Skjalf
2023-02-12 15:53:48 -03:00
committed by GitHub
parent 5cc73e1963
commit 0dbb8c814c
126 changed files with 677 additions and 2004 deletions

View File

@@ -148,14 +148,14 @@ public:
//On creation, NOT load.
virtual void Initialize() {}
//On load
virtual void Load(char const* data) { LoadBossState(data); }
// On load
virtual void Load(char const* data);
//Called when creature is Looted
virtual void CreatureLooted(Creature* /*creature*/, LootType) {}
//When save is needed, this function generates the data
virtual std::string GetSaveData() { return GetBossSaveData(); }
// When save is needed, this function generates the data
virtual std::string GetSaveData();
void SaveToDB();
@@ -255,6 +255,7 @@ public:
// Allows to perform particular actions
virtual void DoAction(int32 /*action*/) {}
protected:
void SetHeaders(std::string const& dataHeaders);
void SetBossNumber(uint32 number) { bosses.resize(number); }
void LoadBossBoundaries(BossBoundaryData const& data);
void LoadDoorData(DoorData const* data);
@@ -271,11 +272,18 @@ protected:
void UpdateDoorState(GameObject* door);
void UpdateMinionState(Creature* minion, EncounterState state);
void LoadBossState(char const* data);
std::string GetBossSaveData();
// Instance Load and Save
bool ReadSaveDataHeaders(std::istringstream& data);
void ReadSaveDataBossStates(std::istringstream& data);
virtual void ReadSaveDataMore(std::istringstream& /*data*/) { }
void WriteSaveDataHeaders(std::ostringstream& data);
void WriteSaveDataBossStates(std::ostringstream& data);
virtual void WriteSaveDataMore(std::ostringstream& /*data*/) { }
private:
static void LoadObjectData(ObjectData const* creatureData, ObjectInfoMap& objectInfo);
std::vector<char> headers;
std::vector<BossInfo> bosses;
DoorInfoMap doors;
MinionInfoMap minions;