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>
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
type xmodel [display="XModel"]
|
|
{
|
|
i32 name_ptr [ui, readonly, display="Name Ptr"];
|
|
|
|
u8 num_bones [ui, readonly, display="Num Bones"];
|
|
u8 num_root_bones [ui, readonly, display="Num Root Bones"];
|
|
u8 num_surfaces [ui, readonly, display="Num Surfaces"];
|
|
i8 lod_ramp_type [ui, readonly, display="LOD Ramp Type"];
|
|
|
|
// Model surfaces pointers (4 LODs)
|
|
i32 model_surfs_ptr_0 [ui, readonly, display="Model Surfs Ptr LOD0"];
|
|
i32 model_surfs_ptr_1 [ui, readonly, display="Model Surfs Ptr LOD1"];
|
|
i32 model_surfs_ptr_2 [ui, readonly, display="Model Surfs Ptr LOD2"];
|
|
i32 model_surfs_ptr_3 [ui, readonly, display="Model Surfs Ptr LOD3"];
|
|
|
|
// LOD info (4 floats = 16 bytes)
|
|
lod_info = read(16) [ui, readonly, display="LOD Info"];
|
|
|
|
i32 coll_surfs_ptr [ui, readonly, display="Coll Surfs Ptr"];
|
|
i32 num_coll_surfs [ui, readonly, display="Num Coll Surfs"];
|
|
i32 contents [ui, readonly, display="Contents"];
|
|
|
|
i32 bone_info_ptr [ui, readonly, display="Bone Info Ptr"];
|
|
|
|
// Bounds (6 floats = 24 bytes for mins + maxs)
|
|
bounds = read(24) [ui, readonly, display="Bounds"];
|
|
|
|
// Radius (float)
|
|
radius = read(4) [ui, readonly, display="Radius"];
|
|
|
|
i32 phys_preset_ptr [ui, readonly, display="Phys Preset Ptr"];
|
|
i32 phys_collmap_ptr [ui, readonly, display="Phys Collmap Ptr"];
|
|
|
|
u16 flags [ui, readonly, display="Flags"];
|
|
skip(2); // padding
|
|
|
|
// Parse inline name
|
|
if (name_ptr == -1) {
|
|
name = cstring() [ui, readonly, display="Name"];
|
|
_name = name;
|
|
}
|
|
|
|
// Note: Full XModel inline parsing would require:
|
|
// - XModelSurfs for each LOD
|
|
// - XBoneInfo array
|
|
// - Collision surfaces
|
|
// - Physics preset
|
|
// - Physics collision map
|
|
// These are complex nested structures
|
|
}
|