Your best design would be to use arrays.
Quick break down of how to use them would be like thinking through the game design.
1) How many different guns will be in the game?
2) What do you need to know about the guns
a) How many bullets can it hold (in one clip)?
b) Bullets left in active clip?
c) How many clips will you allow the player to carry?
d) Has this gun been picked up by (or available to) the player?
e, f, g, .....) You could track the each weapons range, accuracy, damage and what ever else you need but for the sake of argument I wont here and just use a,b,c and d as my tracking elements.
I would create an array for the five guns (just for reference) that I create and for each gun I will track four attributes so I will dimension an array like.
Dim Myguns(5,4)
dim UseWeapon as integer
And I will use the variable UseWeapon as the first element of my array when I need to check something.
I could also create some constants to make it easier to remember
and attach a matching number to each elemt but you can handle that yourself if you pay attention to the variable scope.
Gun 1 has a clip size of eight bullets (handgun), and the clip is missing one bullet leaving seven shells available before reloading, I can carry six clips counting the active clip and I have the gun already so if I need to make sure the select gun is available for my on screen character I would (simplified)
[/code]'I press the one key to use the handgun
if MyGun(KeyPressed,4) = 1 then
' change display of shell counter
' change display of active gun on screen
' change the variable (in my case) UseWeapon to keypress
end if
CheckActiveWeapon (KeyPressed,4)
[code]
If the return was false the active weapon is still on screen
You would also check amunition the same way just change the second element number in the array to point to the line containing active clip bullets as clips being carried.
I hope that helps a little.
Wasting CPU Cycles since the 286 was a hot machine.