Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions WowPacketParser/Enums/DismountResult.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace WowPacketParser.Enums
{
public enum DismountResult
{
NoPet = 0,
NotMounted = 1,
NotYourPet = 2,
Ok = 3, // ?
}
}
9 changes: 9 additions & 0 deletions WowPacketParser/Enums/GMTicketResponse.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace WowPacketParser.Enums
{
public enum GMTicketResponse
{
Failure = 1,
Success = 2,
Deleted = 9,
}
}
8 changes: 8 additions & 0 deletions WowPacketParser/Enums/GMTicketStatus.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace WowPacketParser.Enums
{
public enum GMTicketStatus
{
HasText = 6,
NoText = 10,
}
}
17 changes: 17 additions & 0 deletions WowPacketParser/Enums/MountResult.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace WowPacketParser.Enums
{
public enum MountResult
{
InvalidMountee = 0,
TooFarAway = 1,
AlreadyMounted = 2,
NotMountable = 3,
NotYourPet = 4,
Other = 5,
Looting = 6,
RaceCantMount = 7,
Shapeshifted = 8,
ForcedDismount = 9,
Ok = 10, // ?
}
}
28 changes: 14 additions & 14 deletions WowPacketParser/Parsing/Parsers/BattlegroundHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,13 @@ public static void HandleBattlefieldListClient(Packet packet)
[Parser(Opcode.SMSG_BATTLEFIELD_LIST, ClientVersionBuild.V4_3_4_15595)]
public static void HandleBattlefieldListServer434(Packet packet)
{
packet.ReadInt32("Unk Int32"); // Winner Conquest Reward or Random Winner Conquest Reward
packet.ReadInt32("Unk Int32"); // Winner Conquest Reward or Random Winner Conquest Reward
packet.ReadInt32("Unk Int32"); // Loser Honor Reward or Random Loser Honor Reward
packet.ReadInt32("Win Conquest Reward"); // Winner Conquest Reward or Random Winner Conquest Reward
packet.ReadInt32("Random Win Conquest Reward"); // Winner Conquest Reward or Random Winner Conquest Reward
packet.ReadInt32("Random Loss Conquest Reward"); // Loser Honor Reward or Random Loser Honor Reward
packet.ReadEntryWithName<Int32>(StoreNameType.Battleground, "BG type");
packet.ReadInt32("Unk Int32"); // Loser Honor Reward or Random Loser Honor Reward
packet.ReadInt32("Unk Int32"); // Winner Honor Reward or Random Winner Honor Reward
packet.ReadInt32("Unk Int32"); // Winner Honor Reward or Random Winner Honor Reward
packet.ReadInt32("Loss Conquest Reward"); // Loser Honor Reward or Random Loser Honor Reward
packet.ReadInt32("Win Conquest Reward"); // Winner Honor Reward or Random Winner Honor Reward
packet.ReadInt32("Random Win Conquest Reward"); // Winner Honor Reward or Random Winner Honor Reward
packet.ReadByte("Max level");
packet.ReadByte("Min level");

Expand Down Expand Up @@ -533,7 +533,7 @@ public static void HandleRGroupJoinedBattleground434(Packet packet)
guid1[4] = packet.ReadBit();//36

guid1[5] = packet.ReadBit();//37
packet.ReadBit("Unk Bit");//72
packet.ReadBit("Is Rated");//72
packet.ReadBit("Waiting On Other Activity");//28
guid2[1] = packet.ReadBit();//57

Expand Down Expand Up @@ -838,7 +838,7 @@ public static void HandlePvPLogData434(Packet packet)
{
guids[i] = new byte[8];

packet.ReadBit("Unk Bit 1", i); // 13
packet.ReadBit("Unk Bit 1", i); // 13 true in wsg and arena
unkBits2[i] = packet.ReadBit("Unk Bit 2", i); // 40

guids[i][2] = packet.ReadBit();
Expand All @@ -854,7 +854,7 @@ public static void HandlePvPLogData434(Packet packet)
guids[i][1] = packet.ReadBit();
guids[i][6] = packet.ReadBit();

packet.ReadBit("Unk Bit 7", i); // 12
packet.ReadBit("Reversed team", i); // 12

guids[i][7] = packet.ReadBit();

Expand Down Expand Up @@ -892,7 +892,7 @@ public static void HandlePvPLogData434(Packet packet)
packet.ReadInt32("Killing Blows", i);

if (unkBits5[i])
packet.ReadInt32("Unk Int32 13", i);
packet.ReadInt32("Rating Change", i);

packet.ReadXORByte(guids[i], 5);

Expand Down Expand Up @@ -924,16 +924,16 @@ public static void HandlePvPLogData434(Packet packet)

if (arenaStrings)
{
packet.ReadWoWString("Unk Name 1", name1Length);
packet.ReadWoWString("Unk Name 2", name2Length);
packet.ReadWoWString("Team 2 Name", name1Length);
packet.ReadWoWString("Team 1 Name", name2Length);
}

packet.ReadByte("Unk Byte 1");
packet.ReadByte("Unk Byte 1"); // Team Size

if (finished)
packet.ReadByte("Winner");

packet.ReadByte("Unk Byte 2");
packet.ReadByte("Unk Byte 2"); // Team size
}

[Parser(Opcode.SMSG_BATTLEFIELD_MGR_STATE_CHANGE, ClientVersionBuild.V4_3_4_15595)]
Expand Down
14 changes: 7 additions & 7 deletions WowPacketParser/Parsing/Parsers/GuildHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -370,9 +370,9 @@ public static void HandleGuildRoster434(Packet packet)

packet.ReadWoWString("Guild Info", infoLength);
packet.ReadWoWString("MOTD", motdLength);
packet.ReadUInt32("Unk Uint32 1");
packet.ReadUInt32("Unk Uint32 2");
packet.ReadUInt32("Unk Uint32 3");
packet.ReadUInt32("Accounts In Guild");
packet.ReadUInt32("Weekly Reputation Cap");
packet.ReadPackedTime("CreationTime");
packet.ReadUInt32("Unk Uint32 4");
}

