rpgxef/code/game/be_ai_weap.h
Walter Julius Hennecke a39565b783 Integrated RPG-X2 rpgxEF edition into the rpgxEF repo
... not quite content with where the project files lie but it is ok for
now.
... compiling works fine so far (only tested mingw32 right now)
2012-08-04 12:54:37 +02:00

88 lines
2.4 KiB
C

// Copyright (C) 1999-2000 Id Software, Inc.
//
/*****************************************************************************
* name: be_ai_weap.h
*
* desc: weapon AI
*
* $Archive: /StarTrek/Code-DM/game/be_ai_weap.h $
* $Author: Mgummelt $
* $Revision: 2 $
* $Modtime: 3/12/01 3:08p $
* $Date: 3/12/01 4:43p $
*
*****************************************************************************/
//projectile flags
#define PFL_WINDOWDAMAGE 1 //!<projectile damages through window
#define PFL_RETURN 2 //!<set when projectile returns to owner
//weapon flags
#define WFL_FIRERELEASED 1 //!<set when projectile is fired with key-up event
//damage types
#define DAMAGETYPE_IMPACT 1 //!<damage on impact
#define DAMAGETYPE_RADIAL 2 //!<radial damage
#define DAMAGETYPE_VISIBLE 4 //!<damage to all entities visible to the projectile
typedef struct projectileinfo_s
{
char name[MAX_STRINGFIELD];
char model[MAX_STRINGFIELD];
int flags;
float gravity;
int damage;
float radius;
int visdamage;
int damagetype;
int healthinc;
float push;
float detonation;
float bounce;
float bouncefric;
float bouncestop;
} projectileinfo_t;
typedef struct weaponinfo_s
{
int valid; //!<true if the weapon info is valid
int number; //!<number of the weapon
char name[MAX_STRINGFIELD];
char model[MAX_STRINGFIELD];
int level;
int weaponindex;
int flags;
char projectile[MAX_STRINGFIELD];
int numprojectiles;
float hspread;
float vspread;
float speed;
float acceleration;
vec3_t recoil;
vec3_t offset;
vec3_t angleoffset;
float extrazvelocity;
int ammoamount;
int ammoindex;
float activate;
float reload;
float spinup;
float spindown;
projectileinfo_t proj; //!<pointer to the used projectile
} weaponinfo_t;
//!setup the weapon AI
int BotSetupWeaponAI(void);
//!shut down the weapon AI
void BotShutdownWeaponAI(void);
//!returns the best weapon to fight with
int BotChooseBestFightWeapon(int weaponstate, int *inventory, qboolean meleeRange);
//!returns the information of the current weapon
void BotGetWeaponInfo(int weaponstate, int weapon, weaponinfo_t *weaponinfo);
//!loads the weapon weights
int BotLoadWeaponWeights(int weaponstate, char *filename);
//!returns a handle to a newly allocated weapon state
int BotAllocWeaponState(void);
//!frees the weapon state
void BotFreeWeaponState(int weaponstate);
//!resets the whole weapon state
void BotResetWeaponState(int weaponstate);