mirror of
https://github.com/Q3Rally-Team/q3rally.git
synced 2024-11-22 20:11:48 +00:00
0081965385
Mostly whitespace changes. No bug fixes. Q3Rally doesn't change any botlib code so revert copyright in botlib headers that use to be in the Q3 SDK game source directory. MD3_MAX_* defines (besides MD3_MAX_LOD) are not used so revert to ioq3 values.
104 lines
3.2 KiB
C
104 lines
3.2 KiB
C
/*
|
|
===========================================================================
|
|
Copyright (C) 1999-2005 Id Software, Inc.
|
|
|
|
This file is part of Quake III Arena source code.
|
|
|
|
Quake III Arena source code is free software; you can redistribute it
|
|
and/or modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the License,
|
|
or (at your option) any later version.
|
|
|
|
Quake III Arena source code is distributed in the hope that it will be
|
|
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Quake III Arena source code; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
===========================================================================
|
|
*/
|
|
//
|
|
|
|
/*****************************************************************************
|
|
* name: be_ai_weap.h
|
|
*
|
|
* desc: weapon AI
|
|
*
|
|
* $Archive: /source/code/botlib/be_ai_weap.h $
|
|
*
|
|
*****************************************************************************/
|
|
|
|
//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);
|
|
//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);
|