XPlor/definitions/cod/menu.xscript

68 lines
2.1 KiB
Plaintext
Raw Normal View History

2026-01-01 22:18:40 -05:00
type menu [display="Menu"]
{
// windowDef_t embedded structure (156 bytes)
window = parse_here("windowdef");
2026-01-01 22:18:40 -05:00
i32 font_ptr [ui, readonly, display="Font Ptr"];
i32 full_screen [ui, readonly, display="Full Screen"];
i32 item_count [ui, readonly, display="Item Count"];
i32 font_index [ui, readonly, display="Font Index"];
i32 cursor_item [ui, readonly, display="Cursor Item"];
i32 fade_cycle [ui, readonly, display="Fade Cycle"];
// Fade values (3 floats = 12 bytes)
fade_values = read(12) [ui, readonly, display="Fade Clamp/Amount/InAmount"];
// Blur radius (float = 4 bytes)
blur_radius = read(4) [ui, readonly, display="Blur Radius"];
// Event handler pointers
i32 on_open_ptr [ui, readonly, display="OnOpen Ptr"];
i32 on_close_ptr [ui, readonly, display="OnClose Ptr"];
i32 on_esc_ptr [ui, readonly, display="OnESC Ptr"];
i32 on_key_ptr [ui, readonly, display="OnKey Ptr"];
i32 sound_name_ptr [ui, readonly, display="Sound Name Ptr"];
i32 items_ptr [ui, readonly, display="Items Ptr"];
i32 allowed_binding_ptr [ui, readonly, display="Allowed Binding Ptr"];
i32 sound_loop_ptr [ui, readonly, display="Sound Loop Ptr"];
i32 image_track [ui, readonly, display="Image Track"];
// Parse inline font
if (font_ptr == -1) {
font = cstring() [ui, readonly, display="Font"];
}
// Parse inline strings
if (on_open_ptr == -1) {
on_open = cstring() [ui, readonly, display="OnOpen"];
}
if (on_close_ptr == -1) {
on_close = cstring() [ui, readonly, display="OnClose"];
}
if (on_esc_ptr == -1) {
on_esc = cstring() [ui, readonly, display="OnESC"];
}
if (on_key_ptr == -1) {
on_key = parse_here("itemkeyhandler");
}
if (sound_name_ptr == -1) {
sound_name = cstring() [ui, readonly, display="Sound Name"];
}
if (allowed_binding_ptr == -1) {
allowed_binding = cstring() [ui, readonly, display="Allowed Binding"];
}
if (sound_loop_ptr == -1) {
sound_loop = cstring() [ui, readonly, display="Sound Loop"];
2026-01-01 22:18:40 -05:00
}
// Parse inline items
if (items_ptr == -1 && item_count > 0) {
items = 0;
repeat(item_count) {
_item = parse_here("itemdef");
items = push("items", _item);
}
}
2026-01-01 22:18:40 -05:00
}