- (tag) string // 31+1 character buffer. +1 as it is null terminated
long_string // 255+1 character buffer. +1 as it is null terminated
string_id // 32-bit string handle
old_string_id // versioning related only, not needed for cache related operations
char_integer // 8-bit
short_integer // 16-bit
long_integer // 32-bit
angle // real, in degrees
tag // 4 character code
char_enum // 8-bit
enum // 16-bit
long_enum // 32-bit
long_flags // 32-bit
word_flags // 16-bit
byte_flags // 8-bit
point_2d // short, short
rectangle_2d // short, short, short, short
rgb_color // 24-bit, 3 bytes
argb_color // 32-bit, 4 bytes
real // floating point
real_fraction // floating point, typically for 0.0 to 1.0 clamped fields
real_point_2d // real, real
real_point_3d // real, real, real
real_vector_2d // real, real
real_vector_3d // real, real, real
real_quaternion // real, real, real, real
real_euler_angles_2d // angle, angle
real_euler_angles_3d // angle, angle, angle
real_plane_2d // real, real, real
real_plane_3d // real, real, real, real
real_rgb_color // real, real, real
real_argb_color // real, real, real, real
real_hsv_color // unused
real_ahsv_color // unused
short_integer_bounds // short, short
angle_bounds // angle, angle
real_bounds // real, real
fraction_bounds // real_fraction, real_fraction
tag_reference // as the name suggests, a tag reference
block // as the name suggests, a tag block
long_block_flags // 32-bit
word_block_flags // 16-bit
byte_block_flags // 8-bit
char_block_index // 8-bit
short_block_index // 16-bit
long_block_index // 32-bit
data // as the name suggests, a tag data field
vertex_buffer // 32 byte structure representing a vertex hardware format
pad // <N> bytes. padding is used to either align fields or to hide runtime fields (read: postprocessed fields) from the editor
useless_pad // <N> bytes. versioning related only, not needed for cache related operations
skip // <N> bytes. to represent fields which are ignored when byte swapping (read: aren't byte swapped)
Halo 2 Field Types:
I think these are as follows:
Code: Select all
char_integer // 8-bit Integer
short_integer // 16-bit Integer
long_integer // 32-bit Integer
real // 32-bit Real
string // 256 Character String
long_string // 65,535 Character String
string_id // 32-bit ( (8)size / (8) null / (16) pointer)
char_enum // 8-bit List
enum // 16-bit List
long_enum // 32-bit List
angle // 32-bit real (0 - 1)
byte_flags // 8-bit Option Boxes
word_flags // 16-bit Option Boxes
long_flags // 32-bit Option Boxes
real_rgb_color // 96-bit (3x 32-bit real (0 - 1)) ((32)Red / (32)Green / (32)Blue)
real_argb_color // 128-bit (4x 32-bit real (0 - 1)) ((32)Alpha / (32)Red / (32)Green / (32)Blue)
real_hsv_color // 96-bit (3x 32-bit real (0 - 1)) ((32)Hue / (32)Saturation / (32)Value)
real_ahsv_color // 128-bit (4x 32-bit real (0 - 1)) ((32)Alpha / (32)Hue / (32)Saturation / (32)Value)
real_plane_2d // 96-bit (3x 32-bit real (0 - 1)) (( 8)i / ( 8)j / ( 8)k )
real_plane_3d // 128-bit (4x 32-bit real (0 - 1)) (( 8)i / ( 8)j / ( 8)k / ( 8)d )
real_point_2d // 64-bit (2x 32-bit real (0 - 1)) ((32)x / (32)y )
real_point_3d // 96-bit (3x 32-bit real (0 - 1)) (( 8)x / ( 8)y )
real_vector_2d // 64-bit (2x 32-bit real (0 - 1)) (( 8)i / ( 8)j )
real_vector_3d // 96-bit (3x 32-bit real (0 - 1)) (( 8)i / ( 8)j / ( 8)k)
real_quaternion // 128-bit (4x 32-bit real (0 - 1)) (( 8)i / ( 8)j / ( 8)k / ( 8) w )
Code: Select all
tag_reference // 32-bit char[] (Is this just the four character listing?)
block // 32-bit pointer?
old_string_id // 32-bit ((8)size / (8) null / (16) pointer)
point_2d // 32-bit (2x short_integer)
rectangle_2d // 256-bit (4x point_2d)
rgb_color // 96-bit (3x 32-bit char_integer (0-255))
argb_color // 128-bit (4x 32-bit char_integer (0-255))
unk1 // 32-bit long_integer
unk2 // 32-bit real
Code: Select all
real_fraction
real_euler_angles_2d
real_euler_angles_3d
short_integer_bounds
angle_bounds
real_bounds
fraction_bounds
long_block_flags
word_block_flags
byte_block_flags
char_block_index
char_block_index
short_block_index
long_block_index
long_block_index
data
vertex_buffer
array_start
array_end
useless_pad
skip
explaination
custom
struct
terminator_x
end_element