aboutsummaryrefslogtreecommitdiffstats
path: root/code/botlib/be_aas_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'code/botlib/be_aas_def.h')
-rwxr-xr-xcode/botlib/be_aas_def.h612
1 files changed, 306 insertions, 306 deletions
diff --git a/code/botlib/be_aas_def.h b/code/botlib/be_aas_def.h
index 22ebbc5..72bb3e6 100755
--- a/code/botlib/be_aas_def.h
+++ b/code/botlib/be_aas_def.h
@@ -1,306 +1,306 @@
-/*
-===========================================================================
-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 Foobar; 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
+/*
+===========================================================================
+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 Foobar; 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