mirror of
https://github.com/UberGames/rpgxEF.git
synced 2024-11-15 01:11:25 +00:00
a39565b783
... 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)
88 lines
2.4 KiB
C
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);
|