20,136
edits
(general rewrite, adding in the knowledge I've gained so far; removed list of types that link to other types as it seems useless) |
(added bools and padding) |
||
| Line 203: | Line 203: | ||
==Bitsets== | ==Bitsets== | ||
The most common size of a bitset, aka | The most common size of a bitset, aka flag set, is 32 bits. | ||
===1 byte=== | ===1 byte=== | ||
| Line 210: | Line 210: | ||
===8 bytes=== | ===8 bytes=== | ||
Used for [[dat#Instance descriptors|the instance descriptor flags]] in the .dat and for keypress events in [[FILM]]. Used for storing flags for AI behaviors in [[ONCC]]. | Used for [[dat#Instance descriptors|the instance descriptor flags]] in the .dat and for keypress events in [[FILM]]. Used for storing flags for AI behaviors in [[ONCC]]. | ||
==Booleans== | |||
If Bungie West wanted to store a single boolean value then they held it in a 1-byte field, aka 'char' (a series of values would be stored in a bitset). | |||
==Misc.== | ==Misc.== | ||
| Line 226: | Line 229: | ||
===Pathfinding grids=== | ===Pathfinding grids=== | ||
See [[OBD:AKVA/0x24]]. | See [[OBD:AKVA/0x24]]. | ||
===Padding=== | |||
Bungie West frequently placed padding into their template structs for cache alignment purposes to speed up the reading of the data. This padding can range in size from 1 byte (typically following a 1-byte boolean field) to 28 bytes (preceding pointer fields which were 4 bytes). | |||
{{OBD}} | {{OBD}} | ||