XPlor/definitions/cod/menu.xscript
njohnson 0fa26e5256 Expand Call of Duty XScript definitions
Add new asset type definitions:
- GfxWorld and related structures (cells, lights, probes)
- Menu system (menudef, itemdef, windowdef, listboxdef)
- Sound system (soundalias, soundfile, speakermap, sndcurve)
- D3D resources (vertex/index buffers)
- Font glyphs and expression entries

Update existing definitions with improved field annotations
and UI display properties.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 16:36:40 -05:00

68 lines
2.1 KiB
Plaintext

type menu [display="Menu"]
{
// windowDef_t embedded structure (156 bytes)
window = parse_here("windowdef");
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"];
}
// Parse inline items
if (items_ptr == -1 && item_count > 0) {
items = 0;
repeat(item_count) {
_item = parse_here("itemdef");
items = push("items", _item);
}
}
}