jedioutcast/CODEmp/game/bg_weapons.h
2013-04-04 09:52:42 -05:00

107 lines
2.5 KiB
C

// Filename:- bg_weapons.h
//
// This crosses both client and server. It could all be crammed into bg_public, but isolation of this type of data is best.
#ifndef __WEAPONS_H__
#define __WEAPONS_H__
typedef enum {
WP_NONE,
WP_STUN_BATON,
WP_SABER, // NOTE: lots of code assumes this is the first weapon (... which is crap) so be careful -Ste.
WP_BRYAR_PISTOL,
WP_BLASTER,
WP_DISRUPTOR,
WP_BOWCASTER,
WP_REPEATER,
WP_DEMP2,
WP_FLECHETTE,
WP_ROCKET_LAUNCHER,
WP_THERMAL,
WP_TRIP_MINE,
WP_DET_PACK,
WP_EMPLACED_GUN,
WP_TURRET,
// WP_GAUNTLET,
// WP_MACHINEGUN, // Bryar
// WP_SHOTGUN, // Blaster
// WP_GRENADE_LAUNCHER, // Thermal
// WP_LIGHTNING, //
// WP_RAILGUN, //
// WP_GRAPPLING_HOOK,
WP_NUM_WEAPONS
} weapon_t;
typedef enum //# ammo_e
{
AMMO_NONE,
AMMO_FORCE, // AMMO_PHASER
AMMO_BLASTER, // AMMO_STARFLEET,
AMMO_POWERCELL, // AMMO_ALIEN,
AMMO_METAL_BOLTS,
AMMO_ROCKETS,
AMMO_EMPLACED,
AMMO_THERMAL,
AMMO_TRIPMINE,
AMMO_DETPACK,
AMMO_MAX
} ammo_t;
typedef struct weaponData_s
{
// char classname[32]; // Spawning name
int ammoIndex; // Index to proper ammo slot
int ammoLow; // Count when ammo is low
int energyPerShot; // Amount of energy used per shot
int fireTime; // Amount of time between firings
int range; // Range of weapon
int altEnergyPerShot; // Amount of energy used for alt-fire
int altFireTime; // Amount of time between alt-firings
int altRange; // Range of alt-fire
int chargeSubTime; // ms interval for subtracting ammo during charge
int altChargeSubTime; // above for secondary
int chargeSub; // amount to subtract during charge on each interval
int altChargeSub; // above for secondary
int maxCharge; // stop subtracting once charged for this many ms
int altMaxCharge; // above for secondary
} weaponData_t;
typedef struct ammoData_s
{
// char icon[32]; // Name of ammo icon file
int max; // Max amount player can hold of ammo
} ammoData_t;
extern weaponData_t weaponData[WP_NUM_WEAPONS];
extern ammoData_t ammoData[AMMO_MAX];
// Specific weapon information
#define FIRST_WEAPON WP_BRYAR_PISTOL // this is the first weapon for next and prev weapon switching
#define MAX_PLAYER_WEAPONS WP_NUM_WEAPONS-1 // this is the max you can switch to and get with the give all.
#define DEFAULT_SHOTGUN_SPREAD 700
#define DEFAULT_SHOTGUN_COUNT 11
#define LIGHTNING_RANGE 768
#endif//#ifndef __WEAPONS_H__