From 8701a862cc88a3d681328631345e0e5a6c0a777a Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 1 Dec 2021 11:38:49 -0500 Subject: [PATCH] Core/Database: Delete gameobject_addon data when deleting a GameObject from the database Port From (https://github.com/TrinityCore/TrinityCore/commit/b02143118f830691412bbc7649c1d0c9ec32f3a9) --- Source/Framework/Database/Databases/WorldDatabase.cs | 2 ++ Source/Game/Entities/GameObject/GameObject.cs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/Source/Framework/Database/Databases/WorldDatabase.cs b/Source/Framework/Database/Databases/WorldDatabase.cs index 4625a69df..f49e2d365 100644 --- a/Source/Framework/Database/Databases/WorldDatabase.cs +++ b/Source/Framework/Database/Databases/WorldDatabase.cs @@ -91,6 +91,7 @@ namespace Framework.Database PrepareStatement(WorldStatements.UPD_CREATURE_ZONE_AREA_DATA, "UPDATE creature SET zoneId = ?, areaId = ? WHERE guid = ?"); PrepareStatement(WorldStatements.UPD_GAMEOBJECT_ZONE_AREA_DATA, "UPDATE gameobject SET zoneId = ?, areaId = ? WHERE guid = ?"); PrepareStatement(WorldStatements.DEL_SPAWNGROUP_MEMBER, "DELETE FROM spawn_group WHERE spawnType = ? AND spawnId = ?"); + PrepareStatement(WorldStatements.DEL_GAMEOBJECT_ADDON, "DELETE FROM gameobject_addon WHERE guid = ?"); PrepareStatement(WorldStatements.SEL_GUILD_REWARDS_REQ_ACHIEVEMENTS, "SELECT AchievementRequired FROM guild_rewards_req_achievements WHERE ItemID = ?"); } } @@ -168,6 +169,7 @@ namespace Framework.Database UPD_CREATURE_ZONE_AREA_DATA, UPD_GAMEOBJECT_ZONE_AREA_DATA, DEL_SPAWNGROUP_MEMBER, + DEL_GAMEOBJECT_ADDON, SEL_GUILD_REWARDS_REQ_ACHIEVEMENTS, MAX_WORLDDATABASE_STATEMENTS diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index 3078eb6d9..3e61c5d7b 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -1161,6 +1161,10 @@ namespace Game.Entities stmt.AddValue(1, (uint)CreatureLinkedRespawnType.CreatureToGO); trans.Append(stmt); + stmt = DB.World.GetPreparedStatement(WorldStatements.DEL_GAMEOBJECT_ADDON); + stmt.AddValue(0, m_spawnId); + trans.Append(stmt); + DB.World.CommitTransaction(trans); }