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. Prefixed by $ in DTA.
|
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. Equivalent to kDataUnhandled in DTA.
|
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. Denoted by () in DTA.
|
COMMAND
|
0x11
|
Executable statements/DataFunc calls. Denoted by {} in DTA.
|
STRING
|
0x12
|
A string value. Usually delimited by single or double quotes in DTA.
|
OBJECT_PROP_REF
|
0x13
|
A pointer to the property of an object. Denoted by [] in DTA.
|
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.
|