diff options
Diffstat (limited to 'src/botlib/be_aas_def.h')
-rw-r--r-- | src/botlib/be_aas_def.h | 307 |
1 files changed, 0 insertions, 307 deletions
diff --git a/src/botlib/be_aas_def.h b/src/botlib/be_aas_def.h deleted file mode 100644 index a0558b58..00000000 --- a/src/botlib/be_aas_def.h +++ /dev/null @@ -1,307 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. -Copyright (C) 2000-2006 Tim Angus - -This file is part of Tremulous. - -Tremulous 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. - -Tremulous 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 Tremulous; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ - -/***************************************************************************** - * name: be_aas_def.h - * - * desc: AAS - * - * $Archive: /source/code/botlib/be_aas_def.h $ - * - *****************************************************************************/ - -//debugging on -#define AAS_DEBUG - -#define MAX_CLIENTS 64 -#define MAX_MODELS 256 // these are sent over the net as 8 bits -#define MAX_SOUNDS 256 // so they cannot be blindly increased -#define MAX_CONFIGSTRINGS 1024 - -#define CS_SCORES 32 -#define CS_MODELS (CS_SCORES+MAX_CLIENTS) -#define CS_SOUNDS (CS_MODELS+MAX_MODELS) - -#define DF_AASENTNUMBER(x) (x - aasworld.entities) -#define DF_NUMBERAASENT(x) (&aasworld.entities[x]) -#define DF_AASENTCLIENT(x) (x - aasworld.entities - 1) -#define DF_CLIENTAASENT(x) (&aasworld.entities[x + 1]) - -#ifndef MAX_PATH - #define MAX_PATH MAX_QPATH -#endif - -//string index (for model, sound and image index) -typedef struct aas_stringindex_s -{ - int numindexes; - char **index; -} aas_stringindex_t; - -//structure to link entities to areas and areas to entities -typedef struct aas_link_s -{ - int entnum; - int areanum; - struct aas_link_s *next_ent, *prev_ent; - struct aas_link_s *next_area, *prev_area; -} aas_link_t; - -//structure to link entities to leaves and leaves to entities -typedef struct bsp_link_s -{ - int entnum; - int leafnum; - struct bsp_link_s *next_ent, *prev_ent; - struct bsp_link_s *next_leaf, *prev_leaf; -} bsp_link_t; - -typedef struct bsp_entdata_s -{ - vec3_t origin; - vec3_t angles; - vec3_t absmins; - vec3_t absmaxs; - int solid; - int modelnum; -} bsp_entdata_t; - -//entity -typedef struct aas_entity_s -{ - //entity info - aas_entityinfo_t i; - //links into the AAS areas - aas_link_t *areas; - //links into the BSP leaves - bsp_link_t *leaves; -} aas_entity_t; - -typedef struct aas_settings_s -{ - vec3_t phys_gravitydirection; - float phys_friction; - float phys_stopspeed; - float phys_gravity; - float phys_waterfriction; - float phys_watergravity; - float phys_maxvelocity; - float phys_maxwalkvelocity; - float phys_maxcrouchvelocity; - float phys_maxswimvelocity; - float phys_walkaccelerate; - float phys_airaccelerate; - float phys_swimaccelerate; - float phys_maxstep; - float phys_maxsteepness; - float phys_maxwaterjump; - float phys_maxbarrier; - float phys_jumpvel; - float phys_falldelta5; - float phys_falldelta10; - float rs_waterjump; - float rs_teleport; - float rs_barrierjump; - float rs_startcrouch; - float rs_startgrapple; - float rs_startwalkoffledge; - float rs_startjump; - float rs_rocketjump; - float rs_bfgjump; - float rs_jumppad; - float rs_aircontrolledjumppad; - float rs_funcbob; - float rs_startelevator; - float rs_falldamage5; - float rs_falldamage10; - float rs_maxfallheight; - float rs_maxjumpfallheight; -} aas_settings_t; - -#define CACHETYPE_PORTAL 0 -#define CACHETYPE_AREA 1 - -//routing cache -typedef struct aas_routingcache_s -{ - byte type; //portal or area cache - float time; //last time accessed or updated - int size; //size of the routing cache - int cluster; //cluster the cache is for - int areanum; //area the cache is created for - vec3_t origin; //origin within the area - float starttraveltime; //travel time to start with - int travelflags; //combinations of the travel flags - struct aas_routingcache_s *prev, *next; - struct aas_routingcache_s *time_prev, *time_next; - unsigned char *reachabilities; //reachabilities used for routing - unsigned short int traveltimes[1]; //travel time for every area (variable sized) -} aas_routingcache_t; - -//fields for the routing algorithm -typedef struct aas_routingupdate_s -{ - int cluster; - int areanum; //area number of the update - vec3_t start; //start point the area was entered - unsigned short int tmptraveltime; //temporary travel time - unsigned short int *areatraveltimes; //travel times within the area - qboolean inlist; //true if the update is in the list - struct aas_routingupdate_s *next; - struct aas_routingupdate_s *prev; -} aas_routingupdate_t; - -//reversed reachability link -typedef struct aas_reversedlink_s -{ - int linknum; //the aas_areareachability_t - int areanum; //reachable from this area - struct aas_reversedlink_s *next; //next link -} aas_reversedlink_t; - -//reversed area reachability -typedef struct aas_reversedreachability_s -{ - int numlinks; - aas_reversedlink_t *first; -} aas_reversedreachability_t; - -//areas a reachability goes through -typedef struct aas_reachabilityareas_s -{ - int firstarea, numareas; -} aas_reachabilityareas_t; - -typedef struct aas_s -{ - int loaded; //true when an AAS file is loaded - int initialized; //true when AAS has been initialized - int savefile; //set true when file should be saved - int bspchecksum; - //current time - float time; - int numframes; - //name of the aas file - char filename[MAX_PATH]; - char mapname[MAX_PATH]; - //bounding boxes - int numbboxes; - aas_bbox_t *bboxes; - //vertexes - int numvertexes; - aas_vertex_t *vertexes; - //planes - int numplanes; - aas_plane_t *planes; - //edges - int numedges; - aas_edge_t *edges; - //edge index - int edgeindexsize; - aas_edgeindex_t *edgeindex; - //faces - int numfaces; - aas_face_t *faces; - //face index - int faceindexsize; - aas_faceindex_t *faceindex; - //convex areas - int numareas; - aas_area_t *areas; - //convex area settings - int numareasettings; - aas_areasettings_t *areasettings; - //reachablity list - int reachabilitysize; - aas_reachability_t *reachability; - //nodes of the bsp tree - int numnodes; - aas_node_t *nodes; - //cluster portals - int numportals; - aas_portal_t *portals; - //cluster portal index - int portalindexsize; - aas_portalindex_t *portalindex; - //clusters - int numclusters; - aas_cluster_t *clusters; - // - int numreachabilityareas; - float reachabilitytime; - //enities linked in the areas - aas_link_t *linkheap; //heap with link structures - int linkheapsize; //size of the link heap - aas_link_t *freelinks; //first free link - aas_link_t **arealinkedentities; //entities linked into areas - //entities - int maxentities; - int maxclients; - aas_entity_t *entities; - //string indexes - char *configstrings[MAX_CONFIGSTRINGS]; - int indexessetup; - //index to retrieve travel flag for a travel type - int travelflagfortype[MAX_TRAVELTYPES]; - //travel flags for each area based on contents - int *areacontentstravelflags; - //routing update - aas_routingupdate_t *areaupdate; - aas_routingupdate_t *portalupdate; - //number of routing updates during a frame (reset every frame) - int frameroutingupdates; - //reversed reachability links - aas_reversedreachability_t *reversedreachability; - //travel times within the areas - unsigned short ***areatraveltimes; - //array of size numclusters with cluster cache - aas_routingcache_t ***clusterareacache; - aas_routingcache_t **portalcache; - //cache list sorted on time - aas_routingcache_t *oldestcache; // start of cache list sorted on time - aas_routingcache_t *newestcache; // end of cache list sorted on time - //maximum travel time through portal areas - int *portalmaxtraveltimes; - //areas the reachabilities go through - int *reachabilityareaindex; - aas_reachabilityareas_t *reachabilityareas; -} aas_t; - -#define AASINTERN - -#ifndef BSPCINCLUDE - -#include "be_aas_main.h" -#include "be_aas_entity.h" -#include "be_aas_sample.h" -#include "be_aas_cluster.h" -#include "be_aas_reach.h" -#include "be_aas_route.h" -#include "be_aas_routealt.h" -#include "be_aas_debug.h" -#include "be_aas_file.h" -#include "be_aas_optimize.h" -#include "be_aas_bsp.h" -#include "be_aas_move.h" - -#endif //BSPCINCLUDE |