00001 /* 00002 =========================================================================== 00003 Copyright (C) 1999-2005 Id Software, Inc. 00004 00005 This file is part of Quake III Arena source code. 00006 00007 Quake III Arena source code is free software; you can redistribute it 00008 and/or modify it under the terms of the GNU General Public License as 00009 published by the Free Software Foundation; either version 2 of the License, 00010 or (at your option) any later version. 00011 00012 Quake III Arena source code is distributed in the hope that it will be 00013 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with Foobar; if not, write to the Free Software 00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 =========================================================================== 00021 */ 00022 00023 /***************************************************************************** 00024 * name: be_aas_bsp.h 00025 * 00026 * desc: AAS 00027 * 00028 * $Archive: /source/code/botlib/be_aas_bsp.h $ 00029 * 00030 *****************************************************************************/ 00031 00032 #ifdef AASINTERN 00033 //loads the given BSP file 00034 int AAS_LoadBSPFile(void); 00035 //dump the loaded BSP data 00036 void AAS_DumpBSPData(void); 00037 //unlink the given entity from the bsp tree leaves 00038 void AAS_UnlinkFromBSPLeaves(bsp_link_t *leaves); 00039 //link the given entity to the bsp tree leaves of the given model 00040 bsp_link_t *AAS_BSPLinkEntity(vec3_t absmins, 00041 vec3_t absmaxs, 00042 int entnum, 00043 int modelnum); 00044 00045 //calculates collision with given entity 00046 qboolean AAS_EntityCollision(int entnum, 00047 vec3_t start, 00048 vec3_t boxmins, 00049 vec3_t boxmaxs, 00050 vec3_t end, 00051 int contentmask, 00052 bsp_trace_t *trace); 00053 //for debugging 00054 void AAS_PrintFreeBSPLinks(char *str); 00055 // 00056 #endif //AASINTERN 00057 00058 #define MAX_EPAIRKEY 128 00059 00060 //trace through the world 00061 bsp_trace_t AAS_Trace( vec3_t start, 00062 vec3_t mins, 00063 vec3_t maxs, 00064 vec3_t end, 00065 int passent, 00066 int contentmask); 00067 //returns the contents at the given point 00068 int AAS_PointContents(vec3_t point); 00069 //returns true when p2 is in the PVS of p1 00070 qboolean AAS_inPVS(vec3_t p1, vec3_t p2); 00071 //returns true when p2 is in the PHS of p1 00072 qboolean AAS_inPHS(vec3_t p1, vec3_t p2); 00073 //returns true if the given areas are connected 00074 qboolean AAS_AreasConnected(int area1, int area2); 00075 //creates a list with entities totally or partly within the given box 00076 int AAS_BoxEntities(vec3_t absmins, vec3_t absmaxs, int *list, int maxcount); 00077 //gets the mins, maxs and origin of a BSP model 00078 void AAS_BSPModelMinsMaxsOrigin(int modelnum, vec3_t angles, vec3_t mins, vec3_t maxs, vec3_t origin); 00079 //handle to the next bsp entity 00080 int AAS_NextBSPEntity(int ent); 00081 //return the value of the BSP epair key 00082 int AAS_ValueForBSPEpairKey(int ent, char *key, char *value, int size); 00083 //get a vector for the BSP epair key 00084 int AAS_VectorForBSPEpairKey(int ent, char *key, vec3_t v); 00085 //get a float for the BSP epair key 00086 int AAS_FloatForBSPEpairKey(int ent, char *key, float *value); 00087 //get an integer for the BSP epair key 00088 int AAS_IntForBSPEpairKey(int ent, char *key, int *value); 00089
1.3.9.1