29 lines
967 B
Plaintext
29 lines
967 B
Plaintext
|
|
type expressionentry [display="Expression Entry"]
|
||
|
|
{
|
||
|
|
// expressionEntry struct from IW3_Assets.h
|
||
|
|
// Total: 12 bytes (int type + 8 byte union)
|
||
|
|
|
||
|
|
// int type - EET_OPERATOR(0) or EET_OPERAND(1)
|
||
|
|
i32 entry_type [ui, readonly, display="Type"];
|
||
|
|
|
||
|
|
// entryInternalData union - 8 bytes
|
||
|
|
// If type == 0 (operator): int op (4 bytes) + 4 padding
|
||
|
|
// If type == 1 (operand): Operand struct (dataType + internals = 8 bytes)
|
||
|
|
|
||
|
|
if (entry_type == 0) {
|
||
|
|
// Operator - just an int
|
||
|
|
i32 op_code [ui, readonly, display="Op Code"];
|
||
|
|
i32 _padding [ui, readonly];
|
||
|
|
} else {
|
||
|
|
// Operand - dataType (4) + value union (4)
|
||
|
|
// dataType: 0=INT, 1=FLOAT, 2=STRING
|
||
|
|
i32 data_type [ui, readonly, display="Data Type"];
|
||
|
|
i32 value_raw [ui, readonly, display="Value/Ptr"];
|
||
|
|
|
||
|
|
// If data_type == 2 (STRING) and value is -1, string is inline
|
||
|
|
if (data_type == 2 && value_raw == -1) {
|
||
|
|
string_val = cstring() [ui, readonly, display="String Value"];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|