Weapon Structure (as used in Equipmnt.c)

PrimaryAmmoID, //Ammunitionstemplate used for Primary function.
SecondaryAmmoID, //Ammunitionstemplate used for Secondary function.

FirePrimaryFunction, //Function to process when pressing Primary Fire.
FireSecondaryFunction, //Function to process when pressing Secondary Fire.
WeaponInitFunction, //Function to process the moment you ready the weapon.

WeaponStateTimeOuts //How long it should take, in seconds (65536 equals 1 second), before switching to next state.
{
Idle,
Primary Fire,
Primary Recoil,
Primary Reload,
Secondary Fire,
Secondary Recoil,
Secondary Reload,
Swapping In,
Swapping Out,
Jammed,
Waiting,
Readying,
Unreadying
}

WeaponStateFunctions //Function to process for each weapon state.
{
Idle,
Primary Fire,
Primary Recoil,
Primary Reload,
Secondary Fire,
Secondary Recoil,
Secondary Reload,
Swapping In,
Swapping Out,
Jammed,
Waiting,
Readying,
Unreadying
}

Jamming, //Probability of jamming.
Firing Rage, //Bullets wasted per shot.
SmartTargetSpeed, //How fast the crosshair moves if the weapon is autotargeting.
GunCrosshairSpeed, //How fast the gun moves if the weapon is autotargeting.
SmartTargetRadius, //How big autotargeting radius the weapon has.
RestPosition, //Where the weapon is aligned when idle (X, Y, Z coordinates).
RecoilMaxZ, //Max amount of Z increase/decrease from recoil.
RecoilMaxRandomZ, //Max amount of random Z increase/decrease from recoil.
RecoilMaxXTilt, //Max tilt on X-angle from recoil.
RecoilMaxYTilt, //Max tilt on Y-angle from recoil.
StrikePosition, //X, Y and Z coordinates for strike position.

Name, //Textstring to import, name of weapon.
Dummy Shape, //Default shape.
MuzzleFlashShapeName, //Name of muzzleflash to use.
RiffName, //Name of RIF to import weapon shape from.
HierarchyName, //Name of hierarchy to use as weapon shape.
InitialSequenceType, //Which sequence to load.
InitialSubSequence, //Which subsequence to load.

Encumburance, //Use the first three sets if you have enabled Encumburance, otherwise use the second three sets.
{
Idle Encumburance,
Primary Fire Encumburance,
Secondary Fire Encumburance,
}
//Encumburance affects Movement (speed of running/walking), Turning, Jumping, Crouching and Running.

UseStateMovement, //Use Movementdependant states.
IsSmartTarget, //Is this weapon autotargeting?
PrimaryIsRapidFire, //Primary fire is burst based.
PrimaryIsAutomaticFire, //Primary fire is continous as long as button is held down.
PrimaryIsMeleeWeapon, //Primary fire is close combat based.
SecondaryIsRapidFire, //Secondary fire is burst based.
SecondaryIsAutomaticFire, //Secondary fire is continous as long as button is held down.
SecondaryIsMeleeWeapon, //Secondary fire is close combat based.
HasShapeAnimation, //Weapon has a shape animation.
HasTextureAnimation, //Weapon has texture animation.
FireWhenCloaked, //0 means weapon decloaks player, 1 means weapon can be used while cloaked.
FireInChangeVision, //Weapon can be fired while in other vision that normal.
FirePrimaryLate, //Primary fire delay.
FireSecondaryLate, //Secondary fire delay.
PrimaryMuzzleFlash, //Primary fire uses a muzzleflash.
SecondaryMuzzleFlash, //Secondary fire uses a muzzleflash.
LogAccuracy, //Log accuracy for gamestats.
LogShots, //Log amount of fired rounds for gamestats.