@@ -29,68 +29,38 @@ internal struct CreateObjectMessage : INetworkMessage
2929 internal ulong NetworkObjectId ;
3030
3131
32- //TODO Replace all bytes by boolean field
3332 private const byte k_IncludesSerializedObject = 0x01 ;
3433 private const byte k_UpdateObservers = 0x02 ;
3534 private const byte k_UpdateNewObservers = 0x04 ;
3635
37-
3836 private byte m_CreateObjectMessageTypeFlags ;
3937
40- internal bool IncludesSerializedObject
41- {
42- get
43- {
44- return GetFlag ( k_IncludesSerializedObject ) ;
45- }
46-
47- set
48- {
49- SetFlag ( value , k_IncludesSerializedObject ) ;
50- }
51- }
52-
53- internal bool UpdateObservers
54- {
55- get
56- {
57- return GetFlag ( k_UpdateObservers ) ;
58- }
38+ internal bool IncludesSerializedObject ;
39+ internal bool UpdateObservers ;
40+ internal bool UpdateNewObservers ;
5941
60- set
61- {
62- SetFlag ( value , k_UpdateObservers ) ;
63- }
64- }
65-
66- internal bool UpdateNewObservers
67- {
68- get
69- {
70- return GetFlag ( k_UpdateNewObservers ) ;
71- }
72-
73- set
74- {
75- SetFlag ( value , k_UpdateNewObservers ) ;
76- }
77- }
78-
79- private bool GetFlag ( int flag )
42+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
43+ internal uint GetBitsetRepresentation ( )
8044 {
81- return ( m_CreateObjectMessageTypeFlags & flag ) != 0 ;
45+ uint bitset = 0 ;
46+ if ( IncludesSerializedObject ) { bitset |= k_IncludesSerializedObject ; }
47+ if ( UpdateObservers ) { bitset |= k_UpdateObservers ; }
48+ if ( UpdateNewObservers ) { bitset |= k_UpdateNewObservers ; }
49+ return bitset ;
8250 }
8351
84- private void SetFlag ( bool set , byte flag )
52+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
53+ internal void SetStateFromBitset ( uint bitset )
8554 {
86- if ( set ) { m_CreateObjectMessageTypeFlags = ( byte ) ( m_CreateObjectMessageTypeFlags | flag ) ; }
87- else { m_CreateObjectMessageTypeFlags = ( byte ) ( m_CreateObjectMessageTypeFlags & ~ flag ) ; }
55+ IncludesSerializedObject = ( bitset & k_IncludesSerializedObject ) != 0 ;
56+ UpdateObservers = ( bitset & k_UpdateObservers ) != 0 ;
57+ UpdateNewObservers = ( bitset & k_UpdateNewObservers ) != 0 ;
8858 }
8959
9060 public void Serialize ( FastBufferWriter writer , int targetVersion )
9161 {
92- // TODO Create a byte, see Landed PR, set all the values and then write
93- writer . WriteValueSafe ( m_CreateObjectMessageTypeFlags ) ;
62+ uint getBitsetRepresentation = GetBitsetRepresentation ( ) ;
63+ writer . WriteValueSafe ( getBitsetRepresentation ) ;
9464
9565 if ( UpdateObservers )
9666 {
@@ -128,8 +98,9 @@ public bool Deserialize(FastBufferReader reader, ref NetworkContext context, int
12898 return false ;
12999 }
130100
131- // TODO Read a byte, if bool returned
132101 reader . ReadValueSafe ( out m_CreateObjectMessageTypeFlags ) ;
102+ SetStateFromBitset ( m_CreateObjectMessageTypeFlags ) ;
103+
133104 if ( UpdateObservers )
134105 {
135106 var length = 0 ;
0 commit comments