fcc32587fa1136e5bcbfb8bec46b50cd97dba26a
Analyzed a 12.0.1.66017 packet sniff using WowPacketParser and compared every pet battle packet structure against our implementation. Fixed all discrepancies to match Blizzard's actual wire format: - SMSG_PET_BATTLE_FINALIZE_LOCATION: Replace single Position with full PetBattleLocation struct (LocationResult, BattleOrigin, BattleFacing, PlayerPositions[2]) - SMSG_PET_BATTLE_FINAL_ROUND: Completely restructured - no longer contains round data. Now contains Abandoned/PvpBattle flags, Winners, NpcCreatureIDs, and per-pet final results (PetBattleFinalPet) - PetBattleEffectInfo: Add SourceAuraInstanceID (u16), TurnInstanceID (u16), fix CasterPBOID to uint8, reorder fields to match wire format - PetBattleEffectTargetInfo: Type is now 3 bits (not uint8), variable- length params based on type (0-7 target types with 0-4 int32s each) - PetBattleCooldownInfo: Add AbilityIndex and Pboid fields to match PetBattleAbilityInfo format (same wire structure from 6.2.4+) - Round packets (FirstRound, RoundResult, ReplacementsMade): All three now share identical wire format via WriteRoundResult. Cooldowns moved from per-player to round-level flat array. Added PetXDied (3-bit count + PBOID entries) - SMSG_PET_BATTLE_REPLACEMENTS_MADE: Now includes Effects (was missing) - CMSG_PET_BATTLE_INPUT: MoveType changed from uint8 to int32, Round from uint8 to int32, added DebugFlags (int32) and BattleInterrupted (uint8) fields. Verified against raw hex: 19 bytes total - CMSG_PET_BATTLE_REQUEST_WILD/PVP: Replace MovementInfo with proper PetBattleLocation struct matching WPP V6 parser - SMSG_PET_BATTLE_PVP_CHALLENGE: Uses PetBattleLocation struct
WowCommunityProject
Blizzlike WowCommunity project
Languages
C++
89.3%
C
10.1%
CMake
0.4%