diff --git a/WowPacketParser/SQL/Builders/HotfixBuilder.cs b/WowPacketParser/SQL/Builders/HotfixBuilder.cs index 7a6b7843f5..270c6e6158 100644 --- a/WowPacketParser/SQL/Builders/HotfixBuilder.cs +++ b/WowPacketParser/SQL/Builders/HotfixBuilder.cs @@ -3327,6 +3327,13 @@ public static string Hotfixes() sql += SQLUtil.Compare(Storage.CreatureFamilyHotfixes1100, hotfixes, StoreNameType.None); } + if (!Storage.CreatureLabelHotfixes1100.IsEmpty()) + { + var hotfixes = SQLDatabase.Get(Storage.CreatureLabelHotfixes1100, Settings.HotfixesDatabase); + + sql += SQLUtil.Compare(Storage.CreatureLabelHotfixes1100, hotfixes, StoreNameType.None); + } + if (!Storage.CreatureModelDataHotfixes1100.IsEmpty()) { var hotfixes = SQLDatabase.Get(Storage.CreatureModelDataHotfixes1100, Settings.HotfixesDatabase); @@ -3516,6 +3523,13 @@ public static string Hotfixes() sql += SQLUtil.Compare(Storage.GameobjectDisplayInfoHotfixes1100, hotfixes, StoreNameType.None); } + if (!Storage.GameobjectLabelHotfixes1100.IsEmpty()) + { + var hotfixes = SQLDatabase.Get(Storage.GameobjectLabelHotfixes1100, Settings.HotfixesDatabase); + + sql += SQLUtil.Compare(Storage.GameobjectLabelHotfixes1100, hotfixes, StoreNameType.None); + } + if (!Storage.GameobjectsHotfixes1100.IsEmpty()) { var hotfixes = SQLDatabase.Get(Storage.GameobjectsHotfixes1100, Settings.HotfixesDatabase); diff --git a/WowPacketParser/Store/Objects/Hotfixes/11_X_X/CreatureLabel.cs b/WowPacketParser/Store/Objects/Hotfixes/11_X_X/CreatureLabel.cs new file mode 100644 index 0000000000..3ab003c09f --- /dev/null +++ b/WowPacketParser/Store/Objects/Hotfixes/11_X_X/CreatureLabel.cs @@ -0,0 +1,22 @@ +using WowPacketParser.Misc; +using WowPacketParser.SQL; + +namespace WowPacketParser.Store.Objects +{ + [Hotfix] + [DBTableName("creature_label")] + public sealed record CreatureLabelHotfix1100 : IDataModel + { + [DBFieldName("ID", true)] + public uint? ID; + + [DBFieldName("LabelID")] + public int? LabelID; + + [DBFieldName("CreatureDifficultyID")] + public uint? CreatureDifficultyID; + + [DBFieldName("VerifiedBuild")] + public int? VerifiedBuild = ClientVersion.BuildInt; + } +} diff --git a/WowPacketParser/Store/Objects/Hotfixes/11_X_X/GameobjectLabel.cs b/WowPacketParser/Store/Objects/Hotfixes/11_X_X/GameobjectLabel.cs new file mode 100644 index 0000000000..64e66eab57 --- /dev/null +++ b/WowPacketParser/Store/Objects/Hotfixes/11_X_X/GameobjectLabel.cs @@ -0,0 +1,22 @@ +using WowPacketParser.Misc; +using WowPacketParser.SQL; + +namespace WowPacketParser.Store.Objects +{ + [Hotfix] + [DBTableName("gameobject_label")] + public sealed record GameobjectLabelHotfix1100 : IDataModel + { + [DBFieldName("ID", true)] + public uint? ID; + + [DBFieldName("LabelID")] + public int? LabelID; + + [DBFieldName("GameObjectID")] + public uint? GameObjectID; + + [DBFieldName("VerifiedBuild")] + public int? VerifiedBuild = ClientVersion.BuildInt; + } +} diff --git a/WowPacketParser/Store/Storage.cs b/WowPacketParser/Store/Storage.cs index 5bc3c0291c..f7a85f542a 100644 --- a/WowPacketParser/Store/Storage.cs +++ b/WowPacketParser/Store/Storage.cs @@ -633,6 +633,7 @@ public static class Storage public static readonly DataBag CreatureDisplayInfoHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag CreatureDisplayInfoExtraHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag CreatureFamilyHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); + public static readonly DataBag CreatureLabelHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag CreatureModelDataHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag CreatureTypeHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag CriteriaHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); @@ -660,6 +661,7 @@ public static class Storage public static readonly DataBag FriendshipReputationHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag GameobjectArtKitHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag GameobjectDisplayInfoHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); + public static readonly DataBag GameobjectLabelHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag GameobjectsHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag GarrAbilityHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); public static readonly DataBag GarrBuildingHotfixes1100 = new DataBag(new List { SQLOutput.hotfixes }); @@ -2613,6 +2615,7 @@ public static void ClearContainers() CreatureDisplayInfoHotfixes1100.Clear(); CreatureDisplayInfoExtraHotfixes1100.Clear(); CreatureFamilyHotfixes1100.Clear(); + CreatureLabelHotfixes1100.Clear(); CreatureModelDataHotfixes1100.Clear(); CreatureTypeHotfixes1100.Clear(); CriteriaHotfixes1100.Clear(); @@ -2640,6 +2643,7 @@ public static void ClearContainers() FriendshipReputationHotfixes1100.Clear(); GameobjectArtKitHotfixes1100.Clear(); GameobjectDisplayInfoHotfixes1100.Clear(); + GameobjectLabelHotfixes1100.Clear(); GameobjectsHotfixes1100.Clear(); GarrAbilityHotfixes1100.Clear(); GarrBuildingHotfixes1100.Clear(); diff --git a/WowPacketParserModule.V11_0_0_55666/Parsers/HotfixHandler.cs b/WowPacketParserModule.V11_0_0_55666/Parsers/HotfixHandler.cs index 39d0b1c06d..b081d615f0 100644 --- a/WowPacketParserModule.V11_0_0_55666/Parsers/HotfixHandler.cs +++ b/WowPacketParserModule.V11_0_0_55666/Parsers/HotfixHandler.cs @@ -1699,6 +1699,16 @@ public static void CreatureFamilyHandler1100(Packet packet, uint entry, params o } } + public static void CreatureLabelHandler1100(Packet packet, uint entry, params object[] indexes) + { + CreatureLabelHotfix1100 hotfix = new CreatureLabelHotfix1100(); + + hotfix.ID = entry; + hotfix.LabelID = packet.ReadInt32("LabelID", indexes); + hotfix.CreatureDifficultyID = packet.ReadUInt32("CreatureDifficultyID", indexes); + Storage.CreatureLabelHotfixes1100.Add(hotfix, packet.TimeSpan); + } + public static void CreatureModelDataHandler1100(Packet packet, uint entry, params object[] indexes) { CreatureModelDataHotfix1100 hotfix = new CreatureModelDataHotfix1100(); @@ -2350,6 +2360,16 @@ public static void GameobjectDisplayInfoHandler1100(Packet packet, uint entry, p Storage.GameobjectDisplayInfoHotfixes1100.Add(hotfix, packet.TimeSpan); } + public static void GameobjectLabelHandler1100(Packet packet, uint entry, params object[] indexes) + { + GameobjectLabelHotfix1100 hotfix = new GameobjectLabelHotfix1100(); + + hotfix.ID = entry; + hotfix.LabelID = packet.ReadInt32("LabelID", indexes); + hotfix.GameObjectID = packet.ReadUInt32("GameObjectID", indexes); + Storage.GameobjectLabelHotfixes1100.Add(hotfix, packet.TimeSpan); + } + public static void GameobjectsHandler1100(Packet packet, uint entry, params object[] indexes) { GameobjectsHotfix1100 hotfix = new GameobjectsHotfix1100(); @@ -7854,6 +7874,11 @@ static void ReadHotfixData(Packet packet, List records, params obj CreatureFamilyHandler1100(db2File, (uint)entry, count); break; } + case DB2Hash.CreatureLabel: + { + CreatureLabelHandler1100(db2File, (uint)entry, count); + break; + } case DB2Hash.CreatureModelData: { CreatureModelDataHandler1100(db2File, (uint)entry, count); @@ -7985,6 +8010,11 @@ static void ReadHotfixData(Packet packet, List records, params obj GameobjectDisplayInfoHandler1100(db2File, (uint)entry, count); break; } + case DB2Hash.GameobjectLabel: + { + GameobjectLabelHandler1100(db2File, (uint)entry, count); + break; + } case DB2Hash.Gameobjects: { GameobjectsHandler1100(db2File, (uint)entry, count);