XPlor/definitions/cod/scriptstringlist.xscript
2026-01-01 22:18:40 -05:00

27 lines
807 B
Plaintext

type scriptstringlist [display="Script String List"]
{
u32 raw_count [ui, readonly, display="Raw Count"];
i32 strings_ptr [ui, readonly, display="Strings Ptr"];
// C++ code decrements count by 1
count = raw_count - 1 [ui, readonly, display="Count"];
if (strings_ptr == -1) {
// Two-pass parsing (matching C++ XScriptStringList::ParseData)
// Pass 1: Read all string pointers
repeat(count) {
i32 str_ptr;
string_ptrs = push("string_ptrs", str_ptr);
}
// Pass 2: Parse all strings (reads null-terminated string data)
// Note: Each string should check if its ptr == -1 before parsing
repeat(count) {
str = parse_here("scriptstring");
strings = push("strings", str);
}
strings = strings [ui, table="Strings", columns="ptr,value"];
}
}