aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-09-19 00:18:50 +0200
committerShauren <shauren.trinity@gmail.com>2023-09-19 00:18:50 +0200
commit1e29c0066efe1157a10e74efef4554de26a984de (patch)
treec437df3b72e7c7211038f3f6db724031e3d6763b
parent4bf4ee57ff5f4c779f671470bd5fbd498c0cc04a (diff)
Core/Instances: Removed deprecated field from InstanceScript
-rw-r--r--src/server/game/Instances/InstanceScript.cpp20
-rw-r--r--src/server/game/Instances/InstanceScript.h7
-rw-r--r--src/server/game/Maps/Map.cpp1
3 files changed, 9 insertions, 19 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index cea02363830..080bb7aa86f 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -64,7 +64,7 @@ DungeonEncounterEntry const* BossInfo::GetDungeonEncounterForDifficulty(Difficul
return itr != DungeonEncounters.end() ? *itr : nullptr;
}
-InstanceScript::InstanceScript(InstanceMap* map) : instance(map), completedEncounters(0), _instanceSpawnGroups(sObjectMgr->GetInstanceSpawnGroupsForMap(map->GetId())),
+InstanceScript::InstanceScript(InstanceMap* map) : instance(map), _instanceSpawnGroups(sObjectMgr->GetInstanceSpawnGroupsForMap(map->GetId())),
_entranceId(0), _temporaryEntranceId(0), _combatResurrectionTimer(0), _combatResurrectionCharges(0), _combatResurrectionTimerStarted(false)
{
#ifdef TRINITY_API_USE_DYNAMIC_LINKING
@@ -433,6 +433,8 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
{
DoUpdateCriteria(CriteriaType::DefeatDungeonEncounter, dungeonEncounter->ID);
SendBossKillCredit(dungeonEncounter->ID);
+ if (dungeonEncounter->CompleteWorldStateID)
+ DoUpdateWorldState(dungeonEncounter->CompleteWorldStateID, 1);
}
instance->DoOnPlayers([](Player* player)
@@ -494,9 +496,15 @@ void InstanceScript::Load(char const* data)
// in loot-based lockouts instance can be loaded with later boss marked as killed without preceding bosses
// but we still need to have them alive
for (uint32 i = 0; i < bosses.size(); ++i)
+ {
if (bosses[i].state == DONE && !CheckRequiredBosses(i))
bosses[i].state = NOT_STARTED;
+ if (DungeonEncounterEntry const* dungeonEncounter = bosses[i].GetDungeonEncounterForDifficulty(instance->GetDifficultyID()))
+ if (dungeonEncounter->CompleteWorldStateID)
+ DoUpdateWorldState(dungeonEncounter->CompleteWorldStateID, bosses[i].state == DONE ? 1 : 0);
+ }
+
UpdateSpawnGroups();
AfterDataLoad();
}
@@ -905,16 +913,6 @@ void InstanceScript::UpdateEncounterStateForSpellCast(uint32 spellId, Unit* sour
UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, spellId, source);
}
-void InstanceScript::SetCompletedEncountersMask(uint32 newMask)
-{
- completedEncounters = newMask;
-
- if (DungeonEncounterList const* encounters = sObjectMgr->GetDungeonEncounterList(instance->GetId(), instance->GetDifficultyID()))
- for (DungeonEncounter const& encounter : *encounters)
- if (completedEncounters & (1 << encounter.dbcEntry->Bit) && encounter.dbcEntry->CompleteWorldStateID)
- DoUpdateWorldState(encounter.dbcEntry->CompleteWorldStateID, 1);
-}
-
void InstanceScript::UpdatePhasing()
{
instance->DoOnPlayers([](Player const* player)
diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h
index cff0af222fc..414f53b04d9 100644
--- a/src/server/game/Instances/InstanceScript.h
+++ b/src/server/game/Instances/InstanceScript.h
@@ -288,12 +288,6 @@ class TC_GAME_API InstanceScript : public ZoneScript
void UpdateEncounterStateForKilledCreature(uint32 creatureId, Unit* source);
void UpdateEncounterStateForSpellCast(uint32 spellId, Unit* source);
- // Used only during loading
- void SetCompletedEncountersMask(uint32 newMask);
-
- // Returns completed encounters mask for packets
- uint32 GetCompletedEncounterMask() const { return completedEncounters; }
-
bool IsEncounterCompleted(uint32 dungeonEncounterId) const;
bool IsEncounterCompletedInMaskByBossId(uint32 completedEncountersMask, uint32 bossId) const;
@@ -381,7 +375,6 @@ class TC_GAME_API InstanceScript : public ZoneScript
ObjectInfoMap _creatureInfo;
ObjectInfoMap _gameObjectInfo;
ObjectGuidMap _objectGuids;
- uint32 completedEncounters; // DEPRECATED, REMOVE
std::vector<InstanceSpawnGroupInfo> const* const _instanceSpawnGroups;
std::unordered_set<uint32> _activatedAreaTriggers;
uint32 _entranceId;
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index fd426253cc6..14ee54b2c38 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -2965,7 +2965,6 @@ void InstanceMap::CreateInstanceData()
}
InstanceLockData const* lockData = i_instanceLock->GetInstanceInitializationData();
- i_data->SetCompletedEncountersMask(lockData->CompletedEncountersMask);
i_data->SetEntranceLocation(lockData->EntranceWorldSafeLocId);
if (!lockData->Data.empty())
{