Expand Down Expand Up @@ -488,7 +488,7 @@ public static void HandleGuildRank(Packet packet)
public static void HandleGuildSetGuildMaster(Packet packet)
{
var nameLength = packet.ReadBits(7);
packet.ReadBit("Unk bit"); // Most probably related to guild finder inactivity
packet.ReadBit("Is Dethroned"); // Most probably related to guild finder inactivity
packet.ReadWoWString("New GuildMaster name", nameLength);
}

Expand Down Expand Up @@ -850,7 +850,7 @@ public static void HandleGuildInvite434(Packet packet)
var oldGuildGuid = new byte[8];

packet.ReadInt32("Guild Level");
packet.ReadInt32("Emblem Style"); // unconfirmed
packet.ReadInt32("Border Style");
packet.ReadInt32("Border Color");
packet.ReadInt32("Emblem Texture");
packet.ReadInt32("Emblem Background Color");
Expand Down Expand Up @@ -1899,14 +1899,14 @@ public static void HandlePetitionError(Packet packet)
packet.ReadGuid("Petition GUID");
}

[Parser(Opcode.SMSG_GUILD_CHALLENGE_UPDATED)]
[Parser(Opcode.SMSG_GUILD_CHALLENGE_UPDATED, ClientVersionBuild.V4_3_4_15595)]
public static void HandleGuildChallengeUpdated(Packet packet)
{
for (int i = 0; i < 4; ++i)
packet.ReadInt32("Guild Experience Reward", i);

for (int i = 0; i < 4; ++i)
packet.ReadInt32("Gold Reward Unk 1", i);
packet.ReadInt32("Completion Gold Reward", i);

for (int i = 0; i < 4; ++i)
packet.ReadInt32("Total Count", i);
Expand Down
4 changes: 2 additions & 2 deletions WowPacketParser/Parsing/Parsers/LootHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ public static void HandleLootResponse(Packet packet)

for (int i = 0; i < currencyCount; ++i)
{
packet.ReadByte("Unk Byte", i); // only seen zero so far
packet.ReadByte("Slot", i);
packet.ReadInt32("Currency Id", i);
packet.ReadInt32("Count", i); // unconfirmed
}
Expand Down Expand Up @@ -239,7 +239,7 @@ public static void HandleLootContents(Packet packet)
[Parser(Opcode.SMSG_CURRENCY_LOOT_REMOVED)]
public static void HandleLootCurrency(Packet packet)
{
packet.ReadByte("Unk Byte");
packet.ReadByte("Slot");
}

[Parser(Opcode.SMSG_LOOT_CLEAR_MONEY)]
Expand Down
2 changes: 1 addition & 1 deletion WowPacketParser/Parsing/Parsers/MailHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ public static void HandleSendMail(Packet packet)
public static void HandleSendMail434(Packet packet)
{
var guid = new byte[8];
packet.ReadInt32("Unk Int32");
packet.ReadInt32("Unk Int32"); // MailMessage.packageId ?
packet.ReadInt32("Stationery?");
packet.ReadInt64("COD");
packet.ReadInt64("Money");
Expand Down
5 changes: 4 additions & 1 deletion WowPacketParser/Parsing/Parsers/MiscellaneousHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ public static class MiscellaneousParsers
public static void HandleLogDisconnect(Packet packet)
{
packet.ReadUInt32("Unk");
// 4 is inability for client to decrypt RSA
// 3 is not receiving "WORLD OF WARCRAFT CONNECTION - SERVER TO CLIENT"
// 11 is sent on receiving opcode 0x140 with some specific data
}

[Parser(Opcode.CMSG_VIOLENCE_LEVEL)]
Expand Down Expand Up @@ -362,7 +365,7 @@ public static void HandleTimeSyncReq(Packet packet)
[Parser(Opcode.SMSG_LEARNED_DANCE_MOVES)]
public static void HandleLearnedDanceMoves(Packet packet)
{
packet.ReadInt32("Dance Move Id");
packet.ReadInt32("Dance Move Id"); // Dance move is Int64?
packet.ReadInt32("Unk int");
}

Expand Down
2 changes: 1 addition & 1 deletion WowPacketParser/Parsing/Parsers/PetHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ public static void HandlePetActionFeedback(Packet packet)
break;
case PetFeedback.CantAttackTarget:
if (ClientVersion.AddedInVersion(ClientType.Cataclysm))
packet.ReadInt32("Unk int32");
packet.ReadEntryWithName<Int32>(StoreNameType.Spell, "Spell ID"); // sub_8ADA60 2nd parameter is SpellID, check sub_8B22C0
break;
}
}
Expand Down
4 changes: 2 additions & 2 deletions WowPacketParser/Parsing/Parsers/QuestHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -520,7 +520,7 @@ public static void HandleQuestgiverQueryQuest(Packet packet)
{
packet.ReadGuid("GUID");
packet.ReadEntryWithName<UInt32>(StoreNameType.Quest, "Quest ID");
packet.ReadByte("Unknown Byte");
packet.ReadByte("Start/End (1/2)");
}

