diff options
| author | Shauren <shauren.trinity@gmail.com> | 2018-09-15 17:55:26 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2018-09-15 17:55:26 +0200 |
| commit | 738f37d3cf45d4e10eda9d44a4cb17079b7bbc1b (patch) | |
| tree | 9db45160ed8a0c68090dec2aebb9b73c9f2ea335 /src/server/game/Entities/Creature | |
| parent | 0f3156d324ff8134171bada01b40f5c23f5c43cc (diff) | |
Core/Maps: Replaced spawnmask with difficulty list
Diffstat (limited to 'src/server/game/Entities/Creature')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/CreatureData.h | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/TemporarySummon.h | 2 |
4 files changed, 9 insertions, 9 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 105a780beca..8f2c6980762 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -307,7 +307,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/) // get difficulty 1 mode entry CreatureTemplate const* cinfo = nullptr; - DifficultyEntry const* difficultyEntry = sDifficultyStore.LookupEntry(GetMap()->GetSpawnMode()); + DifficultyEntry const* difficultyEntry = sDifficultyStore.LookupEntry(GetMap()->GetDifficultyID()); while (!cinfo && difficultyEntry) { int32 idx = CreatureTemplate::DifficultyIDToDifficultyEntryIndex(difficultyEntry->ID); @@ -1103,10 +1103,10 @@ void Creature::SaveToDB() } uint32 mapId = GetTransport() ? GetTransport()->GetGOInfo()->moTransport.SpawnMap : GetMapId(); - SaveToDB(mapId, data->spawnMask); + SaveToDB(mapId, data->spawnDifficulties); } -void Creature::SaveToDB(uint32 mapid, uint64 spawnMask) +void Creature::SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDifficulties) { // update in loaded data if (!m_spawnId) @@ -1174,7 +1174,7 @@ void Creature::SaveToDB(uint32 mapid, uint64 spawnMask) // prevent add data integrity problems data.movementType = !m_respawnradius && GetDefaultMovementType() == RANDOM_MOTION_TYPE ? IDLE_MOTION_TYPE : GetDefaultMovementType(); - data.spawnMask = spawnMask; + data.spawnDifficulties = spawnDifficulties; data.npcflag = npcflag; data.unit_flags = unitFlags; data.unit_flags2 = unitFlags2; @@ -1197,7 +1197,7 @@ void Creature::SaveToDB(uint32 mapid, uint64 spawnMask) stmt->setUInt64(index++, m_spawnId); stmt->setUInt32(index++, GetEntry()); stmt->setUInt16(index++, uint16(mapid)); - stmt->setUInt64(index++, spawnMask); + stmt->setString(index++, StringJoin(data.spawnDifficulties, ",")); stmt->setUInt32(index++, data.phaseId); stmt->setUInt32(index++, data.phaseGroup); stmt->setUInt32(index++, displayId); diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 0470a4cc41f..d87db9be2ca 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -187,7 +187,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma public: void SaveToDB(); // overriden in Pet - virtual void SaveToDB(uint32 mapid, uint64 spawnMask); + virtual void SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDifficulties); virtual void DeleteFromDB(); // overriden in Pet Loot loot; diff --git a/src/server/game/Entities/Creature/CreatureData.h b/src/server/game/Entities/Creature/CreatureData.h index e1d0fea528e..45a13c6f603 100644 --- a/src/server/game/Entities/Creature/CreatureData.h +++ b/src/server/game/Entities/Creature/CreatureData.h @@ -500,7 +500,7 @@ struct CreatureData CreatureData() : id(0), mapid(0), displayid(0), equipmentId(0), posX(0.0f), posY(0.0f), posZ(0.0f), orientation(0.0f), spawntimesecs(0), spawndist(0.0f), currentwaypoint(0), curhealth(0), curmana(0), movementType(0), - spawnMask(0), npcflag(0), unit_flags(0), unit_flags2(0), unit_flags3(0), dynamicflags(0), + spawnDifficulties(), npcflag(0), unit_flags(0), unit_flags2(0), unit_flags3(0), dynamicflags(0), phaseUseFlags(0), phaseId(0), phaseGroup(0), terrainSwapMap(-1), ScriptId(0), dbData(true) { } uint32 id; // entry in creature_template uint16 mapid; @@ -516,7 +516,7 @@ struct CreatureData uint32 curhealth; uint32 curmana; uint8 movementType; - uint64 spawnMask; + std::vector<Difficulty> spawnDifficulties; uint64 npcflag; uint32 unit_flags; // enum UnitFlags mask values uint32 unit_flags2; // enum UnitFlags2 mask values diff --git a/src/server/game/Entities/Creature/TemporarySummon.h b/src/server/game/Entities/Creature/TemporarySummon.h index 785b848529b..f4a05581ea5 100644 --- a/src/server/game/Entities/Creature/TemporarySummon.h +++ b/src/server/game/Entities/Creature/TemporarySummon.h @@ -53,7 +53,7 @@ class TC_GAME_API TempSummon : public Creature virtual void UnSummon(uint32 msTime = 0); void RemoveFromWorld() override; void SetTempSummonType(TempSummonType type); - void SaveToDB(uint32 /*mapid*/, uint64 /*spawnMask*/) override { } + void SaveToDB(uint32 /*mapid*/, std::vector<Difficulty> const& /*spawnDifficulties*/) override { } Unit* GetSummoner() const; Creature* GetSummonerCreatureBase() const; ObjectGuid GetSummonerGUID() const { return m_summonerGUID; } |
