Tag Properties#
Tags can contain a wide variety of properties.
Integers#
Integers store real numbers with no decimal places. The different types have different lengths, smaller types can be used to save disk space and to aid in compression.
int8#
- An
int8type can have a value from-128 to 127. Decimal places are not allowed.
int16#
- An
int16type can have a value from-32768to32767. Decimal places are not allowed.
int32#
- An
int32type can have a value from-2147483648to2147483647. Decimal places are not allowed.
Floats#
float32#
- A
float32can store values with up to 6 decimal places of precision.
float [TBD]#
- A
floatcan store values with up to 6 decimal places of precision.needs confirmation from a tag somewhere in assembly
Colors#
colorf#
- A
colorfstores color in afloatformat.
colorint [TBD]#
- A
colorintstores color in anintformat.
Bitfields#
bitfield8#
- A
bitfield8stores up to 8 boolean properties, or bits. Most true/false values in a tag are stored this way.
bitfield16#
- A
bitfield16stores up to 16 boolean properties, or bits.
bitfield32#
- A
bitfield32stores up to 16 boolean properties, or bits.
Enums#
enum8#
- An
enum8acts as a way to pick from a variety of different options, similar to a combobox. They are often represented as a combobox in any UI elements involved in tag editing.
enum16#
- An
enum16acts as a combobox with up to 16 options.
enum32#
- An
enum32acts as a combobox with up to 32 options.
Other/Misc#
ascii#
- An
asciistores text data directly in a tag, separately from the string table.
reflexive/block#
- A
block, referred to asreflexivesin the Halo mod scene, as well asstructsin the earlier days of Halo modding, are blocks that store any number of entries that each contain their own properties. A single entry can be used to group properties together, but it has support for multiple entries, each available with their own index.
dataref#
- A
datarefis a way of storing raw bytes of data. A length must be provided for these.
stringid#
- A
stringidis a reference to a string within a level's string table. If a stringid reference is invalid, an error will be displayed in console and will be treated as an empty string at runtime.
boolean#
- A
booleanstores a simpletrueorfalseoption. Generally, these are not used often as most of these types of options are stored inbitfields.
undefined#
- These are unknown/undefined types. Some of these will be present initially as we will be starting off utilizing tag formats from the official games. As we go on, undefined properties will either be removed or repurposed for our own needs.