DataNode

From Milo Modding Wiki
Revision as of 14:39, 15 April 2022 by Ihatecompvir (talk | contribs) (initial page for DataNodes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

An object used internally by the Milo engine to represent a value of some type. Arrays of DataNodes are called DataArrays. In a DTB file, the type is explicitly stored, but in DTA files, it is guessed based on the syntax and keywords.

Structure

Name Size Function
Value 4 bytes The value of the DataNode.
Type 4 bytes The type of the DataNode.

Types

Each Milo game supports a different set of types for a DataNode. The amount of types gradually increased as Milo's scripting engine became more capable over the years.

Rock Band 3

Type Name Value Description
INT 0x0 An integer value.
FLOAT 0x1 A 32-bit floating point value.
VAR 0x2 A generic variable.
FUNC 0x3 A function declaration.
OBJECT 0x4 A pointer to some sort of object.
SYMBOL 0x5 A pointer to a Symbol.
EMPTY 0x6 No value.
IFDEF 0x7 A conditional checking for the existence of a global macro (such as _SHIP).
ELSE 0x8 The 'else' conditional.
ENDIF 0x9 The 'endif' conditional.
ARRAY 0x10 A pointer to a DataArray.
COMMAND 0x11 Unknown.
STRING 0x12 A string value.
OBJECT_PROP_REF 0x13 A pointer to the property of an object.
GLOB 0x14 Unknown.
DEFINE 0x20 A Macro definition.
INCLUDE 0x21 A marker indicating that another DTA/DTB should be included in the current file.
MERGE 0x22 A marker indicating that another DTA/DTB should be merged into the current file.
IFNDEF 0x23 A conditional checking for the non-existence of a global macro (such as _SHIP).
AUTORUN 0x24 Unknown.
UNDEF 0x25 Undefined value.