Skip to content

Commit

Permalink
Added 10.2.5 updatefields
Browse files Browse the repository at this point in the history
  • Loading branch information
Shauren committed Jan 22, 2024
1 parent ea55195 commit f5b7f29
Show file tree
Hide file tree
Showing 76 changed files with 7,175 additions and 56 deletions.
1 change: 1 addition & 0 deletions WowPacketParser.Proto/PacketStructures/structures.proto
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,7 @@ message PacketQueryCreatureResponse {
float hpMod = 13;
float manaMod = 14;
repeated uint32 questItems = 115;
repeated int32 questCurrencies = 122;
uint32 movementId = 16;
uint32 hpScalingExp = 17;
uint32 expansion = 18;
Expand Down
1 change: 1 addition & 0 deletions WowPacketParser/Enums/ClientVersionBuild.cs
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,7 @@ public enum ClientVersionBuild
V10_2_0_52808 = 52808,

V10_2_5_52902 = 52902,
V10_2_5_52968 = 52968,
V10_2_5_52983 = 52983,
V10_2_5_53007 = 53007,

Expand Down
1 change: 1 addition & 0 deletions WowPacketParser/Enums/Version/Opcodes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,7 @@ public static ClientVersionBuild GetOpcodeDefiningBuild(ClientVersionBuild build
case ClientVersionBuild.V10_2_0_52649:
case ClientVersionBuild.V10_2_0_52808:
case ClientVersionBuild.V10_2_5_52902:
case ClientVersionBuild.V10_2_5_52968:
case ClientVersionBuild.V10_2_5_52983:
case ClientVersionBuild.V10_2_5_53007:
return ClientVersionBuild.V10_2_0_52038;
Expand Down
7 changes: 7 additions & 0 deletions WowPacketParser/Enums/Version/UpdateFields.cs
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,13 @@ private static string GetUpdateFieldDictionaryBuildName(ClientVersionBuild build
{
return "V10_2_0_52038";
}
case ClientVersionBuild.V10_2_5_52902:
case ClientVersionBuild.V10_2_5_52968:
case ClientVersionBuild.V10_2_5_52983:
case ClientVersionBuild.V10_2_5_53007:
{
return "V10_2_5_52902";
}
case ClientVersionBuild.V1_13_2_31446:
case ClientVersionBuild.V1_13_2_31650:
case ClientVersionBuild.V1_13_2_31687:
Expand Down
4 changes: 3 additions & 1 deletion WowPacketParser/Misc/ClientVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,8 @@ public static class ClientVersion
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V10_2_0_52808, new DateTime(2024, 01, 10)),

new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V10_2_5_52902, new DateTime(2024, 01, 17)),
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V10_2_5_52983, new DateTime(2024, 01, 18)),
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V10_2_5_52968, new DateTime(2024, 01, 18)),
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V10_2_5_52983, new DateTime(2024, 01, 18, 02, 26, 01)),
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V10_2_5_53007, new DateTime(2024, 01, 20)),

// no classic info, pkt contain build in header
Expand Down Expand Up @@ -1027,6 +1028,7 @@ public static ClientVersionBuild GetVersionDefiningBuild(ClientVersionBuild buil
case ClientVersionBuild.V10_2_0_52649:
case ClientVersionBuild.V10_2_0_52808:
case ClientVersionBuild.V10_2_5_52902:
case ClientVersionBuild.V10_2_5_52968:
case ClientVersionBuild.V10_2_5_52983:
case ClientVersionBuild.V10_2_5_53007:
return ClientVersionBuild.V10_0_0_46181;
Expand Down
19 changes: 0 additions & 19 deletions WowPacketParser/SQL/Builders/UnitMisc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -297,25 +297,6 @@ public static string CreatureTemplateGossip()
return SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.CreatureTemplateGossips.OrderBy(x => x.Item1.CreatureID).ThenBy(y => y.Item1.MenuID) : Storage.CreatureTemplateGossips, templatesDb, StoreNameType.Unit);
}

