Before you say "you can't do that!", let me tell you my idea.
Now, as far as I can tell, MAX_WEAPONS is only used once in q_shared.h (and so only used this once between mod and engine), and that's for defining the size of the ammo array in playerState_s. If I instead set this to 19 (value of MAX_WEAPONS), I'm free to change MAX_WEAPONS.
To overcome the problem of the game referencing ammo with an index of greater than 18, I thought of using the low and high 16-bits of each index to store the amount of ammo, i.e. for a given array element, the lower 16 bits will hold the amount of ammo for one weapon, and the higher 16 bits for a second weapon.
I can replace all references to ammo with a function to correctly set/get the required ammo index. And then there's the problem of ps.stats[STAT_WEAPON] only being a 16-bit field (at least that's what it says in the code...). I can simply replace this with one of the userInts provided. There will still be a limited number of weapons I can have (32), but that should be more than enough.
Do these changes sound okay?
Last edited by XycaleTh; 02-15-2009 at 08:54 AM.