XPlor/definitions/cod/weapon.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

122 lines
6.5 KiB
Plaintext

type weapon [display="Weapon"]
{
// WeaponDef is extremely large in CoD4 (1000+ bytes)
// This is a simplified version focusing on the key fields
i32 name_ptr [ui, readonly, display="Name Ptr"];
i32 display_name_ptr [ui, readonly, display="Display Name Ptr"];
i32 ai_overlay_description_ptr [ui, readonly, display="AI Overlay Desc Ptr"];
// Gun model pointers
i32 gun_model_ptr [ui, readonly, display="Gun Model Ptr"];
i32 hand_model_ptr [ui, readonly, display="Hand Model Ptr"];
// Mode name (for alternate fire modes)
i32 mode_name_ptr [ui, readonly, display="Mode Name Ptr"];
// Player anim type
i32 player_anim_type [ui, readonly, display="Player Anim Type"];
// Weapon type and class
i32 weapon_type [ui, readonly, display="Weapon Type"];
i32 weapon_class [ui, readonly, display="Weapon Class"];
i32 penetrate_type [ui, readonly, display="Penetrate Type"];
i32 impact_type [ui, readonly, display="Impact Type"];
i32 inventory_type [ui, readonly, display="Inventory Type"];
i32 fire_type [ui, readonly, display="Fire Type"];
// Offhand class
i32 offhand_class [ui, readonly, display="Offhand Class"];
// Stance
i32 stance [ui, readonly, display="Stance"];
// View model pointers
i32 view_flash_effect_ptr [ui, readonly, display="View Flash Effect Ptr"];
i32 world_flash_effect_ptr [ui, readonly, display="World Flash Effect Ptr"];
// Sounds
i32 pickup_sound_ptr [ui, readonly, display="Pickup Sound Ptr"];
i32 pickup_sound_player_ptr [ui, readonly, display="Pickup Sound Player Ptr"];
i32 ammo_pickup_sound_ptr [ui, readonly, display="Ammo Pickup Sound Ptr"];
i32 ammo_pickup_sound_player_ptr [ui, readonly, display="Ammo Pickup Sound Player Ptr"];
i32 projectile_sound_ptr [ui, readonly, display="Projectile Sound Ptr"];
i32 pullback_sound_ptr [ui, readonly, display="Pullback Sound Ptr"];
i32 pullback_sound_player_ptr [ui, readonly, display="Pullback Sound Player Ptr"];
i32 fire_sound_ptr [ui, readonly, display="Fire Sound Ptr"];
i32 fire_sound_player_ptr [ui, readonly, display="Fire Sound Player Ptr"];
i32 fire_loop_sound_ptr [ui, readonly, display="Fire Loop Sound Ptr"];
i32 fire_loop_sound_player_ptr [ui, readonly, display="Fire Loop Sound Player Ptr"];
i32 fire_stop_sound_ptr [ui, readonly, display="Fire Stop Sound Ptr"];
i32 fire_stop_sound_player_ptr [ui, readonly, display="Fire Stop Sound Player Ptr"];
i32 fire_last_sound_ptr [ui, readonly, display="Fire Last Sound Ptr"];
i32 fire_last_sound_player_ptr [ui, readonly, display="Fire Last Sound Player Ptr"];
i32 empty_fire_sound_ptr [ui, readonly, display="Empty Fire Sound Ptr"];
i32 empty_fire_sound_player_ptr [ui, readonly, display="Empty Fire Sound Player Ptr"];
i32 melee_swipe_sound_ptr [ui, readonly, display="Melee Swipe Sound Ptr"];
i32 melee_swipe_sound_player_ptr [ui, readonly, display="Melee Swipe Sound Player Ptr"];
i32 melee_hit_sound_ptr [ui, readonly, display="Melee Hit Sound Ptr"];
i32 melee_miss_sound_ptr [ui, readonly, display="Melee Miss Sound Ptr"];
i32 rechamber_sound_ptr [ui, readonly, display="Rechamber Sound Ptr"];
i32 rechamber_sound_player_ptr [ui, readonly, display="Rechamber Sound Player Ptr"];
i32 reload_sound_ptr [ui, readonly, display="Reload Sound Ptr"];
i32 reload_sound_player_ptr [ui, readonly, display="Reload Sound Player Ptr"];
i32 reload_empty_sound_ptr [ui, readonly, display="Reload Empty Sound Ptr"];
i32 reload_empty_sound_player_ptr [ui, readonly, display="Reload Empty Sound Player Ptr"];
i32 reload_start_sound_ptr [ui, readonly, display="Reload Start Sound Ptr"];
i32 reload_start_sound_player_ptr [ui, readonly, display="Reload Start Sound Player Ptr"];
i32 reload_end_sound_ptr [ui, readonly, display="Reload End Sound Ptr"];
i32 reload_end_sound_player_ptr [ui, readonly, display="Reload End Sound Player Ptr"];
i32 deploy_sound_ptr [ui, readonly, display="Deploy Sound Ptr"];
i32 deploy_sound_player_ptr [ui, readonly, display="Deploy Sound Player Ptr"];
i32 finish_deploy_sound_ptr [ui, readonly, display="Finish Deploy Sound Ptr"];
i32 finish_deploy_sound_player_ptr [ui, readonly, display="Finish Deploy Sound Player Ptr"];
i32 breakdown_sound_ptr [ui, readonly, display="Breakdown Sound Ptr"];
i32 breakdown_sound_player_ptr [ui, readonly, display="Breakdown Sound Player Ptr"];
i32 finish_breakdown_sound_ptr [ui, readonly, display="Finish Breakdown Sound Ptr"];
i32 finish_breakdown_sound_player_ptr [ui, readonly, display="Finish Breakdown Sound Player Ptr"];
i32 detonate_sound_ptr [ui, readonly, display="Detonate Sound Ptr"];
i32 detonate_sound_player_ptr [ui, readonly, display="Detonate Sound Player Ptr"];
i32 night_vision_wear_sound_ptr [ui, readonly, display="Night Vision Wear Sound Ptr"];
i32 night_vision_wear_sound_player_ptr [ui, readonly, display="Night Vision Wear Sound Player Ptr"];
i32 night_vision_remove_sound_ptr [ui, readonly, display="Night Vision Remove Sound Ptr"];
i32 night_vision_remove_sound_player_ptr [ui, readonly, display="Night Vision Remove Sound Player Ptr"];
i32 alt_switch_sound_ptr [ui, readonly, display="Alt Switch Sound Ptr"];
i32 alt_switch_sound_player_ptr [ui, readonly, display="Alt Switch Sound Player Ptr"];
i32 raise_sound_ptr [ui, readonly, display="Raise Sound Ptr"];
i32 raise_sound_player_ptr [ui, readonly, display="Raise Sound Player Ptr"];
i32 first_raise_sound_ptr [ui, readonly, display="First Raise Sound Ptr"];
i32 first_raise_sound_player_ptr [ui, readonly, display="First Raise Sound Player Ptr"];
i32 put_away_sound_ptr [ui, readonly, display="Put Away Sound Ptr"];
i32 put_away_sound_player_ptr [ui, readonly, display="Put Away Sound Player Ptr"];
// Read remaining weapon data as raw bytes
// The full structure has many more fields (damage, range, spread, etc.)
// This reads enough to cover the core structure (around 800+ more bytes)
weapon_data = read(800) [ui, readonly, display="Weapon Data"];
// Parse inline name
if (name_ptr == -1) {
name = cstring() [ui, readonly, display="Name"];
_name = name;
}
// Parse inline display name
if (display_name_ptr == -1) {
display_name = cstring() [ui, readonly, display="Display Name"];
}
// Parse inline AI overlay description
if (ai_overlay_description_ptr == -1) {
ai_overlay_description = cstring() [ui, readonly, display="AI Overlay Description"];
}
// Parse inline mode name
if (mode_name_ptr == -1) {
mode_name = cstring() [ui, readonly, display="Mode Name"];
}
// Note: Many more inline assets would follow (models, effects, sounds, etc.)
// This is a simplified version
}