[BuilderMethod]
public static string CreatureQuestCurrency()
{
if (Storage.CreatureQuestCurrencys.IsEmpty())
return string.Empty;

if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.creature_template))
return string.Empty;

var templatesDb = SQLDatabase.Get(Storage.CreatureQuestCurrencys);

return SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.CreatureQuestCurrencys.OrderBy(x => x.Item1.CreatureId).ThenBy(y => y.Item1.CurrencyId) : Storage.CreatureQuestCurrencys, templatesDb, x =>
{
string creatureName = StoreGetters.GetName(StoreNameType.Unit, (int)x.CreatureId, false);
string currencyName = StoreGetters.GetName(StoreNameType.Currency, (int)x.CurrencyId, false);
return $"{creatureName} - {currencyName}";
});
}

[BuilderMethod]
public static string NpcTrainer()
{
Expand Down
19 changes: 19 additions & 0 deletions WowPacketParser/SQL/Builders/WDBTemplates.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,25 @@ public static string CreatureTemplateQuestItem()
return SQLUtil.Compare(Storage.CreatureTemplateQuestItems, templatesDb, StoreNameType.Unit);
}

[BuilderMethod(true)]
public static string CreatureTemplateQuestCurrencies()
{
if (!Settings.SQLOutputFlag.HasAnyFlagBit(SQLOutput.creature_template))
return string.Empty;

if (Storage.CreatureTemplateQuestCurrencies.IsEmpty())
return string.Empty;

var templatesDb = SQLDatabase.Get(Storage.CreatureTemplateQuestCurrencies);

return SQLUtil.Compare(Settings.SQLOrderByKey ? Storage.CreatureTemplateQuestCurrencies.OrderBy(x => x.Item1.CreatureId).ThenBy(y => y.Item1.CurrencyId) : Storage.CreatureTemplateQuestCurrencies, templatesDb, x =>
{
string creatureName = StoreGetters.GetName(StoreNameType.Unit, (int)x.CreatureId, false);
string currencyName = StoreGetters.GetName(StoreNameType.Currency, (int)x.CurrencyId, false);
return $"{creatureName} - {currencyName}";
});
}

[BuilderMethod(true, Gameobjects = true)]
public static string GameObjectTemplate(Dictionary<WowGuid, GameObject> gameobjects)
{
Expand Down
19 changes: 0 additions & 19 deletions WowPacketParser/Store/Objects/CreatureQuestCurrency.cs

This file was deleted.

13 changes: 13 additions & 0 deletions WowPacketParser/Store/Objects/CreatureTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,19 @@ public sealed record CreatureTemplateQuestItem : IDataModel
public int? VerifiedBuild = ClientVersion.BuildInt;
}

[DBTableName("creature_quest_currency")]
public sealed record CreatureTemplateQuestCurrency : IDataModel
{
[DBFieldName("CreatureId", true)]
public uint? CreatureId;

[DBFieldName("CurrencyId", true)]
public int? CurrencyId;

[DBFieldName("VerifiedBuild")]
public int? VerifiedBuild = ClientVersion.BuildInt;
}

