Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

botlib.h

Go to the documentation of this file.
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:        botlib.h
00025  *
00026  * desc:        bot AI library
00027  *
00028  * $Archive: /source/code/game/botai.h $
00029  *
00030  *****************************************************************************/
00031 
00032 #define BOTLIB_API_VERSION      2
00033 
00034 struct aas_clientmove_s;
00035 struct aas_entityinfo_s;
00036 struct aas_areainfo_s;
00037 struct aas_altroutegoal_s;
00038 struct aas_predictroute_s;
00039 struct bot_consolemessage_s;
00040 struct bot_match_s;
00041 struct bot_goal_s;
00042 struct bot_moveresult_s;
00043 struct bot_initmove_s;
00044 struct weaponinfo_s;
00045 
00046 #define BOTFILESBASEFOLDER      "botfiles"
00047 //debug line colors
00048 #define LINECOLOR_NONE          -1
00049 #define LINECOLOR_RED           1//0xf2f2f0f0L
00050 #define LINECOLOR_GREEN         2//0xd0d1d2d3L
00051 #define LINECOLOR_BLUE          3//0xf3f3f1f1L
00052 #define LINECOLOR_YELLOW        4//0xdcdddedfL
00053 #define LINECOLOR_ORANGE        5//0xe0e1e2e3L
00054 
00055 //Print types
00056 #define PRT_MESSAGE             1
00057 #define PRT_WARNING             2
00058 #define PRT_ERROR               3
00059 #define PRT_FATAL               4
00060 #define PRT_EXIT                5
00061 
00062 //console message types
00063 #define CMS_NORMAL              0
00064 #define CMS_CHAT                1
00065 
00066 //botlib error codes
00067 #define BLERR_NOERROR                   0   //no error
00068 #define BLERR_LIBRARYNOTSETUP           1   //library not setup
00069 #define BLERR_INVALIDENTITYNUMBER       2   //invalid entity number
00070 #define BLERR_NOAASFILE                 3   //no AAS file available
00071 #define BLERR_CANNOTOPENAASFILE         4   //cannot open AAS file
00072 #define BLERR_WRONGAASFILEID            5   //incorrect AAS file id
00073 #define BLERR_WRONGAASFILEVERSION       6   //incorrect AAS file version
00074 #define BLERR_CANNOTREADAASLUMP         7   //cannot read AAS file lump
00075 #define BLERR_CANNOTLOADICHAT           8   //cannot load initial chats
00076 #define BLERR_CANNOTLOADITEMWEIGHTS     9   //cannot load item weights
00077 #define BLERR_CANNOTLOADITEMCONFIG      10  //cannot load item config
00078 #define BLERR_CANNOTLOADWEAPONWEIGHTS   11  //cannot load weapon weights
00079 #define BLERR_CANNOTLOADWEAPONCONFIG    12  //cannot load weapon config
00080 
00081 //action flags
00082 #define ACTION_ATTACK           0x0000001
00083 #define ACTION_USE              0x0000002
00084 #define ACTION_RESPAWN          0x0000008
00085 #define ACTION_JUMP             0x0000010
00086 #define ACTION_MOVEUP           0x0000020
00087 #define ACTION_CROUCH           0x0000080
00088 #define ACTION_MOVEDOWN         0x0000100
00089 #define ACTION_MOVEFORWARD      0x0000200
00090 #define ACTION_MOVEBACK         0x0000800
00091 #define ACTION_MOVELEFT         0x0001000
00092 #define ACTION_MOVERIGHT        0x0002000
00093 #define ACTION_DELAYEDJUMP      0x0008000
00094 #define ACTION_TALK             0x0010000
00095 #define ACTION_GESTURE          0x0020000
00096 #define ACTION_WALK             0x0080000
00097 #define ACTION_AFFIRMATIVE      0x0100000
00098 #define ACTION_NEGATIVE         0x0200000
00099 #define ACTION_GETFLAG          0x0800000
00100 #define ACTION_GUARDBASE        0x1000000
00101 #define ACTION_PATROL           0x2000000
00102 #define ACTION_FOLLOWME         0x8000000
00103 
00104 //the bot input, will be converted to an usercmd_t
00105 typedef struct bot_input_s
00106 {
00107     float thinktime;        //time since last output (in seconds)
00108     vec3_t dir;             //movement direction
00109     float speed;            //speed in the range [0, 400]
00110     vec3_t viewangles;      //the view angles
00111     int actionflags;        //one of the ACTION_? flags
00112     int weapon;             //weapon to use
00113 } bot_input_t;
00114 
00115 #ifndef BSPTRACE
00116 
00117 #define BSPTRACE
00118 
00119 //bsp_trace_t hit surface
00120 typedef struct bsp_surface_s
00121 {
00122     char name[16];
00123     int flags;
00124     int value;
00125 } bsp_surface_t;
00126 
00127 //remove the bsp_trace_s structure definition l8r on
00128 //a trace is returned when a box is swept through the world
00129 typedef struct bsp_trace_s
00130 {
00131     qboolean        allsolid;   // if true, plane is not valid
00132     qboolean        startsolid; // if true, the initial point was in a solid area
00133     float           fraction;   // time completed, 1.0 = didn't hit anything
00134     vec3_t          endpos;     // final position
00135     cplane_t        plane;      // surface normal at impact
00136     float           exp_dist;   // expanded plane distance
00137     int             sidenum;    // number of the brush side hit
00138     bsp_surface_t   surface;    // the hit point surface
00139     int             contents;   // contents on other side of surface hit
00140     int             ent;        // number of entity hit
00141 } bsp_trace_t;
00142 
00143 #endif  // BSPTRACE
00144 
00145 //entity state
00146 typedef struct bot_entitystate_s
00147 {
00148     int     type;           // entity type
00149     int     flags;          // entity flags
00150     vec3_t  origin;         // origin of the entity
00151     vec3_t  angles;         // angles of the model
00152     vec3_t  old_origin;     // for lerping
00153     vec3_t  mins;           // bounding box minimums
00154     vec3_t  maxs;           // bounding box maximums
00155     int     groundent;      // ground entity
00156     int     solid;          // solid type
00157     int     modelindex;     // model used
00158     int     modelindex2;    // weapons, CTF flags, etc
00159     int     frame;          // model frame number
00160     int     event;          // impulse events -- muzzle flashes, footsteps, etc
00161     int     eventParm;      // even parameter
00162     int     powerups;       // bit flags
00163     int     weapon;         // determines weapon and flash model, etc
00164     int     legsAnim;       // mask off ANIM_TOGGLEBIT
00165     int     torsoAnim;      // mask off ANIM_TOGGLEBIT
00166 } bot_entitystate_t;
00167 
00168 //bot AI library exported functions
00169 typedef struct botlib_import_s
00170 {
00171     //print messages from the bot library
00172     void        (QDECL *Print)(int type, char *fmt, ...);
00173     //trace a bbox through the world
00174     void        (*Trace)(bsp_trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int passent, int contentmask);
00175     //trace a bbox against a specific entity
00176     void        (*EntityTrace)(bsp_trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int entnum, int contentmask);
00177     //retrieve the contents at the given point
00178     int         (*PointContents)(vec3_t point);
00179     //check if the point is in potential visible sight
00180     int         (*inPVS)(vec3_t p1, vec3_t p2);
00181     //retrieve the BSP entity data lump
00182     char        *(*BSPEntityData)(void);
00183     //
00184     void        (*BSPModelMinsMaxsOrigin)(int modelnum, vec3_t angles, vec3_t mins, vec3_t maxs, vec3_t origin);
00185     //send a bot client command
00186     void        (*BotClientCommand)(int client, char *command);
00187     //memory allocation
00188     void        *(*GetMemory)(int size);        // allocate from Zone
00189     void        (*FreeMemory)(void *ptr);       // free memory from Zone
00190     int         (*AvailableMemory)(void);       // available Zone memory
00191     void        *(*HunkAlloc)(int size);        // allocate from hunk
00192     //file system access
00193     int         (*FS_FOpenFile)( const char *qpath, fileHandle_t *file, fsMode_t mode );
00194     int         (*FS_Read)( void *buffer, int len, fileHandle_t f );
00195     int         (*FS_Write)( const void *buffer, int len, fileHandle_t f );
00196     void        (*FS_FCloseFile)( fileHandle_t f );
00197     int         (*FS_Seek)( fileHandle_t f, long offset, int origin );
00198     //debug visualisation stuff
00199     int         (*DebugLineCreate)(void);
00200     void        (*DebugLineDelete)(int line);
00201     void        (*DebugLineShow)(int line, vec3_t start, vec3_t end, int color);
00202     //
00203     int         (*DebugPolygonCreate)(int color, int numPoints, vec3_t *points);
00204     void        (*DebugPolygonDelete)(int id);
00205 } botlib_import_t;
00206 
00207 typedef struct aas_export_s
00208 {
00209     //-----------------------------------
00210     // be_aas_entity.h
00211     //-----------------------------------
00212     void        (*AAS_EntityInfo)(int entnum, struct aas_entityinfo_s *info);
00213     //-----------------------------------
00214     // be_aas_main.h
00215     //-----------------------------------
00216     int         (*AAS_Initialized)(void);
00217     void        (*AAS_PresenceTypeBoundingBox)(int presencetype, vec3_t mins, vec3_t maxs);
00218     float       (*AAS_Time)(void);
00219     //--------------------------------------------
00220     // be_aas_sample.c
00221     //--------------------------------------------
00222     int         (*AAS_PointAreaNum)(vec3_t point);
00223     int         (*AAS_PointReachabilityAreaIndex)( vec3_t point );
00224     int         (*AAS_TraceAreas)(vec3_t start, vec3_t end, int *areas, vec3_t *points, int maxareas);
00225     int         (*AAS_BBoxAreas)(vec3_t absmins, vec3_t absmaxs, int *areas, int maxareas);
00226     int         (*AAS_AreaInfo)( int areanum, struct aas_areainfo_s *info );
00227     //--------------------------------------------
00228     // be_aas_bspq3.c
00229     //--------------------------------------------
00230     int         (*AAS_PointContents)(vec3_t point);
00231     int         (*AAS_NextBSPEntity)(int ent);
00232     int         (*AAS_ValueForBSPEpairKey)(int ent, char *key, char *value, int size);
00233     int         (*AAS_VectorForBSPEpairKey)(int ent, char *key, vec3_t v);
00234     int         (*AAS_FloatForBSPEpairKey)(int ent, char *key, float *value);
00235     int         (*AAS_IntForBSPEpairKey)(int ent, char *key, int *value);
00236     //--------------------------------------------
00237     // be_aas_reach.c
00238     //--------------------------------------------
00239     int         (*AAS_AreaReachability)(int areanum);
00240     //--------------------------------------------
00241     // be_aas_route.c
00242     //--------------------------------------------
00243     int         (*AAS_AreaTravelTimeToGoalArea)(int areanum, vec3_t origin, int goalareanum, int travelflags);
00244     int         (*AAS_EnableRoutingArea)(int areanum, int enable);
00245     int         (*AAS_PredictRoute)(struct aas_predictroute_s *route, int areanum, vec3_t origin,
00246                             int goalareanum, int travelflags, int maxareas, int maxtime,
00247                             int stopevent, int stopcontents, int stoptfl, int stopareanum);
00248     //--------------------------------------------
00249     // be_aas_altroute.c
00250     //--------------------------------------------
00251     int         (*AAS_AlternativeRouteGoals)(vec3_t start, int startareanum, vec3_t goal, int goalareanum, int travelflags,
00252                                         struct aas_altroutegoal_s *altroutegoals, int maxaltroutegoals,
00253                                         int type);
00254     //--------------------------------------------
00255     // be_aas_move.c
00256     //--------------------------------------------
00257     int         (*AAS_Swimming)(vec3_t origin);
00258     int         (*AAS_PredictClientMovement)(struct aas_clientmove_s *move,
00259                                             int entnum, vec3_t origin,
00260                                             int presencetype, int onground,
00261                                             vec3_t velocity, vec3_t cmdmove,
00262                                             int cmdframes,
00263                                             int maxframes, float frametime,
00264                                             int stopevent, int stopareanum, int visualize);
00265 } aas_export_t;
00266 
00267 typedef struct ea_export_s
00268 {
00269     //ClientCommand elementary actions
00270     void    (*EA_Command)(int client, char *command );
00271     void    (*EA_Say)(int client, char *str);
00272     void    (*EA_SayTeam)(int client, char *str);
00273     //
00274     void    (*EA_Action)(int client, int action);
00275     void    (*EA_Gesture)(int client);
00276     void    (*EA_Talk)(int client);
00277     void    (*EA_Attack)(int client);
00278     void    (*EA_Use)(int client);
00279     void    (*EA_Respawn)(int client);
00280     void    (*EA_MoveUp)(int client);
00281     void    (*EA_MoveDown)(int client);
00282     void    (*EA_MoveForward)(int client);
00283     void    (*EA_MoveBack)(int client);
00284     void    (*EA_MoveLeft)(int client);
00285     void    (*EA_MoveRight)(int client);
00286     void    (*EA_Crouch)(int client);
00287 
00288     void    (*EA_SelectWeapon)(int client, int weapon);
00289     void    (*EA_Jump)(int client);
00290     void    (*EA_DelayedJump)(int client);
00291     void    (*EA_Move)(int client, vec3_t dir, float speed);
00292     void    (*EA_View)(int client, vec3_t viewangles);
00293     //send regular input to the server
00294     void    (*EA_EndRegular)(int client, float thinktime);
00295     void    (*EA_GetInput)(int client, float thinktime, bot_input_t *input);
00296     void    (*EA_ResetInput)(int client);
00297 } ea_export_t;
00298 
00299 typedef struct ai_export_s
00300 {
00301     //-----------------------------------
00302     // be_ai_char.h
00303     //-----------------------------------
00304     int     (*BotLoadCharacter)(char *charfile, float skill);
00305     void    (*BotFreeCharacter)(int character);
00306     float   (*Characteristic_Float)(int character, int index);
00307     float   (*Characteristic_BFloat)(int character, int index, float min, float max);
00308     int     (*Characteristic_Integer)(int character, int index);
00309     int     (*Characteristic_BInteger)(int character, int index, int min, int max);
00310     void    (*Characteristic_String)(int character, int index, char *buf, int size);
00311     //-----------------------------------
00312     // be_ai_chat.h
00313     //-----------------------------------
00314     int     (*BotAllocChatState)(void);
00315     void    (*BotFreeChatState)(int handle);
00316     void    (*BotQueueConsoleMessage)(int chatstate, int type, char *message);
00317     void    (*BotRemoveConsoleMessage)(int chatstate, int handle);
00318     int     (*BotNextConsoleMessage)(int chatstate, struct bot_consolemessage_s *cm);
00319     int     (*BotNumConsoleMessages)(int chatstate);
00320     void    (*BotInitialChat)(int chatstate, char *type, int mcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7);
00321     int     (*BotNumInitialChats)(int chatstate, char *type);
00322     int     (*BotReplyChat)(int chatstate, char *message, int mcontext, int vcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7);
00323     int     (*BotChatLength)(int chatstate);
00324     void    (*BotEnterChat)(int chatstate, int client, int sendto);
00325     void    (*BotGetChatMessage)(int chatstate, char *buf, int size);
00326     int     (*StringContains)(char *str1, char *str2, int casesensitive);
00327     int     (*BotFindMatch)(char *str, struct bot_match_s *match, unsigned long int context);
00328     void    (*BotMatchVariable)(struct bot_match_s *match, int variable, char *buf, int size);
00329     void    (*UnifyWhiteSpaces)(char *string);
00330     void    (*BotReplaceSynonyms)(char *string, unsigned long int context);
00331     int     (*BotLoadChatFile)(int chatstate, char *chatfile, char *chatname);
00332     void    (*BotSetChatGender)(int chatstate, int gender);
00333     void    (*BotSetChatName)(int chatstate, char *name, int client);
00334     //-----------------------------------
00335     // be_ai_goal.h
00336     //-----------------------------------
00337     void    (*BotResetGoalState)(int goalstate);
00338     void    (*BotResetAvoidGoals)(int goalstate);
00339     void    (*BotRemoveFromAvoidGoals)(int goalstate, int number);
00340     void    (*BotPushGoal)(int goalstate, struct bot_goal_s *goal);
00341     void    (*BotPopGoal)(int goalstate);
00342     void    (*BotEmptyGoalStack)(int goalstate);
00343     void    (*BotDumpAvoidGoals)(int goalstate);
00344     void    (*BotDumpGoalStack)(int goalstate);
00345     void    (*BotGoalName)(int number, char *name, int size);
00346     int     (*BotGetTopGoal)(int goalstate, struct bot_goal_s *goal);
00347     int     (*BotGetSecondGoal)(int goalstate, struct bot_goal_s *goal);
00348     int     (*BotChooseLTGItem)(int goalstate, vec3_t origin, int *inventory, int travelflags);
00349     int     (*BotChooseNBGItem)(int goalstate, vec3_t origin, int *inventory, int travelflags,
00350                                 struct bot_goal_s *ltg, float maxtime);
00351     int     (*BotTouchingGoal)(vec3_t origin, struct bot_goal_s *goal);
00352     int     (*BotItemGoalInVisButNotVisible)(int viewer, vec3_t eye, vec3_t viewangles, struct bot_goal_s *goal);
00353     int     (*BotGetLevelItemGoal)(int index, char *classname, struct bot_goal_s *goal);
00354     int     (*BotGetNextCampSpotGoal)(int num, struct bot_goal_s *goal);
00355     int     (*BotGetMapLocationGoal)(char *name, struct bot_goal_s *goal);
00356     float   (*BotAvoidGoalTime)(int goalstate, int number);
00357     void    (*BotSetAvoidGoalTime)(int goalstate, int number, float avoidtime);
00358     void    (*BotInitLevelItems)(void);
00359     void    (*BotUpdateEntityItems)(void);
00360     int     (*BotLoadItemWeights)(int goalstate, char *filename);
00361     void    (*BotFreeItemWeights)(int goalstate);
00362     void    (*BotInterbreedGoalFuzzyLogic)(int parent1, int parent2, int child);
00363     void    (*BotSaveGoalFuzzyLogic)(int goalstate, char *filename);
00364     void    (*BotMutateGoalFuzzyLogic)(int goalstate, float range);
00365     int     (*BotAllocGoalState)(int client);
00366     void    (*BotFreeGoalState)(int handle);
00367     //-----------------------------------
00368     // be_ai_move.h
00369     //-----------------------------------
00370     void    (*BotResetMoveState)(int movestate);
00371     void    (*BotMoveToGoal)(struct bot_moveresult_s *result, int movestate, struct bot_goal_s *goal, int travelflags);
00372     int     (*BotMoveInDirection)(int movestate, vec3_t dir, float speed, int type);
00373     void    (*BotResetAvoidReach)(int movestate);
00374     void    (*BotResetLastAvoidReach)(int movestate);
00375     int     (*BotReachabilityArea)(vec3_t origin, int testground);
00376     int     (*BotMovementViewTarget)(int movestate, struct bot_goal_s *goal, int travelflags, float lookahead, vec3_t target);
00377     int     (*BotPredictVisiblePosition)(vec3_t origin, int areanum, struct bot_goal_s *goal, int travelflags, vec3_t target);
00378     int     (*BotAllocMoveState)(void);
00379     void    (*BotFreeMoveState)(int handle);
00380     void    (*BotInitMoveState)(int handle, struct bot_initmove_s *initmove);
00381     void    (*BotAddAvoidSpot)(int movestate, vec3_t origin, float radius, int type);
00382     //-----------------------------------
00383     // be_ai_weap.h
00384     //-----------------------------------
00385     int     (*BotChooseBestFightWeapon)(int weaponstate, int *inventory);
00386     void    (*BotGetWeaponInfo)(int weaponstate, int weapon, struct weaponinfo_s *weaponinfo);
00387     int     (*BotLoadWeaponWeights)(int weaponstate, char *filename);
00388     int     (*BotAllocWeaponState)(void);
00389     void    (*BotFreeWeaponState)(int weaponstate);
00390     void    (*BotResetWeaponState)(int weaponstate);
00391     //-----------------------------------
00392     // be_ai_gen.h
00393     //-----------------------------------
00394     int     (*GeneticParentsAndChildSelection)(int numranks, float *ranks, int *parent1, int *parent2, int *child);
00395 } ai_export_t;
00396 
00397 //bot AI library imported functions
00398 typedef struct botlib_export_s
00399 {
00400     //Area Awareness System functions
00401     aas_export_t aas;
00402     //Elementary Action functions
00403     ea_export_t ea;
00404     //AI functions
00405     ai_export_t ai;
00406     //setup the bot library, returns BLERR_
00407     int (*BotLibSetup)(void);
00408     //shutdown the bot library, returns BLERR_
00409     int (*BotLibShutdown)(void);
00410     //sets a library variable returns BLERR_
00411     int (*BotLibVarSet)(char *var_name, char *value);
00412     //gets a library variable returns BLERR_
00413     int (*BotLibVarGet)(char *var_name, char *value, int size);
00414 
00415     //sets a C-like define returns BLERR_
00416     int (*PC_AddGlobalDefine)(char *string);
00417     int (*PC_LoadSourceHandle)(const char *filename);
00418     int (*PC_FreeSourceHandle)(int handle);
00419     int (*PC_ReadTokenHandle)(int handle, pc_token_t *pc_token);
00420     int (*PC_SourceFileAndLine)(int handle, char *filename, int *line);
00421 
00422     //start a frame in the bot library
00423     int (*BotLibStartFrame)(float time);
00424     //load a new map in the bot library
00425     int (*BotLibLoadMap)(const char *mapname);
00426     //entity updates
00427     int (*BotLibUpdateEntity)(int ent, bot_entitystate_t *state);
00428     //just for testing
00429     int (*Test)(int parm0, char *parm1, vec3_t parm2, vec3_t parm3);
00430 } botlib_export_t;
00431 
00432 //linking of bot library
00433 botlib_export_t *GetBotLibAPI( int apiVersion, botlib_import_t *import );
00434 
00435 /* Library variables:
00436 
00437 name:                       default:            module(s):          description:
00438 
00439 "basedir"                   ""                  l_utils.c           base directory
00440 "gamedir"                   ""                  l_utils.c           game directory
00441 "cddir"                     ""                  l_utils.c           CD directory
00442 
00443 "log"                       "0"                 l_log.c             enable/disable creating a log file
00444 "maxclients"                "4"                 be_interface.c      maximum number of clients
00445 "maxentities"               "1024"              be_interface.c      maximum number of entities
00446 "bot_developer"             "0"                 be_interface.c      bot developer mode
00447 
00448 "phys_friction"             "6"                 be_aas_move.c       ground friction
00449 "phys_stopspeed"            "100"               be_aas_move.c       stop speed
00450 "phys_gravity"              "800"               be_aas_move.c       gravity value
00451 "phys_waterfriction"        "1"                 be_aas_move.c       water friction
00452 "phys_watergravity"         "400"               be_aas_move.c       gravity in water
00453 "phys_maxvelocity"          "320"               be_aas_move.c       maximum velocity
00454 "phys_maxwalkvelocity"      "320"               be_aas_move.c       maximum walk velocity
00455 "phys_maxcrouchvelocity"    "100"               be_aas_move.c       maximum crouch velocity
00456 "phys_maxswimvelocity"      "150"               be_aas_move.c       maximum swim velocity
00457 "phys_walkaccelerate"       "10"                be_aas_move.c       walk acceleration
00458 "phys_airaccelerate"        "1"                 be_aas_move.c       air acceleration
00459 "phys_swimaccelerate"       "4"                 be_aas_move.c       swim acceleration
00460 "phys_maxstep"              "18"                be_aas_move.c       maximum step height
00461 "phys_maxsteepness"         "0.7"               be_aas_move.c       maximum floor steepness
00462 "phys_maxbarrier"           "32"                be_aas_move.c       maximum barrier height
00463 "phys_maxwaterjump"         "19"                be_aas_move.c       maximum waterjump height
00464 "phys_jumpvel"              "270"               be_aas_move.c       jump z velocity
00465 "phys_falldelta5"           "40"                be_aas_move.c
00466 "phys_falldelta10"          "60"                be_aas_move.c
00467 "rs_waterjump"              "400"               be_aas_move.c
00468 "rs_teleport"               "50"                be_aas_move.c
00469 "rs_barrierjump"            "100"               be_aas_move.c
00470 "rs_startcrouch"            "300"               be_aas_move.c
00471 "rs_startgrapple"           "500"               be_aas_move.c
00472 "rs_startwalkoffledge"      "70"                be_aas_move.c
00473 "rs_startjump"              "300"               be_aas_move.c
00474 "rs_rocketjump"             "500"               be_aas_move.c
00475 "rs_bfgjump"                "500"               be_aas_move.c
00476 "rs_jumppad"                "250"               be_aas_move.c
00477 "rs_aircontrolledjumppad"   "300"               be_aas_move.c
00478 "rs_funcbob"                "300"               be_aas_move.c
00479 "rs_startelevator"          "50"                be_aas_move.c
00480 "rs_falldamage5"            "300"               be_aas_move.c
00481 "rs_falldamage10"           "500"               be_aas_move.c
00482 "rs_maxjumpfallheight"      "450"               be_aas_move.c
00483 
00484 "max_aaslinks"              "4096"              be_aas_sample.c     maximum links in the AAS
00485 "max_routingcache"          "4096"              be_aas_route.c      maximum routing cache size in KB
00486 "forceclustering"           "0"                 be_aas_main.c       force recalculation of clusters
00487 "forcereachability"         "0"                 be_aas_main.c       force recalculation of reachabilities
00488 "forcewrite"                "0"                 be_aas_main.c       force writing of aas file
00489 "aasoptimize"               "0"                 be_aas_main.c       enable aas optimization
00490 "sv_mapChecksum"            "0"                 be_aas_main.c       BSP file checksum
00491 "bot_visualizejumppads"     "0"                 be_aas_reach.c      visualize jump pads
00492 
00493 "bot_reloadcharacters"      "0"                 -                   reload bot character files
00494 "ai_gametype"               "0"                 be_ai_goal.c        game type
00495 "droppedweight"             "1000"              be_ai_goal.c        additional dropped item weight
00496 "weapindex_rocketlauncher"  "5"                 be_ai_move.c        rl weapon index for rocket jumping
00497 "weapindex_bfg10k"          "9"                 be_ai_move.c        bfg weapon index for bfg jumping
00498 "weapindex_grapple"         "10"                be_ai_move.c        grapple weapon index for grappling
00499 "entitytypemissile"         "3"                 be_ai_move.c        ET_MISSILE
00500 "offhandgrapple"            "0"                 be_ai_move.c        enable off hand grapple hook
00501 "cmd_grappleon"             "grappleon"         be_ai_move.c        command to activate off hand grapple
00502 "cmd_grappleoff"            "grappleoff"        be_ai_move.c        command to deactivate off hand grapple
00503 "itemconfig"                "items.c"           be_ai_goal.c        item configuration file
00504 "weaponconfig"              "weapons.c"         be_ai_weap.c        weapon configuration file
00505 "synfile"                   "syn.c"             be_ai_chat.c        file with synonyms
00506 "rndfile"                   "rnd.c"             be_ai_chat.c        file with random strings
00507 "matchfile"                 "match.c"           be_ai_chat.c        file with match strings
00508 "nochat"                    "0"                 be_ai_chat.c        disable chats
00509 "max_messages"              "1024"              be_ai_chat.c        console message heap size
00510 "max_weaponinfo"            "32"                be_ai_weap.c        maximum number of weapon info
00511 "max_projectileinfo"        "32"                be_ai_weap.c        maximum number of projectile info
00512 "max_iteminfo"              "256"               be_ai_goal.c        maximum number of item info
00513 "max_levelitems"            "256"               be_ai_goal.c        maximum number of level items
00514 
00515 */
00516 

Generated on Thu Aug 25 12:37:31 2005 for Quake III Arena by  doxygen 1.3.9.1