OpenMoHAA 0.83.0
Loading...
Searching...
No Matches
botlib.h
1/*
2===========================================================================
3Copyright (C) 1999-2005 Id Software, Inc.
4
5This file is part of Quake III Arena source code.
6
7Quake III Arena source code is free software; you can redistribute it
8and/or modify it under the terms of the GNU General Public License as
9published by the Free Software Foundation; either version 2 of the License,
10or (at your option) any later version.
11
12Quake III Arena source code is distributed in the hope that it will be
13useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with Quake III Arena source code; if not, write to the Free Software
19Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20===========================================================================
21*/
22//
23/*****************************************************************************
24 * name: botlib.h
25 *
26 * desc: bot AI library
27 *
28 * $Archive: /source/code/game/botai.h $
29 *
30 *****************************************************************************/
31
32#define BOTLIB_API_VERSION 2
33
34struct aas_clientmove_s;
35struct aas_entityinfo_s;
36struct aas_areainfo_s;
37struct aas_altroutegoal_s;
38struct aas_predictroute_s;
39struct bot_consolemessage_s;
40struct bot_match_s;
41struct bot_goal_s;
42struct bot_moveresult_s;
43struct bot_initmove_s;
44struct weaponinfo_s;
45
46#define BOTFILESBASEFOLDER "botfiles"
47//debug line colors
48#define LINECOLOR_NONE -1
49#define LINECOLOR_RED 1//0xf2f2f0f0L
50#define LINECOLOR_GREEN 2//0xd0d1d2d3L
51#define LINECOLOR_BLUE 3//0xf3f3f1f1L
52#define LINECOLOR_YELLOW 4//0xdcdddedfL
53#define LINECOLOR_ORANGE 5//0xe0e1e2e3L
54
55//Print types
56#define PRT_MESSAGE 1
57#define PRT_WARNING 2
58#define PRT_ERROR 3
59#define PRT_FATAL 4
60#define PRT_EXIT 5
61
62//console message types
63#define CMS_NORMAL 0
64#define CMS_CHAT 1
65
66//botlib error codes
67#define BLERR_NOERROR 0 //no error
68#define BLERR_LIBRARYNOTSETUP 1 //library not setup
69#define BLERR_INVALIDENTITYNUMBER 2 //invalid entity number
70#define BLERR_NOAASFILE 3 //no AAS file available
71#define BLERR_CANNOTOPENAASFILE 4 //cannot open AAS file
72#define BLERR_WRONGAASFILEID 5 //incorrect AAS file id
73#define BLERR_WRONGAASFILEVERSION 6 //incorrect AAS file version
74#define BLERR_CANNOTREADAASLUMP 7 //cannot read AAS file lump
75#define BLERR_CANNOTLOADICHAT 8 //cannot load initial chats
76#define BLERR_CANNOTLOADITEMWEIGHTS 9 //cannot load item weights
77#define BLERR_CANNOTLOADITEMCONFIG 10 //cannot load item config
78#define BLERR_CANNOTLOADWEAPONWEIGHTS 11 //cannot load weapon weights
79#define BLERR_CANNOTLOADWEAPONCONFIG 12 //cannot load weapon config
80
81//action flags
82#define ACTION_ATTACK 0x00000001
83#define ACTION_USE 0x00000002
84#define ACTION_RESPAWN 0x00000008
85#define ACTION_JUMP 0x00000010
86#define ACTION_MOVEUP 0x00000020
87#define ACTION_CROUCH 0x00000080
88#define ACTION_MOVEDOWN 0x00000100
89#define ACTION_MOVEFORWARD 0x00000200
90#define ACTION_MOVEBACK 0x00000800
91#define ACTION_MOVELEFT 0x00001000
92#define ACTION_MOVERIGHT 0x00002000
93#define ACTION_DELAYEDJUMP 0x00008000
94#define ACTION_TALK 0x00010000
95#define ACTION_GESTURE 0x00020000
96#define ACTION_WALK 0x00080000
97#define ACTION_AFFIRMATIVE 0x00100000
98#define ACTION_NEGATIVE 0x00200000
99#define ACTION_GETFLAG 0x00800000
100#define ACTION_GUARDBASE 0x01000000
101#define ACTION_PATROL 0x02000000
102#define ACTION_FOLLOWME 0x08000000
103#define ACTION_JUMPEDLASTFRAME 0x10000000
104
105//the bot input, will be converted to a usercmd_t
106typedef struct bot_input_s
107{
108 float thinktime; //time since last output (in seconds)
109 vec3_t dir; //movement direction
110 float speed; //speed in the range [0, 400]
111 vec3_t viewangles; //the view angles
112 int actionflags; //one of the ACTION_? flags
113 int weapon; //weapon to use
114} bot_input_t;
115
116#ifndef BSPTRACE
117
118#define BSPTRACE
119
120//bsp_trace_t hit surface
121typedef struct bsp_surface_s
122{
123 char name[16];
124 int flags;
125 int value;
126} bsp_surface_t;
127
128//remove the bsp_trace_s structure definition l8r on
129//a trace is returned when a box is swept through the world
130typedef struct bsp_trace_s
131{
132 qboolean allsolid; // if true, plane is not valid
133 qboolean startsolid; // if true, the initial point was in a solid area
134 float fraction; // time completed, 1.0 = didn't hit anything
135 vec3_t endpos; // final position
136 cplane_t plane; // surface normal at impact
137 float exp_dist; // expanded plane distance
138 int sidenum; // number of the brush side hit
139 bsp_surface_t surface; // the hit point surface
140 int contents; // contents on other side of surface hit
141 int ent; // number of entity hit
142} bsp_trace_t;
143
144#endif // BSPTRACE
145
146//entity state
147typedef struct bot_entitystate_s
148{
149 int type; // entity type
150 int flags; // entity flags
151 vec3_t origin; // origin of the entity
152 vec3_t angles; // angles of the model
153 vec3_t old_origin; // for lerping
154 vec3_t mins; // bounding box minimums
155 vec3_t maxs; // bounding box maximums
156 int groundent; // ground entity
157 int solid; // solid type
158 int modelindex; // model used
159 int modelindex2; // weapons, CTF flags, etc
160 int frame; // model frame number
161 int event; // impulse events -- muzzle flashes, footsteps, etc
162 int eventParm; // even parameter
163 int powerups; // bit flags
164 int weapon; // determines weapon and flash model, etc
165 int legsAnim; // mask off ANIM_TOGGLEBIT
166 int torsoAnim; // mask off ANIM_TOGGLEBIT
167} bot_entitystate_t;
168
169//bot AI library exported functions
170typedef struct botlib_import_s
171{
172 //print messages from the bot library
173 void (QDECL *Print)(int type, char *fmt, ...) Q_PRINTF_FUNC(2, 3);
174 //trace a bbox through the world
175 void (*Trace)(bsp_trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int passent, int contentmask);
176 //trace a bbox against a specific entity
177 void (*EntityTrace)(bsp_trace_t *trace, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int entnum, int contentmask);
178 //retrieve the contents at the given point
179 int (*PointContents)(vec3_t point);
180 //check if the point is in potential visible sight
181 int (*inPVS)(vec3_t p1, vec3_t p2);
182 //retrieve the BSP entity data lump
183 char *(*BSPEntityData)(void);
184 //
185 void (*BSPModelMinsMaxsOrigin)(int modelnum, vec3_t angles, vec3_t mins, vec3_t maxs, vec3_t origin);
186 //send a bot client command
187 void (*BotClientCommand)(int client, char *command);
188 //memory allocation
189 void *(*GetMemory)(int size); // allocate from Zone
190 void (*FreeMemory)(void *ptr); // free memory from Zone
191 int (*AvailableMemory)(void); // available Zone memory
192 void *(*HunkAlloc)(int size); // allocate from hunk
193 //file system access
194 int (*FS_FOpenFile)( const char *qpath, fileHandle_t *file, fsMode_t mode );
195 int (*FS_Read)( void *buffer, int len, fileHandle_t f );
196 int (*FS_Write)( const void *buffer, int len, fileHandle_t f );
197 void (*FS_FCloseFile)( fileHandle_t f );
198 int (*FS_Seek)( fileHandle_t f, long offset, int origin );
199 //debug visualisation stuff
200 int (*DebugLineCreate)(void);
201 void (*DebugLineDelete)(int line);
202 void (*DebugLineShow)(int line, vec3_t start, vec3_t end, int color);
203 //
204 int (*DebugPolygonCreate)(int color, int numPoints, vec3_t *points);
205 void (*DebugPolygonDelete)(int id);
206} botlib_import_t;
207
208typedef struct aas_export_s
209{
210 //-----------------------------------
211 // be_aas_entity.h
212 //-----------------------------------
213 void (*AAS_EntityInfo)(int entnum, struct aas_entityinfo_s *info);
214 //-----------------------------------
215 // be_aas_main.h
216 //-----------------------------------
217 int (*AAS_Initialized)(void);
218 void (*AAS_PresenceTypeBoundingBox)(int presencetype, vec3_t mins, vec3_t maxs);
219 float (*AAS_Time)(void);
220 //--------------------------------------------
221 // be_aas_sample.c
222 //--------------------------------------------
223 int (*AAS_PointAreaNum)(vec3_t point);
224 int (*AAS_PointReachabilityAreaIndex)( vec3_t point );
225 int (*AAS_TraceAreas)(vec3_t start, vec3_t end, int *areas, vec3_t *points, int maxareas);
226 int (*AAS_BBoxAreas)(vec3_t absmins, vec3_t absmaxs, int *areas, int maxareas);
227 int (*AAS_AreaInfo)( int areanum, struct aas_areainfo_s *info );
228 //--------------------------------------------
229 // be_aas_bspq3.c
230 //--------------------------------------------
231 int (*AAS_PointContents)(vec3_t point);
232 int (*AAS_NextBSPEntity)(int ent);
233 int (*AAS_ValueForBSPEpairKey)(int ent, char *key, char *value, int size);
234 int (*AAS_VectorForBSPEpairKey)(int ent, char *key, vec3_t v);
235 int (*AAS_FloatForBSPEpairKey)(int ent, char *key, float *value);
236 int (*AAS_IntForBSPEpairKey)(int ent, char *key, int *value);
237 //--------------------------------------------
238 // be_aas_reach.c
239 //--------------------------------------------
240 int (*AAS_AreaReachability)(int areanum);
241 //--------------------------------------------
242 // be_aas_route.c
243 //--------------------------------------------
244 int (*AAS_AreaTravelTimeToGoalArea)(int areanum, vec3_t origin, int goalareanum, int travelflags);
245 int (*AAS_EnableRoutingArea)(int areanum, int enable);
246 int (*AAS_PredictRoute)(struct aas_predictroute_s *route, int areanum, vec3_t origin,
247 int goalareanum, int travelflags, int maxareas, int maxtime,
248 int stopevent, int stopcontents, int stoptfl, int stopareanum);
249 //--------------------------------------------
250 // be_aas_altroute.c
251 //--------------------------------------------
252 int (*AAS_AlternativeRouteGoals)(vec3_t start, int startareanum, vec3_t goal, int goalareanum, int travelflags,
253 struct aas_altroutegoal_s *altroutegoals, int maxaltroutegoals,
254 int type);
255 //--------------------------------------------
256 // be_aas_move.c
257 //--------------------------------------------
258 int (*AAS_Swimming)(vec3_t origin);
259 int (*AAS_PredictClientMovement)(struct aas_clientmove_s *move,
260 int entnum, vec3_t origin,
261 int presencetype, int onground,
262 vec3_t velocity, vec3_t cmdmove,
263 int cmdframes,
264 int maxframes, float frametime,
265 int stopevent, int stopareanum, int visualize);
266} aas_export_t;
267
268typedef struct ea_export_s
269{
270 //ClientCommand elementary actions
271 void (*EA_Command)(int client, char *command );
272 void (*EA_Say)(int client, char *str);
273 void (*EA_SayTeam)(int client, char *str);
274 //
275 void (*EA_Action)(int client, int action);
276 void (*EA_Gesture)(int client);
277 void (*EA_Talk)(int client);
278 void (*EA_Attack)(int client);
279 void (*EA_Use)(int client);
280 void (*EA_Respawn)(int client);
281 void (*EA_MoveUp)(int client);
282 void (*EA_MoveDown)(int client);
283 void (*EA_MoveForward)(int client);
284 void (*EA_MoveBack)(int client);
285 void (*EA_MoveLeft)(int client);
286 void (*EA_MoveRight)(int client);
287 void (*EA_Crouch)(int client);
288
289 void (*EA_SelectWeapon)(int client, int weapon);
290 void (*EA_Jump)(int client);
291 void (*EA_DelayedJump)(int client);
292 void (*EA_Move)(int client, vec3_t dir, float speed);
293 void (*EA_View)(int client, vec3_t viewangles);
294 //send regular input to the server
295 void (*EA_EndRegular)(int client, float thinktime);
296 void (*EA_GetInput)(int client, float thinktime, bot_input_t *input);
297 void (*EA_ResetInput)(int client);
298} ea_export_t;
299
300typedef struct ai_export_s
301{
302 //-----------------------------------
303 // be_ai_char.h
304 //-----------------------------------
305 int (*BotLoadCharacter)(char *charfile, float skill);
306 void (*BotFreeCharacter)(int character);
307 float (*Characteristic_Float)(int character, int index);
308 float (*Characteristic_BFloat)(int character, int index, float min, float max);
309 int (*Characteristic_Integer)(int character, int index);
310 int (*Characteristic_BInteger)(int character, int index, int min, int max);
311 void (*Characteristic_String)(int character, int index, char *buf, int size);
312 //-----------------------------------
313 // be_ai_chat.h
314 //-----------------------------------
315 int (*BotAllocChatState)(void);
316 void (*BotFreeChatState)(int handle);
317 void (*BotQueueConsoleMessage)(int chatstate, int type, char *message);
318 void (*BotRemoveConsoleMessage)(int chatstate, int handle);
319 int (*BotNextConsoleMessage)(int chatstate, struct bot_consolemessage_s *cm);
320 int (*BotNumConsoleMessages)(int chatstate);
321 void (*BotInitialChat)(int chatstate, char *type, int mcontext, char *var0, char *var1, char *var2, char *var3, char *var4, char *var5, char *var6, char *var7);
322 int (*BotNumInitialChats)(int chatstate, char *type);
323 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);
324 int (*BotChatLength)(int chatstate);
325 void (*BotEnterChat)(int chatstate, int client, int sendto);
326 void (*BotGetChatMessage)(int chatstate, char *buf, int size);
327 int (*StringContains)(char *str1, char *str2, int casesensitive);
328 int (*BotFindMatch)(char *str, struct bot_match_s *match, unsigned long int context);
329 void (*BotMatchVariable)(struct bot_match_s *match, int variable, char *buf, int size);
330 void (*UnifyWhiteSpaces)(char *string);
331 void (*BotReplaceSynonyms)(char *string, unsigned long int context);
332 int (*BotLoadChatFile)(int chatstate, char *chatfile, char *chatname);
333 void (*BotSetChatGender)(int chatstate, int gender);
334 void (*BotSetChatName)(int chatstate, char *name, int client);
335 //-----------------------------------
336 // be_ai_goal.h
337 //-----------------------------------
338 void (*BotResetGoalState)(int goalstate);
339 void (*BotResetAvoidGoals)(int goalstate);
340 void (*BotRemoveFromAvoidGoals)(int goalstate, int number);
341 void (*BotPushGoal)(int goalstate, struct bot_goal_s *goal);
342 void (*BotPopGoal)(int goalstate);
343 void (*BotEmptyGoalStack)(int goalstate);
344 void (*BotDumpAvoidGoals)(int goalstate);
345 void (*BotDumpGoalStack)(int goalstate);
346 void (*BotGoalName)(int number, char *name, int size);
347 int (*BotGetTopGoal)(int goalstate, struct bot_goal_s *goal);
348 int (*BotGetSecondGoal)(int goalstate, struct bot_goal_s *goal);
349 int (*BotChooseLTGItem)(int goalstate, vec3_t origin, int *inventory, int travelflags);
350 int (*BotChooseNBGItem)(int goalstate, vec3_t origin, int *inventory, int travelflags,
351 struct bot_goal_s *ltg, float maxtime);
352 int (*BotTouchingGoal)(vec3_t origin, struct bot_goal_s *goal);
353 int (*BotItemGoalInVisButNotVisible)(int viewer, vec3_t eye, vec3_t viewangles, struct bot_goal_s *goal);
354 int (*BotGetLevelItemGoal)(int index, char *classname, struct bot_goal_s *goal);
355 int (*BotGetNextCampSpotGoal)(int num, struct bot_goal_s *goal);
356 int (*BotGetMapLocationGoal)(char *name, struct bot_goal_s *goal);
357 float (*BotAvoidGoalTime)(int goalstate, int number);
358 void (*BotSetAvoidGoalTime)(int goalstate, int number, float avoidtime);
359 void (*BotInitLevelItems)(void);
360 void (*BotUpdateEntityItems)(void);
361 int (*BotLoadItemWeights)(int goalstate, char *filename);
362 void (*BotFreeItemWeights)(int goalstate);
363 void (*BotInterbreedGoalFuzzyLogic)(int parent1, int parent2, int child);
364 void (*BotSaveGoalFuzzyLogic)(int goalstate, char *filename);
365 void (*BotMutateGoalFuzzyLogic)(int goalstate, float range);
366 int (*BotAllocGoalState)(int client);
367 void (*BotFreeGoalState)(int handle);
368 //-----------------------------------
369 // be_ai_move.h
370 //-----------------------------------
371 void (*BotResetMoveState)(int movestate);
372 void (*BotMoveToGoal)(struct bot_moveresult_s *result, int movestate, struct bot_goal_s *goal, int travelflags);
373 int (*BotMoveInDirection)(int movestate, vec3_t dir, float speed, int type);
374 void (*BotResetAvoidReach)(int movestate);
375 void (*BotResetLastAvoidReach)(int movestate);
376 int (*BotReachabilityArea)(vec3_t origin, int testground);
377 int (*BotMovementViewTarget)(int movestate, struct bot_goal_s *goal, int travelflags, float lookahead, vec3_t target);
378 int (*BotPredictVisiblePosition)(vec3_t origin, int areanum, struct bot_goal_s *goal, int travelflags, vec3_t target);
379 int (*BotAllocMoveState)(void);
380 void (*BotFreeMoveState)(int handle);
381 void (*BotInitMoveState)(int handle, struct bot_initmove_s *initmove);
382 void (*BotAddAvoidSpot)(int movestate, vec3_t origin, float radius, int type);
383 //-----------------------------------
384 // be_ai_weap.h
385 //-----------------------------------
386 int (*BotChooseBestFightWeapon)(int weaponstate, int *inventory);
387 void (*BotGetWeaponInfo)(int weaponstate, int weapon, struct weaponinfo_s *weaponinfo);
388 int (*BotLoadWeaponWeights)(int weaponstate, char *filename);
389 int (*BotAllocWeaponState)(void);
390 void (*BotFreeWeaponState)(int weaponstate);
391 void (*BotResetWeaponState)(int weaponstate);
392 //-----------------------------------
393 // be_ai_gen.h
394 //-----------------------------------
395 int (*GeneticParentsAndChildSelection)(int numranks, float *ranks, int *parent1, int *parent2, int *child);
396} ai_export_t;
397
398//bot AI library imported functions
399typedef struct botlib_export_s
400{
401 //Area Awareness System functions
402 aas_export_t aas;
403 //Elementary Action functions
404 ea_export_t ea;
405 //AI functions
406 ai_export_t ai;
407 //setup the bot library, returns BLERR_
408 int (*BotLibSetup)(void);
409 //shutdown the bot library, returns BLERR_
410 int (*BotLibShutdown)(void);
411 //sets a library variable returns BLERR_
412 int (*BotLibVarSet)(const char *var_name, const char *value);
413 //gets a library variable returns BLERR_
414 int (*BotLibVarGet)(const char *var_name, char *value, int size);
415
416 //sets a C-like define returns BLERR_
417 int (*PC_AddGlobalDefine)(char *string);
418 int (*PC_LoadSourceHandle)(const char *filename);
419 int (*PC_FreeSourceHandle)(int handle);
420 int (*PC_ReadTokenHandle)(int handle, pc_token_t *pc_token);
421 int (*PC_SourceFileAndLine)(int handle, char *filename, int *line);
422
423 //start a frame in the bot library
424 int (*BotLibStartFrame)(float time);
425 //load a new map in the bot library
426 int (*BotLibLoadMap)(const char *mapname);
427 //entity updates
428 int (*BotLibUpdateEntity)(int ent, bot_entitystate_t *state);
429 //just for testing
430 int (*Test)(int parm0, char *parm1, vec3_t parm2, vec3_t parm3);
431} botlib_export_t;
432
433//linking of bot library
434botlib_export_t *GetBotLibAPI( int apiVersion, botlib_import_t *import );
435
436/* Library variables:
437
438name: default: module(s): description:
439
440"basedir" "" - base directory
441"gamedir" "" be_interface.c mod game directory
442"basegame" "" be_interface.c base game directory
443
444"log" "0" l_log.c enable/disable creating a log file
445"maxclients" "4" be_interface.c maximum number of clients
446"maxentities" "1024" be_interface.c maximum number of entities
447"bot_developer" "0" be_interface.c bot developer mode (it's "botDeveloper" in C to prevent symbol clash).
448
449"phys_friction" "6" be_aas_move.c ground friction
450"phys_stopspeed" "100" be_aas_move.c stop speed
451"phys_gravity" "800" be_aas_move.c gravity value
452"phys_waterfriction" "1" be_aas_move.c water friction
453"phys_watergravity" "400" be_aas_move.c gravity in water
454"phys_maxvelocity" "320" be_aas_move.c maximum velocity
455"phys_maxwalkvelocity" "320" be_aas_move.c maximum walk velocity
456"phys_maxcrouchvelocity" "100" be_aas_move.c maximum crouch velocity
457"phys_maxswimvelocity" "150" be_aas_move.c maximum swim velocity
458"phys_walkaccelerate" "10" be_aas_move.c walk acceleration
459"phys_airaccelerate" "1" be_aas_move.c air acceleration
460"phys_swimaccelerate" "4" be_aas_move.c swim acceleration
461"phys_maxstep" "18" be_aas_move.c maximum step height
462"phys_maxsteepness" "0.7" be_aas_move.c maximum floor steepness
463"phys_maxbarrier" "32" be_aas_move.c maximum barrier height
464"phys_maxwaterjump" "19" be_aas_move.c maximum waterjump height
465"phys_jumpvel" "270" be_aas_move.c jump z velocity
466"phys_falldelta5" "40" be_aas_move.c
467"phys_falldelta10" "60" be_aas_move.c
468"rs_waterjump" "400" be_aas_move.c
469"rs_teleport" "50" be_aas_move.c
470"rs_barrierjump" "100" be_aas_move.c
471"rs_startcrouch" "300" be_aas_move.c
472"rs_startgrapple" "500" be_aas_move.c
473"rs_startwalkoffledge" "70" be_aas_move.c
474"rs_startjump" "300" be_aas_move.c
475"rs_rocketjump" "500" be_aas_move.c
476"rs_bfgjump" "500" be_aas_move.c
477"rs_jumppad" "250" be_aas_move.c
478"rs_aircontrolledjumppad" "300" be_aas_move.c
479"rs_funcbob" "300" be_aas_move.c
480"rs_startelevator" "50" be_aas_move.c
481"rs_falldamage5" "300" be_aas_move.c
482"rs_falldamage10" "500" be_aas_move.c
483"rs_maxjumpfallheight" "450" be_aas_move.c
484
485"max_aaslinks" "4096" be_aas_sample.c maximum links in the AAS
486"max_routingcache" "4096" be_aas_route.c maximum routing cache size in KB
487"forceclustering" "0" be_aas_main.c force recalculation of clusters
488"forcereachability" "0" be_aas_main.c force recalculation of reachabilities
489"forcewrite" "0" be_aas_main.c force writing of aas file
490"aasoptimize" "0" be_aas_main.c enable aas optimization
491"sv_mapChecksum" "0" be_aas_main.c BSP file checksum
492"bot_visualizejumppads" "0" be_aas_reach.c visualize jump pads
493
494"bot_reloadcharacters" "0" - reload bot character files
495"ai_gametype" "0" be_ai_goal.c game type
496"droppedweight" "1000" be_ai_goal.c additional dropped item weight
497"weapindex_rocketlauncher" "5" be_ai_move.c rl weapon index for rocket jumping
498"weapindex_bfg10k" "9" be_ai_move.c bfg weapon index for bfg jumping
499"weapindex_grapple" "10" be_ai_move.c grapple weapon index for grappling
500"entitytypemissile" "3" be_ai_move.c ET_MISSILE
501"offhandgrapple" "0" be_ai_move.c enable off hand grapple hook
502"cmd_grappleon" "grappleon" be_ai_move.c command to activate off hand grapple
503"cmd_grappleoff" "grappleoff" be_ai_move.c command to deactivate off hand grapple
504"itemconfig" "items.c" be_ai_goal.c item configuration file
505"weaponconfig" "weapons.c" be_ai_weap.c weapon configuration file
506"synfile" "syn.c" be_ai_chat.c file with synonyms
507"rndfile" "rnd.c" be_ai_chat.c file with random strings
508"matchfile" "match.c" be_ai_chat.c file with match strings
509"nochat" "0" be_ai_chat.c disable chats
510"max_messages" "1024" be_ai_chat.c console message heap size
511"max_weaponinfo" "32" be_ai_weap.c maximum number of weapon info
512"max_projectileinfo" "32" be_ai_weap.c maximum number of projectile info
513"max_iteminfo" "256" be_ai_goal.c maximum number of item info
514"max_levelitems" "256" be_ai_goal.c maximum number of level items
515
516*/
517
Definition botlib.h:209
Definition botlib.h:301
Definition botlib.h:148
Definition botlib.h:107
Definition botlib.h:400
Definition botlib.h:171
Definition botlib.h:122
Definition botlib.h:131
Definition botlib.h:269
Definition puff.c:88