[DBTableName("creature_template")]
public sealed record CreatureTemplateClassic : IDataModel
{
Expand Down
4 changes: 2 additions & 2 deletions WowPacketParser/Store/Storage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ public static class Storage
public static readonly DataBag<CreatureTemplateClassic> CreatureTemplatesClassic = new DataBag<CreatureTemplateClassic>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureTemplateNonWDB> CreatureTemplatesNonWDB = new DataBag<CreatureTemplateNonWDB>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureTemplateQuestItem> CreatureTemplateQuestItems = new DataBag<CreatureTemplateQuestItem>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureTemplateQuestCurrency> CreatureTemplateQuestCurrencies = new DataBag<CreatureTemplateQuestCurrency>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureTemplateDifficulty> CreatureTemplateDifficulties = new DataBag<CreatureTemplateDifficulty>(new List<SQLOutput> { SQLOutput.creature_template_difficulty });
public static readonly DataBag<CreatureTemplateDifficultyWDB> CreatureTemplateDifficultiesWDB = new DataBag<CreatureTemplateDifficultyWDB>(new List<SQLOutput> { SQLOutput.creature_template_difficulty });
public static readonly DataBag<CreatureTemplateModel> CreatureTemplateModels = new DataBag<CreatureTemplateModel>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureTemplateSpell> CreatureTemplateSpells = new DataBag<CreatureTemplateSpell>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureQuestCurrency> CreatureQuestCurrencys = new DataBag<CreatureQuestCurrency>(new List<SQLOutput> { SQLOutput.creature_template });
public static readonly DataBag<CreatureQuestStarter> CreatureQuestStarters = new DataBag<CreatureQuestStarter>(new List<SQLOutput> { SQLOutput.creature_queststarter });
public static readonly DataBag<CreatureQuestEnder> CreatureQuestEnders = new DataBag<CreatureQuestEnder>(new List<SQLOutput> { SQLOutput.creature_questender });
public static readonly DataBag<CreatureTemplateGossip> CreatureTemplateGossips = new DataBag<CreatureTemplateGossip>(new List<SQLOutput> { SQLOutput.creature_template_gossip });
Expand Down Expand Up @@ -1161,12 +1161,12 @@ public static void ClearContainers()
CreatureTemplatesClassic.Clear();
CreatureTemplatesNonWDB.Clear();
CreatureTemplateQuestItems.Clear();
CreatureTemplateQuestCurrencies.Clear();
CreatureTemplateDifficulties.Clear();
CreatureTemplateDifficultiesWDB.Clear();
CreatureTemplateModels.Clear();
CreatureTemplateSpells.Clear();
CreatureTemplateGossips.Clear();
CreatureQuestCurrencys.Clear();

NpcTrainers.Clear();
NpcVendors.Clear();
Expand Down
33 changes: 33 additions & 0 deletions WowPacketParserModule.V10_0_0_46181/Parsers/TaxiHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using WowPacketParser.Enums;
using WowPacketParser.Misc;
using WowPacketParser.Parsing;
using CoreParsers = WowPacketParser.Parsing.Parsers;

namespace WowPacketParserModule.V10_0_0_46181.Parsers
{
public static class TaxiHandler
{
[Parser(Opcode.SMSG_SHOW_TAXI_NODES, ClientVersionBuild.V7_3_0_24920)]
public static void HandleShowTaxiNodes(Packet packet)
{
var hasWindowInfo = packet.ReadBit("HasWindowInfo");
var canLandNodesCount = packet.ReadUInt32();
var canUseNodesCount = packet.ReadUInt32();

if (hasWindowInfo)
{
packet.ReadPackedGuid128("UnitGUID");
packet.ReadUInt32("CurrentNode");
}

for (var i = 0u; i < canLandNodesCount; ++i)
packet.ReadUInt64("CanLandNodes", i);

for (var i = 0u; i < canUseNodesCount; ++i)
packet.ReadUInt64("CanUseNodes", i);

CoreParsers.NpcHandler.LastGossipOption.Reset();
CoreParsers.NpcHandler.TempGossipOptionPOI.Reset();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3309,20 +3309,17 @@ public static IPersonalCraftingOrderCount ReadUpdatePersonalCraftingOrderCount(P
var data = new PersonalCraftingOrderCount();
packet.ResetBitReader();
var rawChangesMask = new int[1];
rawChangesMask[0] = (int)packet.ReadBits(3);
rawChangesMask[0] = (int)packet.ReadBits(2);
var changesMask = new BitArray(rawChangesMask);

packet.ResetBitReader();
if (changesMask[0])
{
if (changesMask[1])
{
data.ProfessionID = packet.ReadInt32("ProfessionID", indexes);
}
if (changesMask[2])
{
data.Count = packet.ReadUInt32("Count", indexes);
}
data.ProfessionID = packet.ReadInt32("ProfessionID", indexes);
}
if (changesMask[1])
{
data.Count = packet.ReadUInt32("Count", indexes);
}
return data;
}
Expand Down
Loading

0 comments on commit f5b7f29

Please sign in to comment.