Skip to content

Commit 0d94d61

Browse files
committed
Add 3.4.4 SMSG_PARTY_MEMBER_PARTIAL_STATE
1 parent fb2abcb commit 0d94d61

1 file changed

Lines changed: 114 additions & 0 deletions

File tree

WowPacketParserModule.V3_4_0_45166/Parsers/GroupHandler.cs

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,120 @@ public static void HandleUpdateRaidTarget(Packet packet)
524524
packet.ReadByte("PartyIndex");
525525
}
526526

527+
[Parser(Opcode.SMSG_PARTY_MEMBER_PARTIAL_STATE, ClientVersionBuild.V3_4_4_59817)]
528+
public static void HandlePartyMemberPartialState(Packet packet)
529+
{
530+
packet.ReadBit("ForEnemyChanged");
531+
packet.ReadBit("SetPvPInactive"); // adds GroupMemberStatusFlag 0x0020 if true, removes 0x0020 if false
532+
packet.ReadBit("Unk901_1");
533+
534+
var partyTypeChanged = packet.ReadBit("PartyTypeChanged");
535+
var flagsChanged = packet.ReadBit("FlagsChanged");
536+
var powerTypeChanged = packet.ReadBit("PowerTypeChanged");
537+
var overrideDisplayPowerChanged = packet.ReadBit("OverrideDisplayPowerChanged");
538+
var currentHealthChanged = packet.ReadBit("CurrentHealthChanged");
539+
var maxHealthChanged = packet.ReadBit("MaxHealthChanged");
540+
var powerChanged = packet.ReadBit("PowerChanged");
541+
var maxPowerChanged = packet.ReadBit("MaxPowerChanged");
542+
var levelChanged = packet.ReadBit("LevelChanged");
543+
var specChanged = packet.ReadBit("SpecChanged");
544+
var areaIdChanged = packet.ReadBit("AreaIdChanged");
545+
var wmoGroupIdChanged = packet.ReadBit("WmoGroupIdChanged");
546+
var wmoDoodadPlacementIdChanged = packet.ReadBit("WmoDoodadPlacementIdChanged");
547+
var positionChanged = packet.ReadBit("PositionChanged");
548+
var vehicleSeatRecIdChanged = packet.ReadBit("VehicleSeatRecIdChanged");
549+
var aurasChanged = packet.ReadBit("AurasChanged");
550+
var petChanged = packet.ReadBit("PetChanged");
551+
var phaseChanged = packet.ReadBit("PhaseChanged");
552+
var ctrOptionsChanged = packet.ReadBit("CTROptionsChanged");
553+
554+
if (petChanged)
555+
{
556+
packet.ResetBitReader();
557+
var petGuidChanged = packet.ReadBit("GuidChanged", "Pet");
558+
var petNameChanged = packet.ReadBit("NameChanged", "Pet");
559+
var petDisplayIdChanged = packet.ReadBit("DisplayIdChanged", "Pet");
560+
var petMaxHealthChanged = packet.ReadBit("MaxHealthChanged", "Pet");
561+
var petHealthChanged = packet.ReadBit("HealthChanged", "Pet");
562+
var petAurasChanged = packet.ReadBit("AurasChanged", "Pet");
563+
if (petNameChanged)
564+
{
565+
packet.ResetBitReader();
566+
var len = packet.ReadBits(8);
567+
packet.ReadWoWString("NewPetName", len, "Pet");
568+
}
569+
if (petGuidChanged)
570+
packet.ReadPackedGuid128("NewPetGuid", "Pet");
571+
if (petDisplayIdChanged)
572+
packet.ReadUInt32("PetDisplayID", "Pet");
573+
if (petMaxHealthChanged)
574+
packet.ReadUInt32("PetMaxHealth", "Pet");
575+
if (petHealthChanged)
576+
packet.ReadUInt32("PetHealth", "Pet");
577+
if (petAurasChanged)
578+
{
579+
var cnt = packet.ReadInt32("AuraCount", "Pet", "Aura");
580+
for (int i = 0; i < cnt; i++)
581+
ReadAuraInfos(packet, "Pet", "Aura", i);
582+
}
583+
}
584+
585+
packet.ReadPackedGuid128("AffectedGUID");
586+
if (partyTypeChanged)
587+
{
588+
for (int i = 0; i < 2; i++)
589+
packet.ReadByte("PartyType", i);
590+
}
591+
592+
if (flagsChanged)
593+
packet.ReadUInt16E<GroupMemberStatusFlag>("Flags");
594+
if (powerTypeChanged)
595+
packet.ReadByte("PowerType");
596+
if (overrideDisplayPowerChanged)
597+
packet.ReadUInt16("OverrideDisplayPower");
598+
if (currentHealthChanged)
599+
packet.ReadUInt32("CurrentHealth");
600+
if (maxHealthChanged)
601+
packet.ReadUInt32("MaxHealth");
602+
if (powerChanged)
603+
packet.ReadUInt16("Power");
604+
if (maxPowerChanged)
605+
packet.ReadUInt16("MaxPower");
606+
if (levelChanged)
607+
packet.ReadUInt16("Level");
608+
if (specChanged)
609+
packet.ReadUInt16("Spec");
610+
if (areaIdChanged)
611+
packet.ReadUInt16("AreaID");
612+
if (wmoGroupIdChanged)
613+
packet.ReadUInt16("WmoGroupID");
614+
if (wmoDoodadPlacementIdChanged)
615+
packet.ReadUInt32("WmoDoodadPlacementID");
616+
if (positionChanged)
617+
{
618+
packet.ReadUInt16("PositionX");
619+
packet.ReadUInt16("PositionY");
620+
packet.ReadUInt16("PositionZ");
621+
}
622+
if (vehicleSeatRecIdChanged)
623+
packet.ReadUInt32("VehicleSeatRecID");
624+
if (aurasChanged)
625+
{
626+
var cnt = packet.ReadInt32("AuraCount", "Aura");
627+
for (int i = 0; i < cnt; i++)
628+
ReadAuraInfos(packet, "Aura", i);
629+
}
630+
if (phaseChanged)
631+
ReadPhaseInfos(packet, "Phase");
632+
633+
if (ctrOptionsChanged)
634+
{
635+
packet.ReadUInt32("ConditionalFlags", "CTROptions");
636+
packet.ReadByte("FactionGroup ", "CTROptions");
637+
packet.ReadUInt32("ChromieTimeExpansionMask", "CTROptions");
638+
}
639+
}
640+
527641
[Parser(Opcode.CMSG_REQUEST_RAID_INFO, ClientVersionBuild.V3_4_4_59817)]
528642
[Parser(Opcode.SMSG_GROUP_DESTROYED, ClientVersionBuild.V3_4_4_59817)]
529643
[Parser(Opcode.SMSG_GROUP_UNINVITE, ClientVersionBuild.V3_4_4_59817)]

0 commit comments

Comments
 (0)