[Parser(Opcode.CMSG_QUESTGIVER_ACCEPT_QUEST)]
Expand Down Expand Up @@ -800,7 +800,7 @@ public static void HandleQuestCompleted422(Packet packet)
[Parser(Opcode.SMSG_QUESTGIVER_QUEST_COMPLETE, ClientVersionBuild.V4_3_4_15595)]
public static void HandleQuestCompleted434(Packet packet)
{
packet.ReadInt32("Unk Int32 1"); // Talent Points?
packet.ReadInt32("TalentPoints");
packet.ReadInt32("RewSkillPoints");
packet.ReadInt32("Money");
packet.ReadInt32("XP");
Expand Down
14 changes: 12 additions & 2 deletions WowPacketParser/Parsing/Parsers/SpellHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,9 @@ public static void HandleCastFailed(Packet packet)
break;
// Following is post 3.3.5a
case SpellCastFailureReason.NotReady:
if (packet.CanRead())
packet.ReadInt32("Extra Cast Number");
break;
case SpellCastFailureReason.Silenced:
case SpellCastFailureReason.NotStanding:
if (packet.CanRead())
Expand Down Expand Up @@ -914,7 +917,7 @@ public static void HandleSpellProcResist(Packet packet)
public static void HandleSpellChannelUpdate(Packet packet)
{
packet.ReadPackedGuid("GUID");
packet.ReadUInt32("Unk");
packet.ReadUInt32("Timestamp");
}

[Parser(Opcode.MSG_CHANNEL_START)]
Expand Down Expand Up @@ -956,7 +959,14 @@ public static void HandleMountResult(Packet packet)
{
if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_0_6a_13623) && ClientVersion.RemovedInVersion(ClientVersionBuild.V4_3_4_15595))
packet.ReadPackedGuid("GUID");
packet.ReadUInt32("Result"); // FIXME Enum?
packet.ReadEnum<MountResult>("Result", TypeCode.Int32);
}

