@@ -11,6 +11,7 @@ public class StoreOffers : ServerPacket
1111 public List < Banner > Banners { get ; } = new List < Banner > ( ) ;
1212 public List < Offer > Offers { get ; } = new List < Offer > ( ) ;
1313 public List < string > Collections { get ; } = new List < string > ( ) ;
14+ public List < string > DisableReasons { get ; } = new List < string > ( ) ;
1415
1516 public string CategoryName { get ; set ; }
1617 public string DisplaySubCategory { get ; set ; }
@@ -40,6 +41,11 @@ public override void ParseFromNetworkMessage(NetworkMessage message)
4041
4142 DisplaySubCategory = message . ReadString ( ) ;
4243
44+ DisableReasons . Capacity = message . ReadUInt16 ( ) ;
45+ for ( var i = 0 ; i < DisableReasons . Capacity ; ++ i ) {
46+ DisableReasons . Add ( message . ReadString ( ) ) ;
47+ }
48+
4349 Offers . Capacity = message . ReadUInt16 ( ) ;
4450 for ( var i = 0 ; i < Offers . Capacity ; ++ i ) {
4551 var offer = new Offer
@@ -62,10 +68,8 @@ public override void ParseFromNetworkMessage(NetworkMessage message)
6268 details . IsDisabled = message . ReadBool ( ) ;
6369 if ( details . IsDisabled ) {
6470 details . DisabledReasons . Capacity = message . ReadByte ( ) ;
65- for ( var x = 0 ; x < details . DisabledReasons . Capacity ; ++ x ) {
66- var disabledReason = message . ReadString ( ) ;
67- details . DisabledReasons . Add ( disabledReason ) ;
68- }
71+ for ( var x = 0 ; x < details . DisabledReasons . Capacity ; ++ x )
72+ details . DisabledReasons . Add ( message . ReadUInt16 ( ) ) ;
6973 }
7074
7175 details . HighlightState = message . ReadByte ( ) ;
@@ -160,9 +164,12 @@ public override void ParseFromNetworkMessage(NetworkMessage message)
160164 banner . Collection = message . ReadString ( ) ;
161165 } else if ( banner . Type == 4 ) {
162166 banner . OfferId = message . ReadUInt32 ( ) ;
167+ } else {
168+ banner . Unknown1 = message . ReadByte ( ) ;
163169 }
164170
165- banner . Unknown = message . ReadUInt16 ( ) ; // Always 0x0200 (512)?
171+ banner . Unknown2 = message . ReadByte ( ) ;
172+ banner . Unknown3 = message . ReadByte ( ) ;
166173 Banners . Add ( banner ) ;
167174 }
168175 BannerSwitchDelay = message . ReadByte ( ) ;
@@ -183,6 +190,10 @@ public override void AppendToNetworkMessage(NetworkMessage message)
183190
184191 message . Write ( DisplaySubCategory ) ;
185192
193+ count = Math . Min ( DisableReasons . Count , ushort . MaxValue ) ;
194+ for ( var i = 0 ; i < count ; ++ i )
195+ message . Write ( DisableReasons [ i ] ) ;
196+
186197 count = Math . Min ( Offers . Count , ushort . MaxValue ) ;
187198 message . Write ( ( ushort ) count ) ;
188199 for ( var i = 0 ; i < count ; ++ i ) {
@@ -283,8 +294,11 @@ public override void AppendToNetworkMessage(NetworkMessage message)
283294 message . Write ( banner . Collection ) ;
284295 } else if ( banner . Type == 4 ) {
285296 message . Write ( banner . OfferId ) ;
297+ } else {
298+ message . Write ( banner . Unknown1 ) ;
286299 }
287- message . Write ( banner . Unknown ) ;
300+ message . Write ( banner . Unknown2 ) ;
301+ message . Write ( banner . Unknown3 ) ;
288302 }
289303 message . Write ( BannerSwitchDelay ) ;
290304 }
0 commit comments