Skip to content

Commit 5400754

Browse files
committed
Also fix item updates for 3.4.1 and 3.4.2
1 parent a034c93 commit 5400754

File tree

2 files changed

+64
-86
lines changed

2 files changed

+64
-86
lines changed

WowPacketParserModule.V3_4_0_45166/Parsers/UpdateFieldsHandler341.cs

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ public override IItemData ReadCreateItemData(Packet packet, UpdateFieldFlag flag
279279
public override IItemData ReadUpdateItemData(Packet packet, params object[] indexes)
280280
{
281281
var data = new ItemData();
282+
packet.ResetBitReader();
282283
var rawChangesMask = new int[2];
283284
var rawMaskMask = new int[1];
284285
rawMaskMask[0] = (int)packet.ReadBits(2);
@@ -291,147 +292,135 @@ public override IItemData ReadUpdateItemData(Packet packet, params object[] inde
291292
if (changesMask[0])
292293
{
293294
if (changesMask[1])
294-
{
295-
data.BonusListIDs = Enumerable.Range(0, (int)packet.ReadBits(32)).Select(x => new int()).Cast<System.Nullable<int>>().ToArray();
296-
for (var i = 0; i < data.BonusListIDs.Length; ++i)
297-
{
298-
data.BonusListIDs[i] = packet.ReadInt32("BonusListIDs", indexes, i);
299-
}
300-
}
301-
}
302-
packet.ResetBitReader();
303-
if (changesMask[0])
304-
{
305-
if (changesMask[2])
306295
{
307296
data.ArtifactPowers.ReadUpdateMask(packet);
308297
}
309-
if (changesMask[3])
298+
if (changesMask[2])
310299
{
311300
data.Gems.ReadUpdateMask(packet);
312301
}
313302
}
314303
packet.ResetBitReader();
315304
if (changesMask[0])
316305
{
317-
if (changesMask[2])
306+
if (changesMask[1])
318307
{
319308
for (var i = 0; i < data.ArtifactPowers.Count; ++i)
320309
{
321310
if (data.ArtifactPowers.UpdateMask[i])
322311
{
323-
data.ArtifactPowers[i] = ReadUpdateArtifactPower(packet, data.ArtifactPowers[i] as ArtifactPower, indexes, "ArtifactPowers", i);
312+
data.ArtifactPowers[i] = ReadUpdateArtifactPower(packet, indexes, "ArtifactPowers", i);
324313
}
325314
}
326315
}
327-
if (changesMask[3])
316+
if (changesMask[2])
328317
{
329318
for (var i = 0; i < data.Gems.Count; ++i)
330319
{
331320
if (data.Gems.UpdateMask[i])
332321
{
333-
data.Gems[i] = ReadUpdateSocketedGem(packet, data.Gems[i] as SocketedGem, indexes, "Gems", i);
322+
data.Gems[i] = ReadUpdateSocketedGem(packet, indexes, "Gems", i);
334323
}
335324
}
336325
}
337-
if (changesMask[4])
326+
if (changesMask[3])
338327
{
339328
data.Owner = packet.ReadPackedGuid128("Owner", indexes);
340329
}
341-
if (changesMask[5])
330+
if (changesMask[4])
342331
{
343332
data.ContainedIn = packet.ReadPackedGuid128("ContainedIn", indexes);
344333
}
345-
if (changesMask[6])
334+
if (changesMask[5])
346335
{
347336
data.Creator = packet.ReadPackedGuid128("Creator", indexes);
348337
}
349-
if (changesMask[7])
338+
if (changesMask[6])
350339
{
351340
data.GiftCreator = packet.ReadPackedGuid128("GiftCreator", indexes);
352341
}
353-
if (changesMask[8])
342+
if (changesMask[7])
354343
{
355344
data.StackCount = packet.ReadUInt32("StackCount", indexes);
356345
}
357-
if (changesMask[9])
346+
if (changesMask[8])
358347
{
359348
data.Expiration = packet.ReadUInt32("Expiration", indexes);
360349
}
361-
if (changesMask[10])
350+
if (changesMask[9])
362351
{
363352
data.DynamicFlags = packet.ReadUInt32("DynamicFlags", indexes);
364353
}
365-
if (changesMask[11])
354+
if (changesMask[10])
366355
{
367356
data.PropertySeed = packet.ReadInt32("PropertySeed", indexes);
368357
}
369-
if (changesMask[12])
358+
if (changesMask[11])
370359
{
371360
data.RandomPropertiesID = packet.ReadInt32("RandomPropertiesID", indexes);
372361
}
373-
if (changesMask[13])
362+
if (changesMask[12])
374363
{
375364
data.Durability = packet.ReadUInt32("Durability", indexes);
376365
}
377-
if (changesMask[14])
366+
if (changesMask[13])
378367
{
379368
data.MaxDurability = packet.ReadUInt32("MaxDurability", indexes);
380369
}
381-
if (changesMask[15])
370+
if (changesMask[14])
382371
{
383372
data.CreatePlayedTime = packet.ReadUInt32("CreatePlayedTime", indexes);
384373
}
385-
if (changesMask[16])
374+
if (changesMask[15])
386375
{
387376
data.Context = packet.ReadInt32("Context", indexes);
388377
}
389-
if (changesMask[17])
378+
if (changesMask[16])
390379
{
391380
data.CreateTime = packet.ReadInt64("CreateTime", indexes);
392381
}
393-
if (changesMask[18])
382+
if (changesMask[17])
394383
{
395384
data.ArtifactXP = packet.ReadUInt64("ArtifactXP", indexes);
396385
}
397-
if (changesMask[19])
386+
if (changesMask[18])
398387
{
399388
data.ItemAppearanceModID = packet.ReadByte("ItemAppearanceModID", indexes);
400389
}
401-
if (changesMask[21])
390+
if (changesMask[20])
402391
{
403392
data.DynamicFlags2 = packet.ReadUInt32("ZoneFlags", indexes);
404393
}
405-
if (changesMask[22])
394+
if (changesMask[21])
406395
{
407396
Substructures.ItemHandler.ReadItemBonusKey(packet, indexes, "ItemBonusKey");
408397
}
409-
if (changesMask[23])
398+
if (changesMask[22])
410399
{
411400
data.DEBUGItemLevel = packet.ReadUInt16("DEBUGItemLevel", indexes);
412401
}
413-
if (changesMask[20])
402+
if (changesMask[19])
414403
{
415-
data.Modifiers = ReadUpdateItemModList(packet, data.Modifiers as ItemModList, indexes, "Modifiers");
404+
data.Modifiers = ReadUpdateItemModList(packet, indexes, "Modifiers");
416405
}
417406
}
418-
if (changesMask[24])
407+
if (changesMask[23])
419408
{
420409
for (var i = 0; i < 5; ++i)
421410
{
422-
if (changesMask[25 + i])
411+
if (changesMask[24 + i])
423412
{
424413
data.SpellCharges[i] = packet.ReadInt32("SpellCharges", indexes, i);
425414
}
426415
}
427416
}
428-
if (changesMask[30])
417+
if (changesMask[29])
429418
{
430419
for (var i = 0; i < 13; ++i)
431420
{
432-
if (changesMask[31 + i])
421+
if (changesMask[30 + i])
433422
{
434-
data.Enchantment[i] = ReadUpdateItemEnchantment(packet, data.Enchantment[i] as ItemEnchantment, indexes, "Enchantment", i);
423+
data.Enchantment[i] = ReadUpdateItemEnchantment(packet, indexes, "Enchantment", i);
435424
}
436425
}
437426
}

WowPacketParserModule.V3_4_0_45166/Parsers/UpdateFieldsHandler342.cs

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ public override IItemData ReadCreateItemData(Packet packet, UpdateFieldFlag flag
279279
public override IItemData ReadUpdateItemData(Packet packet, params object[] indexes)
280280
{
281281
var data = new ItemData();
282+
packet.ResetBitReader();
282283
var rawChangesMask = new int[2];
283284
var rawMaskMask = new int[1];
284285
rawMaskMask[0] = (int)packet.ReadBits(2);
@@ -291,147 +292,135 @@ public override IItemData ReadUpdateItemData(Packet packet, params object[] inde
291292
if (changesMask[0])
292293
{
293294
if (changesMask[1])
294-
{
295-
data.BonusListIDs = Enumerable.Range(0, (int)packet.ReadBits(32)).Select(x => new int()).Cast<System.Nullable<int>>().ToArray();
296-
for (var i = 0; i < data.BonusListIDs.Length; ++i)
297-
{
298-
data.BonusListIDs[i] = packet.ReadInt32("BonusListIDs", indexes, i);
299-
}
300-
}
301-
}
302-
packet.ResetBitReader();
303-
if (changesMask[0])
304-
{
305-
if (changesMask[2])
306295
{
307296
data.ArtifactPowers.ReadUpdateMask(packet);
308297
}
309-
if (changesMask[3])
298+
if (changesMask[2])
310299
{
311300
data.Gems.ReadUpdateMask(packet);
312301
}
313302
}
314303
packet.ResetBitReader();
315304
if (changesMask[0])
316305
{
317-
if (changesMask[2])
306+
if (changesMask[1])
318307
{
319308
for (var i = 0; i < data.ArtifactPowers.Count; ++i)
320309
{
321310
if (data.ArtifactPowers.UpdateMask[i])
322311
{
323-
data.ArtifactPowers[i] = ReadUpdateArtifactPower(packet, data.ArtifactPowers[i] as ArtifactPower, indexes, "ArtifactPowers", i);
312+
data.ArtifactPowers[i] = ReadUpdateArtifactPower(packet, indexes, "ArtifactPowers", i);
324313
}
325314
}
326315
}
327-
if (changesMask[3])
316+
if (changesMask[2])
328317
{
329318
for (var i = 0; i < data.Gems.Count; ++i)
330319
{
331320
if (data.Gems.UpdateMask[i])
332321
{
333-
data.Gems[i] = ReadUpdateSocketedGem(packet, data.Gems[i] as SocketedGem, indexes, "Gems", i);
322+
data.Gems[i] = ReadUpdateSocketedGem(packet, indexes, "Gems", i);
334323
}
335324
}
336325
}
337-
if (changesMask[4])
326+
if (changesMask[3])
338327
{
339328
data.Owner = packet.ReadPackedGuid128("Owner", indexes);
340329
}
341-
if (changesMask[5])
330+
if (changesMask[4])
342331
{
343332
data.ContainedIn = packet.ReadPackedGuid128("ContainedIn", indexes);
344333
}
345-
if (changesMask[6])
334+
if (changesMask[5])
346335
{
347336
data.Creator = packet.ReadPackedGuid128("Creator", indexes);
348337
}
349-
if (changesMask[7])
338+
if (changesMask[6])
350339
{
351340
data.GiftCreator = packet.ReadPackedGuid128("GiftCreator", indexes);
352341
}
353-
if (changesMask[8])
342+
if (changesMask[7])
354343
{
355344
data.StackCount = packet.ReadUInt32("StackCount", indexes);
356345
}
357-
if (changesMask[9])
346+
if (changesMask[8])
358347
{
359348
data.Expiration = packet.ReadUInt32("Expiration", indexes);
360349
}
361-
if (changesMask[10])
350+
if (changesMask[9])
362351
{
363352
data.DynamicFlags = packet.ReadUInt32("DynamicFlags", indexes);
364353
}
365-
if (changesMask[11])
354+
if (changesMask[10])
366355
{
367356
data.PropertySeed = packet.ReadInt32("PropertySeed", indexes);
368357
}
369-
if (changesMask[12])
358+
if (changesMask[11])
370359
{
371360
data.RandomPropertiesID = packet.ReadInt32("RandomPropertiesID", indexes);
372361
}
373-
if (changesMask[13])
362+
if (changesMask[12])
374363
{
375364
data.Durability = packet.ReadUInt32("Durability", indexes);
376365
}
377-
if (changesMask[14])
366+
if (changesMask[13])
378367
{
379368
data.MaxDurability = packet.ReadUInt32("MaxDurability", indexes);
380369
}
381-
if (changesMask[15])
370+
if (changesMask[14])
382371
{
383372
data.CreatePlayedTime = packet.ReadUInt32("CreatePlayedTime", indexes);
384373
}
385-
if (changesMask[16])
374+
if (changesMask[15])
386375
{
387376
data.Context = packet.ReadInt32("Context", indexes);
388377
}
389-
if (changesMask[17])
378+
if (changesMask[16])
390379
{
391380
data.CreateTime = packet.ReadInt64("CreateTime", indexes);
392381
}
393-
if (changesMask[18])
382+
if (changesMask[17])
394383
{
395384
data.ArtifactXP = packet.ReadUInt64("ArtifactXP", indexes);
396385
}
397-
if (changesMask[19])
386+
if (changesMask[18])
398387
{
399388
data.ItemAppearanceModID = packet.ReadByte("ItemAppearanceModID", indexes);
400389
}
401-
if (changesMask[21])
390+
if (changesMask[20])
402391
{
403392
data.DynamicFlags2 = packet.ReadUInt32("ZoneFlags", indexes);
404393
}
405-
if (changesMask[22])
394+
if (changesMask[21])
406395
{
407396
Substructures.ItemHandler.ReadItemBonusKey(packet, indexes, "ItemBonusKey");
408397
}
409-
if (changesMask[23])
398+
if (changesMask[22])
410399
{
411400
data.DEBUGItemLevel = packet.ReadUInt16("DEBUGItemLevel", indexes);
412401
}
413-
if (changesMask[20])
402+
if (changesMask[19])
414403
{
415-
data.Modifiers = ReadUpdateItemModList(packet, data.Modifiers as ItemModList, indexes, "Modifiers");
404+
data.Modifiers = ReadUpdateItemModList(packet, indexes, "Modifiers");
416405
}
417406
}
418-
if (changesMask[24])
407+
if (changesMask[23])
419408
{
420409
for (var i = 0; i < 5; ++i)
421410
{
422-
if (changesMask[25 + i])
411+
if (changesMask[24 + i])
423412
{
424413
data.SpellCharges[i] = packet.ReadInt32("SpellCharges", indexes, i);
425414
}
426415
}
427416
}
428-
if (changesMask[30])
417+
if (changesMask[29])
429418
{
430419
for (var i = 0; i < 13; ++i)
431420
{
432-
if (changesMask[31 + i])
421+
if (changesMask[30 + i])
433422
{
434-
data.Enchantment[i] = ReadUpdateItemEnchantment(packet, data.Enchantment[i] as ItemEnchantment, indexes, "Enchantment", i);
423+
data.Enchantment[i] = ReadUpdateItemEnchantment(packet, indexes, "Enchantment", i);
435424
}
436425
}
437426
}

0 commit comments

Comments
 (0)