[Parser(Opcode.SMSG_DISMOUNTRESULT)]
public static void HandleDismountResult(Packet packet)
{
if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_3_4_15595)) // Don't know for previous.
packet.ReadEnum<DismountResult>("Result", TypeCode.Int32);
}

[Parser(Opcode.CMSG_GET_MIRRORIMAGE_DATA)]
Expand Down
20 changes: 16 additions & 4 deletions WowPacketParser/Parsing/Parsers/TicketHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ public static void HandleGMResponseReceived(Packet packet)
[Parser(Opcode.SMSG_GMTICKET_GETTICKET)]
public static void HandleGetGMTicket(Packet packet)
{
var unk = packet.ReadInt32("Unk UInt32");
if (unk != 6)
var ticketStatus = packet.ReadEnum<GMTicketStatus>("TicketStatus", TypeCode.Int32);
if (ticketStatus != GMTicketStatus.HasText)
return;

packet.ReadInt32("TicketID");
Expand All @@ -95,7 +95,19 @@ public static void HandleGetGMTicket(Packet packet)
[Parser(Opcode.SMSG_GMTICKET_DELETETICKET)]
public static void HandleCreateUpdateGMTicket(Packet packet)
{
packet.ReadInt32("Unk UInt32");
var ticketResponse = packet.ReadEnum<GMTicketResponse>("TicketResponse", TypeCode.Int32);
switch (ticketResponse)
{
case GMTicketResponse.Failure:
packet.WriteLine("Action failed");
break;
case GMTicketResponse.Success:
packet.WriteLine("Action succeeded");
break;
case GMTicketResponse.Deleted:
packet.WriteLine("Ticket deleted");
break;
}
}

[Parser(Opcode.CMSG_GMTICKET_UPDATETEXT)]
Expand Down Expand Up @@ -144,7 +156,7 @@ public static void HandleSubmitBug(Packet packet)
pos.Y = packet.ReadSingle();
pos.Z = packet.ReadSingle();
pos.X = packet.ReadSingle();
packet.ReadInt32("Unk Int32");
packet.ReadInt32("Map ID");
pos.O = packet.ReadSingle();
packet.WriteLine("Position: {0}", pos);
}
Expand Down
2 changes: 1 addition & 1 deletion WowPacketParser/Parsing/Parsers/TradeHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ public static void HandleTradeStatusExtended434(Packet packet)
[Parser(Opcode.CMSG_ACCEPT_TRADE)]
public static void HandleAcceptTrade(Packet packet)
{
packet.ReadUInt32("Unk UInt32");
packet.ReadUInt32("Unk UInt32 - Trade Window Is Showing?");
}

[Parser(Opcode.CMSG_BEGIN_TRADE)]
Expand Down
4 changes: 4 additions & 0 deletions WowPacketParser/WowPacketParser.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@
<Compile Include="Enums\DamageType.cs" />
<Compile Include="Enums\DifficultyChangeType.cs" />
<Compile Include="Enums\Direction.cs" />
<Compile Include="Enums\DismountResult.cs" />
<Compile Include="Enums\DrunkenState.cs" />
<Compile Include="Enums\DumpFormatType.cs" />
<Compile Include="Enums\EmoteType.cs" />
Expand All @@ -168,6 +169,8 @@
<Compile Include="Enums\GameObjectFlag.cs" />
<Compile Include="Enums\GameObjectType.cs" />
<Compile Include="Enums\Gender.cs" />
<Compile Include="Enums\GMTicketResponse.cs" />
<Compile Include="Enums\GMTicketStatus.cs" />
<Compile Include="Enums\GossipOptionIcon.cs" />
<Compile Include="Enums\GossipPoiIcon.cs" />
<Compile Include="Enums\GroupMemberStatusFlag.cs" />
Expand All @@ -187,6 +190,7 @@
<Compile Include="Enums\HighGuidType.cs" />
<Compile Include="Enums\Holiday.cs" />
<Compile Include="Enums\InhabitType.cs" />
<Compile Include="Enums\MountResult.cs" />
<Compile Include="Enums\RaidSummonFail.cs" />
<Compile Include="Enums\TalentErrors.cs" />
<Compile Include="Enums\TargetIcon.cs" />
Expand Down