@@ -258,6 +258,10 @@ public override IItemData ReadCreateItemData(Packet packet, UpdateFieldFlag flag
258258 if ( ( flags & UpdateFieldFlag . Owner ) != UpdateFieldFlag . None )
259259 {
260260 data . DynamicFlags2 = packet . ReadUInt32 ( "ZoneFlags" , indexes ) ;
261+ }
262+ Substructures . ItemHandler . ReadItemBonusKey ( packet , indexes , "ItemBonusKey" ) ;
263+ if ( ( flags & UpdateFieldFlag . Owner ) != UpdateFieldFlag . None )
264+ {
261265 data . DEBUGItemLevel = packet . ReadUInt16 ( "DEBUGItemLevel" , indexes ) ;
262266 }
263267 for ( var i = 0 ; i < data . ArtifactPowers . Count ; ++ i )
@@ -399,6 +403,10 @@ public override IItemData ReadUpdateItemData(Packet packet, params object[] inde
399403 data . DynamicFlags2 = packet . ReadUInt32 ( "ZoneFlags" , indexes ) ;
400404 }
401405 if ( changesMask [ 22 ] )
406+ {
407+ Substructures . ItemHandler . ReadItemBonusKey ( packet , indexes , "ItemBonusKey" ) ;
408+ }
409+ if ( changesMask [ 23 ] )
402410 {
403411 data . DEBUGItemLevel = packet . ReadUInt16 ( "DEBUGItemLevel" , indexes ) ;
404412 }
@@ -407,21 +415,21 @@ public override IItemData ReadUpdateItemData(Packet packet, params object[] inde
407415 data . Modifiers = ReadUpdateItemModList ( packet , data . Modifiers as ItemModList , indexes , "Modifiers" ) ;
408416 }
409417 }
410- if ( changesMask [ 23 ] )
418+ if ( changesMask [ 24 ] )
411419 {
412420 for ( var i = 0 ; i < 5 ; ++ i )
413421 {
414- if ( changesMask [ 24 + i ] )
422+ if ( changesMask [ 25 + i ] )
415423 {
416424 data . SpellCharges [ i ] = packet . ReadInt32 ( "SpellCharges" , indexes , i ) ;
417425 }
418426 }
419427 }
420- if ( changesMask [ 29 ] )
428+ if ( changesMask [ 30 ] )
421429 {
422430 for ( var i = 0 ; i < 13 ; ++ i )
423431 {
424- if ( changesMask [ 30 + i ] )
432+ if ( changesMask [ 31 + i ] )
425433 {
426434 data . Enchantment [ i ] = ReadUpdateItemEnchantment ( packet , data . Enchantment [ i ] as ItemEnchantment , indexes , "Enchantment" , i ) ;
427435 }
@@ -744,6 +752,7 @@ public override IUnitData ReadCreateUnitData(Packet packet, UpdateFieldFlag flag
744752 public override IUnitData ReadUpdateUnitData ( Packet packet , params object [ ] indexes )
745753 {
746754 var data = new UnitData ( ) ;
755+ /*
747756 var rawChangesMask = new int[7];
748757 var rawMaskMask = new int[1];
749758 rawMaskMask[0] = (int)packet.ReadBits(7);
@@ -1333,6 +1342,7 @@ public override IUnitData ReadUpdateUnitData(Packet packet, params object[] inde
13331342 }
13341343 }
13351344 }
1345+ */
13361346 return data ;
13371347 }
13381348
@@ -1515,7 +1525,9 @@ public override IPlayerData ReadCreatePlayerData(Packet packet, UpdateFieldFlag
15151525 }
15161526 data . CurrentBattlePetBreedQuality = packet . ReadByte ( "CurrentBattlePetBreedQuality" , indexes ) ;
15171527 data . HonorLevel = packet . ReadInt32 ( "HonorLevel" , indexes ) ;
1528+ data . LogoutTime = packet . ReadInt64 ( "LogoutTime" , indexes ) ;
15181529 data . ArenaCooldowns . Resize ( packet . ReadUInt32 ( ) ) ;
1530+ data . VisualItemReplacements . Resize ( packet . ReadUInt32 ( ) ) ;
15191531 for ( var i = 0 ; i < data . Customizations . Count ; ++ i )
15201532 {
15211533 data . Customizations [ i ] = ReadCreateChrCustomizationChoice ( packet , indexes , "Customizations" , i ) ;
@@ -1524,12 +1536,17 @@ public override IPlayerData ReadCreatePlayerData(Packet packet, UpdateFieldFlag
15241536 {
15251537 data . ArenaCooldowns [ i ] = ReadCreateArenaCooldown ( packet , indexes , "ArenaCooldowns" , i ) ;
15261538 }
1539+ for ( var i = 0 ; i < data . VisualItemReplacements . Count ; ++ i )
1540+ {
1541+ data . VisualItemReplacements [ i ] = packet . ReadInt32 ( "VisualItemReplacements" , indexes , i ) ;
1542+ }
15271543 return data ;
15281544 }
15291545
15301546 public override IPlayerData ReadUpdatePlayerData ( Packet packet , params object [ ] indexes )
15311547 {
15321548 var data = new PlayerData ( ) ;
1549+ /*
15331550 var rawChangesMask = new int[3];
15341551 var rawMaskMask = new int[1];
15351552 rawMaskMask[0] = (int)packet.ReadBits(3);
@@ -1699,7 +1716,7 @@ public override IPlayerData ReadUpdatePlayerData(Packet packet, params object[]
16991716 data.AvgItemLevel[i] = packet.ReadSingle("AvgItemLevel", indexes, i);
17001717 }
17011718 }
1702- }
1719+ }*/
17031720 return data ;
17041721 }
17051722
@@ -1992,7 +2009,7 @@ public override IActivePlayerData ReadCreateActivePlayerData(Packet packet, Upda
19922009 {
19932010 var data = new ActivePlayerData ( ) ;
19942011 packet . ResetBitReader ( ) ;
1995- for ( var i = 0 ; i < 129 ; ++ i )
2012+ for ( var i = 0 ; i < 141 ; ++ i )
19962013 {
19972014 data . InvSlots [ i ] = packet . ReadPackedGuid128 ( "InvSlots" , indexes , i ) ;
19982015 }
@@ -2236,6 +2253,7 @@ public override IActivePlayerData ReadUpdateActivePlayerData(Packet packet, para
22362253 {
22372254 var data = new ActivePlayerData ( ) ;
22382255 packet . ResetBitReader ( ) ;
2256+ /*
22392257 var rawChangesMask = new int[47];
22402258 var rawMaskMask = new int[2];
22412259 for (var i = 0; i < 1; ++i)
@@ -3013,12 +3031,14 @@ public override IActivePlayerData ReadUpdateActivePlayerData(Packet packet, para
30133031 }
30143032 }
30153033 }
3034+ */
30163035 return data ;
30173036 }
30183037
30193038 public override IGameObjectData ReadCreateGameObjectData ( Packet packet , UpdateFieldFlag flags , params object [ ] indexes )
30203039 {
30213040 var data = new GameObjectData ( ) ;
3041+ packet . ResetBitReader ( ) ;
30223042 data . DisplayID = packet . ReadInt32 ( "DisplayID" , indexes ) ;
30233043 data . SpellVisualID = packet . ReadUInt32 ( "SpellVisualID" , indexes ) ;
30243044 data . StateSpellVisualID = packet . ReadUInt32 ( "StateSpellVisualID" , indexes ) ;
@@ -3041,18 +3061,24 @@ public override IGameObjectData ReadCreateGameObjectData(Packet packet, UpdateFi
30413061 data . ArtKit = packet . ReadUInt32 ( "ArtKit" , indexes ) ;
30423062 data . EnableDoodadSets . Resize ( packet . ReadUInt32 ( ) ) ;
30433063 data . CustomParam = packet . ReadUInt32 ( "CustomParam" , indexes ) ;
3064+ data . WorldEffects . Resize ( packet . ReadUInt32 ( ) ) ;
30443065 for ( var i = 0 ; i < data . EnableDoodadSets . Count ; ++ i )
30453066 {
30463067 data . EnableDoodadSets [ i ] = packet . ReadInt32 ( "EnableDoodadSets" , indexes , i ) ;
30473068 }
3069+ for ( var i = 0 ; i < data . WorldEffects . Count ; ++ i )
3070+ {
3071+ data . WorldEffects [ i ] = packet . ReadInt32 ( "WorldEffects" , indexes , i ) ;
3072+ }
30483073 return data ;
30493074 }
30503075
30513076 public override IGameObjectData ReadUpdateGameObjectData ( Packet packet , params object [ ] indexes )
30523077 {
30533078 var data = new GameObjectData ( ) ;
3079+ packet . ResetBitReader ( ) ;
30543080 var rawChangesMask = new int [ 1 ] ;
3055- rawChangesMask [ 0 ] = ( int ) packet . ReadBits ( 19 ) ;
3081+ rawChangesMask [ 0 ] = ( int ) packet . ReadBits ( 20 ) ;
30563082 var changesMask = new BitArray ( rawChangesMask ) ;
30573083
30583084 if ( changesMask [ 0 ] )
@@ -3073,6 +3099,10 @@ public override IGameObjectData ReadUpdateGameObjectData(Packet packet, params o
30733099 {
30743100 data . EnableDoodadSets . ReadUpdateMask ( packet ) ;
30753101 }
3102+ if ( changesMask [ 3 ] )
3103+ {
3104+ data . WorldEffects . ReadUpdateMask ( packet ) ;
3105+ }
30763106 }
30773107 packet . ResetBitReader ( ) ;
30783108 if ( changesMask [ 0 ] )
@@ -3089,65 +3119,75 @@ public override IGameObjectData ReadUpdateGameObjectData(Packet packet, params o
30893119 }
30903120 if ( changesMask [ 3 ] )
30913121 {
3092- data . DisplayID = packet . ReadInt32 ( "DisplayID" , indexes ) ;
3122+ for ( var i = 0 ; i < data . WorldEffects . Count ; ++ i )
3123+ {
3124+ if ( data . WorldEffects . UpdateMask [ i ] )
3125+ {
3126+ data . WorldEffects [ i ] = packet . ReadInt32 ( "WorldEffects" , indexes , i ) ;
3127+ }
3128+ }
30933129 }
30943130 if ( changesMask [ 4 ] )
30953131 {
3096- data . SpellVisualID = packet . ReadUInt32 ( "SpellVisualID ", indexes ) ;
3132+ data . DisplayID = packet . ReadInt32 ( "DisplayID ", indexes ) ;
30973133 }
30983134 if ( changesMask [ 5 ] )
30993135 {
3100- data . StateSpellVisualID = packet . ReadUInt32 ( "StateSpellVisualID " , indexes ) ;
3136+ data . SpellVisualID = packet . ReadUInt32 ( "SpellVisualID " , indexes ) ;
31013137 }
31023138 if ( changesMask [ 6 ] )
31033139 {
3104- data . SpawnTrackingStateAnimID = packet . ReadUInt32 ( "SpawnTrackingStateAnimID " , indexes ) ;
3140+ data . StateSpellVisualID = packet . ReadUInt32 ( "StateSpellVisualID " , indexes ) ;
31053141 }
31063142 if ( changesMask [ 7 ] )
31073143 {
3108- data . SpawnTrackingStateAnimKitID = packet . ReadUInt32 ( "SpawnTrackingStateAnimKitID " , indexes ) ;
3144+ data . SpawnTrackingStateAnimID = packet . ReadUInt32 ( "SpawnTrackingStateAnimID " , indexes ) ;
31093145 }
31103146 if ( changesMask [ 8 ] )
31113147 {
3112- data . CreatedBy = packet . ReadPackedGuid128 ( "CreatedBy ", indexes ) ;
3148+ data . SpawnTrackingStateAnimKitID = packet . ReadUInt32 ( "SpawnTrackingStateAnimKitID ", indexes ) ;
31133149 }
31143150 if ( changesMask [ 9 ] )
31153151 {
3116- data . GuildGUID = packet . ReadPackedGuid128 ( "GuildGUID " , indexes ) ;
3152+ data . CreatedBy = packet . ReadPackedGuid128 ( "CreatedBy " , indexes ) ;
31173153 }
31183154 if ( changesMask [ 10 ] )
31193155 {
3120- data . Flags = packet . ReadUInt32 ( "Flags ", indexes ) ;
3156+ data . GuildGUID = packet . ReadPackedGuid128 ( "GuildGUID ", indexes ) ;
31213157 }
31223158 if ( changesMask [ 11 ] )
31233159 {
3124- data . ParentRotation = packet . ReadQuaternion ( "ParentRotation ", indexes ) ;
3160+ data . Flags = packet . ReadUInt32 ( "Flags ", indexes ) ;
31253161 }
31263162 if ( changesMask [ 12 ] )
31273163 {
3128- data . FactionTemplate = packet . ReadInt32 ( "FactionTemplate ", indexes ) ;
3164+ data . ParentRotation = packet . ReadQuaternion ( "ParentRotation ", indexes ) ;
31293165 }
31303166 if ( changesMask [ 13 ] )
31313167 {
3132- data . Level = packet . ReadInt32 ( "Level " , indexes ) ;
3168+ data . FactionTemplate = packet . ReadInt32 ( "FactionTemplate " , indexes ) ;
31333169 }
31343170 if ( changesMask [ 14 ] )
31353171 {
3136- data . State = packet . ReadSByte ( "State ", indexes ) ;
3172+ data . Level = packet . ReadInt32 ( "Level ", indexes ) ;
31373173 }
31383174 if ( changesMask [ 15 ] )
31393175 {
3140- data . TypeID = packet . ReadSByte ( "TypeID " , indexes ) ;
3176+ data . State = packet . ReadSByte ( "State " , indexes ) ;
31413177 }
31423178 if ( changesMask [ 16 ] )
31433179 {
3144- data . PercentHealth = packet . ReadByte ( "PercentHealth ", indexes ) ;
3180+ data . TypeID = packet . ReadSByte ( "TypeID ", indexes ) ;
31453181 }
31463182 if ( changesMask [ 17 ] )
31473183 {
3148- data . ArtKit = packet . ReadUInt32 ( "ArtKit ", indexes ) ;
3184+ data . PercentHealth = packet . ReadByte ( "PercentHealth ", indexes ) ;
31493185 }
31503186 if ( changesMask [ 18 ] )
3187+ {
3188+ data . ArtKit = packet . ReadUInt32 ( "ArtKit" , indexes ) ;
3189+ }
3190+ if ( changesMask [ 19 ] )
31513191 {
31523192 data . CustomParam = packet . ReadUInt32 ( "CustomParam" , indexes ) ;
31533193 }
0 commit comments