codemp/game/botlib.h

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