From 906e885631a7cbf40c1e8788fbc6c1506006df6c Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sat, 1 Oct 2022 16:54:27 -0400 Subject: [PATCH] Core/Spawns: Added startup error for incorrect map assignments in instance_spawn_groups Port From (https://github.com/TrinityCore/TrinityCore/commit/6ff3d888688fd382d317de0c2dbf26af6a6e7da5) --- Source/Game/Globals/ObjectManager.cs | 9 +++++++-- Source/Game/World/WorldManager.cs | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/Game/Globals/ObjectManager.cs b/Source/Game/Globals/ObjectManager.cs index d5755a232..a2b2e7063 100644 --- a/Source/Game/Globals/ObjectManager.cs +++ b/Source/Game/Globals/ObjectManager.cs @@ -5699,9 +5699,7 @@ namespace Game uint count = 0; do { - ushort instanceMapId = result.Read(0); uint spawnGroupId = result.Read(3); - var spawnGroupTemplate = _spawnGroupDataStorage.LookupByKey(spawnGroupId); if (spawnGroupTemplate == null || spawnGroupTemplate.flags.HasAnyFlag(SpawnGroupFlags.System)) { @@ -5709,6 +5707,13 @@ namespace Game continue; } + ushort instanceMapId = result.Read(0); + if (spawnGroupTemplate.mapId != instanceMapId) + { + Log.outError(LogFilter.Sql, $"Instance spawn group {spawnGroupId} specified for instance {instanceMapId} has spawns on a different map {spawnGroupTemplate.mapId}. Skipped."); + continue; + } + InstanceSpawnGroupInfo info = new(); info.SpawnGroupId = spawnGroupId; info.BossStateId = result.Read(1); diff --git a/Source/Game/World/WorldManager.cs b/Source/Game/World/WorldManager.cs index ea1545b1c..1e4b877ef 100644 --- a/Source/Game/World/WorldManager.cs +++ b/Source/Game/World/WorldManager.cs @@ -631,9 +631,6 @@ namespace Game Log.outInfo(LogFilter.ServerLoading, "Loading Spawn Group Templates..."); Global.ObjectMgr.LoadSpawnGroupTemplates(); - Log.outInfo(LogFilter.ServerLoading, "Loading instance spawn groups..."); - Global.ObjectMgr.LoadInstanceSpawnGroups(); - Log.outInfo(LogFilter.ServerLoading, "Loading Creature Data..."); Global.ObjectMgr.LoadCreatures(); @@ -658,6 +655,9 @@ namespace Game Log.outInfo(LogFilter.ServerLoading, "Loading Spawn Group Data..."); Global.ObjectMgr.LoadSpawnGroups(); + Log.outInfo(LogFilter.ServerLoading, "Loading instance spawn groups..."); + Global.ObjectMgr.LoadInstanceSpawnGroups(); + Log.outInfo(LogFilter.ServerLoading, "Loading GameObject Addon Data..."); Global.ObjectMgr.LoadGameObjectAddons(); // must be after LoadGameObjects()