Notes on Weapon Verbs


Weapon Models

Weapons use different models for internal (POV) and external camera views. The internal models are given special animation because normal animations do not affect the internal weapon model. The external weapon mesh attaches to the player's arm - the player's hand is part of the weapon model. The keyframes that animate the external models are listed in the player's puppet file. FireProjectile() and PlayMode() are usually used to play these.

The 3do files for the weapon models are stored inside the Res2 gob in a 3do directory. There are usually three models for each gun. In the case of the bryar, the three are: bryg.3do, bryp.3do, and bryv.3do. They are used for the external weapon mesh, the gun's powerup, and the internal weapon model respectively.

Selection Modes

ModePurpose
-1Player is mounting the weapon.
0Next / Prev Weapon keys query the weapon.
1A miscellanious cog has queried for the best weapon.
2A powerup cog has queried for the best weapon.

These modes become the senderref of the autoselect message. Some weapons' autoselect messages use these modes to determine if they should return -1 or a priority number.

Armed Modes

ModeUse for:
0Fists and detonators.
1Aimed weapons.
2The lightsaber.

When the player is not in water, JK uses the Armed Mode as the player's Puppet Mode. And when the player enters water, JK adds three to the Armed Mode for the Puppet Mode. This Puppet Mode (AKA "Major Mode") is returned by GetMajorMode().

Weapon Priorities

These are the priority numbers that the original weapon cogs return in their autoselect messages when they are selectable.

NumberWeapon
100Fists.
200Lightsaber.
300Sequencer Charges.
400Thermal Detonators.
500Bryar.
600Stormtrooper Rifle.
700Crossbow.
800Repeater.
900Rail Detonator.
1000Concussion Rifle.