Changes made to id's code:

defs.qc
-- Added 3 constants and 3 player-only fields, clearly marked.

weapons.qc
-- Added an optional (currently commented-out) precache model
-- Changed W_SetCurrentAmmo to not always show weaponmodel
-- Added impulses