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"]; } } }