XPlor/definitions/cod/multidef.xscript

52 lines
3.0 KiB
Plaintext
Raw Normal View History

type multidef [display="Multi Def"]
{
// multiDef_s - fixed part: 392 bytes total
// const char* dvarList[32] + const char* dvarStr[32] + float dvarValue[32] + int count + int strDef
// Read all 32 dvarList pointers
i32 dvar_list_ptr_0; i32 dvar_list_ptr_1; i32 dvar_list_ptr_2; i32 dvar_list_ptr_3;
i32 dvar_list_ptr_4; i32 dvar_list_ptr_5; i32 dvar_list_ptr_6; i32 dvar_list_ptr_7;
i32 dvar_list_ptr_8; i32 dvar_list_ptr_9; i32 dvar_list_ptr_10; i32 dvar_list_ptr_11;
i32 dvar_list_ptr_12; i32 dvar_list_ptr_13; i32 dvar_list_ptr_14; i32 dvar_list_ptr_15;
i32 dvar_list_ptr_16; i32 dvar_list_ptr_17; i32 dvar_list_ptr_18; i32 dvar_list_ptr_19;
i32 dvar_list_ptr_20; i32 dvar_list_ptr_21; i32 dvar_list_ptr_22; i32 dvar_list_ptr_23;
i32 dvar_list_ptr_24; i32 dvar_list_ptr_25; i32 dvar_list_ptr_26; i32 dvar_list_ptr_27;
i32 dvar_list_ptr_28; i32 dvar_list_ptr_29; i32 dvar_list_ptr_30; i32 dvar_list_ptr_31;
// Read all 32 dvarStr pointers
i32 dvar_str_ptr_0; i32 dvar_str_ptr_1; i32 dvar_str_ptr_2; i32 dvar_str_ptr_3;
i32 dvar_str_ptr_4; i32 dvar_str_ptr_5; i32 dvar_str_ptr_6; i32 dvar_str_ptr_7;
i32 dvar_str_ptr_8; i32 dvar_str_ptr_9; i32 dvar_str_ptr_10; i32 dvar_str_ptr_11;
i32 dvar_str_ptr_12; i32 dvar_str_ptr_13; i32 dvar_str_ptr_14; i32 dvar_str_ptr_15;
i32 dvar_str_ptr_16; i32 dvar_str_ptr_17; i32 dvar_str_ptr_18; i32 dvar_str_ptr_19;
i32 dvar_str_ptr_20; i32 dvar_str_ptr_21; i32 dvar_str_ptr_22; i32 dvar_str_ptr_23;
i32 dvar_str_ptr_24; i32 dvar_str_ptr_25; i32 dvar_str_ptr_26; i32 dvar_str_ptr_27;
i32 dvar_str_ptr_28; i32 dvar_str_ptr_29; i32 dvar_str_ptr_30; i32 dvar_str_ptr_31;
// float dvarValue[32] - 128 bytes
dvar_values = read(128) [display="Dvar Values"];
i32 count [ui, readonly, display="Count"];
i32 str_def [ui, readonly, display="Str Def"];
// Parse inline dvarList strings (only for -1 pointers, up to count)
if (dvar_list_ptr_0 == -1 && count > 0) { dvar_list_0 = cstring(); }
if (dvar_list_ptr_1 == -1 && count > 1) { dvar_list_1 = cstring(); }
if (dvar_list_ptr_2 == -1 && count > 2) { dvar_list_2 = cstring(); }
if (dvar_list_ptr_3 == -1 && count > 3) { dvar_list_3 = cstring(); }
if (dvar_list_ptr_4 == -1 && count > 4) { dvar_list_4 = cstring(); }
if (dvar_list_ptr_5 == -1 && count > 5) { dvar_list_5 = cstring(); }
if (dvar_list_ptr_6 == -1 && count > 6) { dvar_list_6 = cstring(); }
if (dvar_list_ptr_7 == -1 && count > 7) { dvar_list_7 = cstring(); }
// Parse inline dvarStr strings (only for -1 pointers, up to count)
if (dvar_str_ptr_0 == -1 && count > 0) { dvar_str_0 = cstring(); }
if (dvar_str_ptr_1 == -1 && count > 1) { dvar_str_1 = cstring(); }
if (dvar_str_ptr_2 == -1 && count > 2) { dvar_str_2 = cstring(); }
if (dvar_str_ptr_3 == -1 && count > 3) { dvar_str_3 = cstring(); }
if (dvar_str_ptr_4 == -1 && count > 4) { dvar_str_4 = cstring(); }
if (dvar_str_ptr_5 == -1 && count > 5) { dvar_str_5 = cstring(); }
if (dvar_str_ptr_6 == -1 && count > 6) { dvar_str_6 = cstring(); }
if (dvar_str_ptr_7 == -1 && count > 7) { dvar_str_7 = cstring(); }
}