Core/Instances: Delete InstanceSaveMgr and replace most of its uses with new InstanceLockMgr

Port From (https://github.com/TrinityCore/TrinityCore/commit/9b924522d0549dd67b10e2cbdfc20297dd21e182)
This commit is contained in:
hondacrx
2022-10-04 10:57:04 -04:00
parent 793cf91a24
commit 66c7047a29
27 changed files with 186 additions and 1545 deletions
+7 -11
View File
@@ -795,19 +795,15 @@ namespace Game.DungeonFinding
LFGDungeonData dungeon = GetLFGDungeon(dungeonId);
Cypher.Assert(dungeon != null);
Cypher.Assert(player);
InstanceBind playerBind = player.GetBoundInstance(dungeon.map, dungeon.difficulty);
MapDb2Entries entries = new(dungeon.map, dungeon.difficulty);
InstanceLock playerBind = Global.InstanceLockMgr.FindActiveInstanceLock(guid, entries);
if (playerBind != null)
{
InstanceSave playerSave = playerBind.save;
if (playerSave != null)
{
uint dungeonInstanceId = playerSave.GetInstanceId();
var itLockedDungeon = lockedDungeons.LookupByKey(dungeonId);
if (itLockedDungeon == 0 || itLockedDungeon == dungeonInstanceId)
eraseDungeon = false;
uint dungeonInstanceId = playerBind.GetInstanceId();
if (!lockedDungeons.TryGetValue(dungeonId, out uint lockedDungeon) || lockedDungeon == dungeonInstanceId)
eraseDungeon = false;
lockedDungeons[dungeonId] = dungeonInstanceId;
}
lockedDungeons[dungeonId] = dungeonInstanceId;
}
}
@@ -1625,7 +1621,7 @@ namespace Game.DungeonFinding
lockStatus = LfgLockStatusType.NotInSeason;
else if (Global.DisableMgr.IsDisabledFor(DisableType.LFGMap, dungeon.map, player))
lockStatus = LfgLockStatusType.RaidLocked;
else if (dungeon.difficulty > Difficulty.Normal && player.GetBoundInstance(dungeon.map, dungeon.difficulty) != null)
else if (dungeon.difficulty > Difficulty.Normal && Global.InstanceLockMgr.FindActiveInstanceLock(guid, new MapDb2Entries(dungeon.map, dungeon.difficulty)) != null)
lockStatus = LfgLockStatusType.RaidLocked;
else if (dungeon.seasonal && !IsSeasonActive(dungeon.id))
lockStatus = LfgLockStatusType.NotInSeason;