rpgxef/code/game/be_ai_weap.h

89 lines
2.4 KiB
C
Raw Normal View History

// 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);