aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances/InstanceScript.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-01-02 14:19:35 +0100
committerShauren <shauren.trinity@gmail.com>2022-10-04 00:19:38 +0200
commit9b924522d0549dd67b10e2cbdfc20297dd21e182 (patch)
treef0fcdf96902b7c497c1bc65db83621a8dfadf43a /src/server/game/Instances/InstanceScript.cpp
parenta131542855d23022714a97640be1c8d68a741c31 (diff)
Core/Instances: Delete InstanceSaveMgr and replace most of its uses with new InstanceLockMgr
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r--src/server/game/Instances/InstanceScript.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 358ce8d60c0..159eb82b89e 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -451,7 +451,7 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
bossInfo->state = state;
SaveToDB();
- if (state == DONE)
+ if (state == DONE && dungeonEncounter)
instance->UpdateInstanceLock(dungeonEncounter, { id, state });
}
@@ -779,11 +779,20 @@ bool InstanceScript::CheckAchievementCriteriaMeet(uint32 criteria_id, Player con
return false;
}
+bool InstanceScript::IsEncounterCompleted(uint32 dungeonEncounterId) const
+{
+ for (std::size_t i = 0; i < bosses.size(); ++i)
+ for (std::size_t j = 0; j < bosses[i].DungeonEncounters.size(); ++j)
+ if (bosses[i].DungeonEncounters[j] && bosses[i].DungeonEncounters[j]->ID == dungeonEncounterId)
+ return bosses[i].state == DONE;
+
+ return false;
+}
+
void InstanceScript::SetEntranceLocation(uint32 worldSafeLocationId)
{
_entranceId = worldSafeLocationId;
- if (_temporaryEntranceId)
- _temporaryEntranceId = 0;
+ _temporaryEntranceId = 0;
}
void InstanceScript::SendEncounterUnit(uint32 type, Unit* unit /*= nullptr*/, uint8 priority)