Changes

Jump to navigation Jump to search
157 bytes added ,  22:41, 14 June 2017
→‎Primitives: Added usage of bits 30 and 31 of the "lookbackstring"
Line 124: Line 124:  
** if this is the first lookback string encountered:
 
** if this is the first lookback string encountered:
 
*** uint32 version (currently 3)
 
*** uint32 version (currently 3)
** uint32 index: bit 31 and 30 define the string type. If both bits are 0, the index is a [[ManiaPlanet_internals#Id|number]]. The actual index is bits 0-29. If it is 0, a new string follows (and will be added to the string list). If it is greater than one, use the string at stringlist [index - 1]. A value of -1 means there is no data provided (unassigned).
+
** uint32 index: bit 31 and 30 define the string type. If both bits are 0, the index is a [[ManiaPlanet_internals#Id|number]]. The actual index is represented by the bits 0-29. If this value is 0, a new string follows (and will be added to the string list). If it is greater than one, use the string at stringlist [index - 1]. If no data is provided (unassigned), the bits 30 and 31 indicate how this state is stored. If bit 31 is set, the string "Unassigned" is used, but if bit 30 is set, the value -1 is stored instead.
** if (index & 0xC0000000) != 0 and (index & 0x3FFFFFFF) == 0:
+
** If the bits 0 through 29 are 0 and bit 30 or 31 is 1:
 
*** string newString. Append to the string list.
 
*** string newString. Append to the string list.
  

Navigation menu