// Note that this is now included from both server and game modules, so don't include any other header files
// within this one that might break stuff...
#ifndef __WEAPONS_H__
#define __WEAPONS_H__
typedefenum//# weapon_e
{
WP_NONE,
// Player weapons
WP_SABER,// player and NPC weapon
WP_BLASTER_PISTOL,// player and NPC weapon
WP_BLASTER,// player and NPC weapon
WP_DISRUPTOR,// player and NPC weapon
WP_BOWCASTER,// NPC weapon - player can pick this up, but never starts with them
WP_REPEATER,// NPC weapon - player can pick this up, but never starts with them
WP_DEMP2,// NPC weapon - player can pick this up, but never starts with them
WP_FLECHETTE,// NPC weapon - player can pick this up, but never starts with them
WP_ROCKET_LAUNCHER,// NPC weapon - player can pick this up, but never starts with them
WP_THERMAL,// player and NPC weapon
WP_TRIP_MINE,// NPC weapon - player can pick this up, but never starts with them
WP_DET_PACK,// NPC weapon - player can pick this up, but never starts with them
WP_CONCUSSION,// NPC weapon - player can pick this up, but never starts with them
//extras
WP_MELEE,// player and NPC weapon - Any ol' melee attack
//when in atst
WP_ATST_MAIN,
WP_ATST_SIDE,
// These can never be gotten directly by the player
WP_STUN_BATON,// stupid weapon, should remove
//NPC weapons
WP_BRYAR_PISTOL,// NPC weapon - player can pick this up, but never starts with them
WP_EMPLACED_GUN,
WP_BOT_LASER,// Probe droid - Laser blast
WP_TURRET,// turret guns
WP_TIE_FIGHTER,
WP_RAPID_FIRE_CONC,
WP_JAWA,
WP_TUSKEN_RIFLE,
WP_TUSKEN_STAFF,
WP_SCEPTER,
WP_NOGHRI_STICK,
//# #eol
WP_NUM_WEAPONS
}weapon_t;
#define FIRST_WEAPON WP_SABER // this is the first weapon for next and prev weapon switching
#define MAX_PLAYER_WEAPONS WP_STUN_BATON // this is the max you can switch to and get with the give all. - FIXME: it's actually this one *minus* one... why?
// AMMO_NONE must be first and AMMO_MAX must be last, cause weapon load validates based off of these vals
typedefenum//# 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;
typedefstructweaponData_s
{
charclassname[32];// Spawning name
charweaponMdl[64];// Weapon Model
charfiringSnd[64];// Sound made when fired
charaltFiringSnd[64];// Sound made when alt-fired
// char flashSnd[64]; // Sound made by flash
// char altFlashSnd[64]; // Sound made by an alt-flash
charstopSnd[64];// Sound made when weapon stops firing
charchargeSnd[64];// sound to start when the weapon initiates the charging sequence
charaltChargeSnd[64];// alt sound to start when the weapon initiates the charging sequence
charselectSnd[64];// the sound to play when this weapon gets selected
#ifdef _IMMERSION
charfiringFrc[64];
charaltFiringFrc[64];
charstopFrc[64];
charchargeFrc[64];
charaltChargeFrc[64];
charselectFrc[64];
#endif // _IMMERSION
intammoIndex;// Index to proper ammo slot
intammoLow;// Count when ammo is low
intenergyPerShot;// Amount of energy used per shot
intfireTime;// Amount of time between firings
intrange;// Range of weapon
intaltEnergyPerShot;// Amount of energy used for alt-fire
intaltFireTime;// Amount of time between alt-firings
intaltRange;// Range of alt-fire
charweaponIcon[64];// Name of weapon icon file
intnumBarrels;// how many barrels should we expect for this weapon?
charmissileMdl[64];// Missile Model
charmissileSound[64];// Missile flight sound
floatmissileDlight;// what is says
vec3_tmissileDlightColor;// ditto
charalt_missileMdl[64];// Missile Model
charalt_missileSound[64];// Missile sound
floatalt_missileDlight;// what is says
vec3_talt_missileDlightColor;// ditto
charmissileHitSound[64];// Missile impact sound
charaltmissileHitSound[64];// alt Missile impact sound