Core/Spawns: Added startup error for incorrect map assignments in instance_spawn_groups

Port From (https://github.com/TrinityCore/TrinityCore/commit/6ff3d888688fd382d317de0c2dbf26af6a6e7da5)
This commit is contained in:
hondacrx
2022-10-01 16:54:27 -04:00
parent 95842900a7
commit 906e885631
2 changed files with 10 additions and 5 deletions
+7 -2
View File
@@ -5699,9 +5699,7 @@ namespace Game
uint count = 0; uint count = 0;
do do
{ {
ushort instanceMapId = result.Read<ushort>(0);
uint spawnGroupId = result.Read<uint>(3); uint spawnGroupId = result.Read<uint>(3);
var spawnGroupTemplate = _spawnGroupDataStorage.LookupByKey(spawnGroupId); var spawnGroupTemplate = _spawnGroupDataStorage.LookupByKey(spawnGroupId);
if (spawnGroupTemplate == null || spawnGroupTemplate.flags.HasAnyFlag(SpawnGroupFlags.System)) if (spawnGroupTemplate == null || spawnGroupTemplate.flags.HasAnyFlag(SpawnGroupFlags.System))
{ {
@@ -5709,6 +5707,13 @@ namespace Game
continue; continue;
} }
ushort instanceMapId = result.Read<ushort>(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(); InstanceSpawnGroupInfo info = new();
info.SpawnGroupId = spawnGroupId; info.SpawnGroupId = spawnGroupId;
info.BossStateId = result.Read<byte>(1); info.BossStateId = result.Read<byte>(1);
+3 -3
View File
@@ -631,9 +631,6 @@ namespace Game
Log.outInfo(LogFilter.ServerLoading, "Loading Spawn Group Templates..."); Log.outInfo(LogFilter.ServerLoading, "Loading Spawn Group Templates...");
Global.ObjectMgr.LoadSpawnGroupTemplates(); Global.ObjectMgr.LoadSpawnGroupTemplates();
Log.outInfo(LogFilter.ServerLoading, "Loading instance spawn groups...");
Global.ObjectMgr.LoadInstanceSpawnGroups();
Log.outInfo(LogFilter.ServerLoading, "Loading Creature Data..."); Log.outInfo(LogFilter.ServerLoading, "Loading Creature Data...");
Global.ObjectMgr.LoadCreatures(); Global.ObjectMgr.LoadCreatures();
@@ -658,6 +655,9 @@ namespace Game
Log.outInfo(LogFilter.ServerLoading, "Loading Spawn Group Data..."); Log.outInfo(LogFilter.ServerLoading, "Loading Spawn Group Data...");
Global.ObjectMgr.LoadSpawnGroups(); Global.ObjectMgr.LoadSpawnGroups();
Log.outInfo(LogFilter.ServerLoading, "Loading instance spawn groups...");
Global.ObjectMgr.LoadInstanceSpawnGroups();
Log.outInfo(LogFilter.ServerLoading, "Loading GameObject Addon Data..."); Log.outInfo(LogFilter.ServerLoading, "Loading GameObject Addon Data...");
Global.ObjectMgr.LoadGameObjectAddons(); // must be after LoadGameObjects() Global.ObjectMgr.LoadGameObjectAddons(); // must be after LoadGameObjects()