Difference between revisions of "DataNode"
Jump to navigation
Jump to search
m (added a bit of information on different node types) |
m (whoops forgot 0x06) |
||
Line 53: | Line 53: | ||
|EMPTY | |EMPTY | ||
|0x6 | |0x6 | ||
|No value. | |No value. Equivalent to <code>kDataUnhandled</code> in DTA. | ||
|- | |- | ||
|IFDEF | |IFDEF |
Revision as of 17:29, 15 April 2022
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. |