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