Weapon SwitchingWhen you attempt to fire an empty weapon, a new weapon will be selected depending on availability from the following priority list:
Whenver you run our of ammo, the game logic starts at the top of the list asking, 'Do you have this weapon with some ammo?'
The first weapon that answers 'yes' will be chosen.
So, for example, if you've been using the Chaingun and are also equipped with a Shotgun and a Railgun, running out of ammo would switch to the Railgun, not the Shotgun as it is higher on the list.
I'm sorry to report that this weapon switching priority order is hardcoded into p_weapon.c and cannot be changed without recompiling the source code.
It is also unfortunate that if you run out of ammo but have an explosive weapon (like the BFG, Rocket or Grenades) you must select these weapons manually as these weapons will never be autoselected (they're not on the list!).
Another dissappointment relating to the problem of weapon switching is the inability to manually select an empty weapon. Often, my favored weapon is empty but I know there's ammo for it just around the corner. I would wish to select the empty weapon expecting to collect the ammo in a second or so and immediately begin firing. In Quake 2, we are not allowed this feature without modifying the source code.
The combination of all of the above effects makes for a slightly frustrating weapon switching system compared to the more elegant and simple systems of id software's previous games.
With enough play-time, though, Quake2's weapon switching system will become second nature. I suspect the developers also experienced growing comfort with the system, and eventually did not detect its subtle annoyances.
Finally, note that the weapon switch will not take place until you pull the trigger in an attempt to fire an empty weapon. Some weapons (Hyperblaster, Chaingun) will allow you to hold the fire button down, spinning the barrel even after all of the rounds have been expended (although this seems to depend on which version you are running). The weapon switch will not occur until you release the trigger and attempt to fire the weapon again.