Skip to content

Commit fc6b29f

Browse files
committed
Add 4.4.2 SMSG_AUCTION_LIST_BUCKETS_RESULT
1 parent 2fe0b0f commit fc6b29f

1 file changed

Lines changed: 53 additions & 2 deletions

File tree

WowPacketParserModule.V4_4_0_54481/Parsers/AuctionHandler.cs

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,17 @@ public static void ReadClientAuctionOwnerNotification(Packet packet, params obje
1616

1717
public static void ReadAuctionBucketKey(Packet packet, params object[] idx)
1818
{
19+
packet.ResetBitReader();
1920
packet.ReadBits("ItemID", 20, idx);
2021
var hasBattlePetSpeciesID = packet.ReadBit("HasBattlePetSpeciesID", idx);
2122
packet.ReadBits("ItemLevel", 11, idx);
2223
var hasSuffixItemNameDescriptionID = packet.ReadBit("HasSuffixItemNameDescriptionID", idx);
2324

2425
if (hasBattlePetSpeciesID)
25-
packet.ReadUInt16("BattlePetSpeciesID");
26+
packet.ReadUInt16("BattlePetSpeciesID", idx);
2627

2728
if (hasSuffixItemNameDescriptionID)
28-
packet.ReadUInt16("SuffixItemNameDescriptionID");
29+
packet.ReadUInt16("SuffixItemNameDescriptionID", idx);
2930
}
3031

3132
public static void ReadCliAuctionItem(Packet packet, params object[] idx)
@@ -35,6 +36,7 @@ public static void ReadCliAuctionItem(Packet packet, params object[] idx)
3536
var enchantmentsCount = packet.ReadBits("EnchantmentsCount", 4, idx);
3637
var gemsCount = packet.ReadBits("GemsCount", 2, idx);
3738
var hasMinBid = packet.ReadBit("HasMinBid", idx);
39+
3840
var hasMinIncrement = packet.ReadBit("HasMinIncrement", idx);
3941
var hasBuyoutPrice = packet.ReadBit("HasBuyoutPrice", idx);
4042
var hasUnitPrice = packet.ReadBit("HasUnitPrice", idx);
@@ -64,6 +66,9 @@ public static void ReadCliAuctionItem(Packet packet, params object[] idx)
6466
packet.ReadInt32("DurationLeft", idx);
6567
packet.ReadByte("DeleteReason", idx);
6668

69+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_4_2_59185))
70+
packet.ReadInt32("Unk_442", idx);
71+
6772
for (int i = 0; i < enchantmentsCount; i++)
6873
Substructures.ItemHandler.ReadItemEnchantData(packet, idx, "Enchantments", i);
6974

@@ -377,6 +382,52 @@ public static void HandleAuctionSellItem(Packet packet)
377382
}
378383
}
379384

385+
public static void ReadBucketInfo(Packet packet, int index)
386+
{
387+
ReadAuctionBucketKey(packet, index, "Key");
388+
389+
packet.ReadInt32("TotalQuantity", index);
390+
packet.ReadInt32("RequiredLevel", index);
391+
packet.ReadUInt64("MinPrice", index);
392+
var itemModifiedAppearanceIDsCount = packet.ReadUInt32();
393+
for (var i = 0u; i < itemModifiedAppearanceIDsCount; ++i)
394+
packet.ReadInt32("ItemModifiedAppearanceID", index, i);
395+
396+
packet.ResetBitReader();
397+
var hasMaxBattlePetQuality = packet.ReadBit();
398+
var hasMaxBattlePetLevel = packet.ReadBit();
399+
var hasBattlePetBreedID = packet.ReadBit();
400+
var hasBattlePetLevelMask = packet.ReadBit();
401+
packet.ReadBit("ContainsOwnerItem", index);
402+
packet.ReadBit("ContainsOnlyCollectedAppearances", index);
403+
404+
if (hasMaxBattlePetQuality)
405+
packet.ReadByte("MaxBattlePetQuality", index);
406+
407+
if (hasMaxBattlePetLevel)
408+
packet.ReadByte("MaxBattlePetLevel", index);
409+
410+
if (hasBattlePetBreedID)
411+
packet.ReadByte("BattlePetBreedID", index);
412+
413+
if (hasBattlePetLevelMask)
414+
packet.ReadUInt32("BattlePetLevelMask", index);
415+
}
416+
417+
[Parser(Opcode.SMSG_AUCTION_LIST_BUCKETS_RESULT)]
418+
public static void HandleAuctionListBucketsResult(Packet packet)
419+
{
420+
var bucketCount = packet.ReadUInt32();
421+
packet.ReadUInt32("DesiredDelay");
422+
packet.ReadInt32("Unknown830_0");
423+
packet.ReadInt32("Unknown830_1");
424+
packet.ReadBit("BrowseMode");
425+
packet.ReadBit("HasMoreResults");
426+
427+
for (var i = 0; i < bucketCount; ++i)
428+
ReadBucketInfo(packet, i);
429+
}
430+
380431
[Parser(Opcode.CMSG_AUCTION_LIST_PENDING_SALES)]
381432
public static void HandleAuctionZero(Packet packet)
382433
{

0 commit comments

Comments
 (0)