// =========================================
// WeaponCompleteDef
// =========================================
use WeaponCompleteDef;
set block XFILE_BLOCK_TEMP;
set string szInternalName;
set name szInternalName;
set reusable weapDef;
set string szDisplayName;
set reusable hideTags;
set scriptstring hideTags;
set count hideTags 32;
set reusable scopes;
set count scopes 6;
set reusable underBarrels;
set count underBarrels 3;
set reusable others;
set count others 4;
set string szXAnims;
set reusable szXAnims;
set count szXAnims NUM_WEAP_ANIMS;
set reusable animOverrides;
set count animOverrides numAnimOverrides;
set reusable soundOverrides;
set count soundOverrides numSoundOverrides;
set reusable fxOverrides;
set count fxOverrides numFXOverrides;
set reusable reloadOverrides;
set count reloadOverrides numReloadStateTimerOverrides;
set reusable notetrackOverrides;
set count notetrackOverrides numNotetrackOverrides;
set string szAltWeaponName;
set reusable accuracyGraphKnots;
set count accuracyGraphKnots[0] accuracyGraphKnotCount[0];
set count accuracyGraphKnots[1] accuracyGraphKnotCount[1];

// AnimOverrideEntry
use AnimOverrideEntry;
set string overrideAnim;
set string altmodeAnim;

// NoteTrackToSoundEntry
use NoteTrackToSoundEntry;
set reusable notetrackSoundMapKeys;
set scriptstring notetrackSoundMapKeys;
set count notetrackSoundMapKeys 24;
set reusable notetrackSoundMapValues;
set scriptstring notetrackSoundMapValues;
set count notetrackSoundMapValues 24;

// WeaponDef
use WeaponDef;
set string szOverlayName;
set reusable gunXModel;
set count gunXModel 16;
set reusable szXAnimsRightHanded;
set string szXAnimsRightHanded;
set count szXAnimsRightHanded NUM_WEAP_ANIMS;
set reusable szXAnimsLeftHanded;
set string szXAnimsLeftHanded;
set count szXAnimsLeftHanded NUM_WEAP_ANIMS;
set string szModeName;
set reusable notetrackSoundMapKeys;
set scriptstring notetrackSoundMapKeys;
set count notetrackSoundMapKeys 24;
set reusable notetrackSoundMapValues;
set scriptstring notetrackSoundMapValues;
set count notetrackSoundMapValues 24;
set reusable notetrackRumbleMapKeys;
set scriptstring notetrackRumbleMapKeys;
set count notetrackRumbleMapKeys 16;
set reusable notetrackRumbleMapValues;
set scriptstring notetrackRumbleMapValues;
set count notetrackRumbleMapValues 16;
set reusable bounceSound;
set count bounceSound 31;
set reusable rollingSound;
set count rollingSound 31;
set reusable worldModel;
set count worldModel 16;
set string szAmmoName;
set string szClipName;
set string szSharedAmmoCapName;
set reusable parallelBounce;
set count parallelBounce 31;
set reusable perpendicularBounce;
set count perpendicularBounce 31;
set string accuracyGraphName0;
set string accuracyGraphName1;
set reusable originalAccuracyGraphKnots0;
set reusable originalAccuracyGraphKnots1;
set count originalAccuracyGraphKnots0 WeaponCompleteDef::accuracyGraphKnotCount[0];
set count originalAccuracyGraphKnots1 WeaponCompleteDef::accuracyGraphKnotCount[1];
set string szUseHintString;
set string dropHintString;
set string szScript;
set reusable locationDamageMultipliers;
set count locationDamageMultipliers HITLOC_NUM;
set string fireRumble;
set string meleeImpactRumble;
set string turretBarrelSpinRumble;
set scriptstring stowTag;
reorder:
    ...
    accuracyGraphName0
    originalAccuracyGraphKnots0
    accuracyGraphName1
    originalAccuracyGraphKnots1;

// SndAliasCustom
use SndAliasCustom;
set count name 1;
set reusable name;
set condition sound never;

// snd_alias_list_name
set string snd_alias_list_name::soundName;