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); } } }