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

sv_game.c File Reference

#include "server.h"
#include "../game/botlib.h"

Include dependency graph for sv_game.c:

Include dependency graph

Go to the source code of this file.

Defines

#define VMA(x)   VM_ArgPtr(args[x])
#define VMF(x)   ((float *)args)[x]

Functions

int FloatAsInt (float f)
void SV_AdjustAreaPortalState (sharedEntity_t *ent, qboolean open)
qboolean SV_EntityContact (vec3_t mins, vec3_t maxs, const sharedEntity_t *gEnt, int capsule)
playerState_tSV_GameClientNum (int num)
qboolean SV_GameCommand (void)
void SV_GameDropClient (int clientNum, const char *reason)
void SV_GameError (const char *string)
void SV_GamePrint (const char *string)
void SV_GameSendServerCommand (int clientNum, const char *text)
int SV_GameSystemCalls (int *args)
sharedEntity_tSV_GEntityForSvEntity (svEntity_t *svEnt)
sharedEntity_tSV_GentityNum (int num)
void SV_GetServerinfo (char *buffer, int bufferSize)
void SV_GetUsercmd (int clientNum, usercmd_t *cmd)
void SV_InitGameProgs (void)
void SV_InitGameVM (qboolean restart)
qboolean SV_inPVS (const vec3_t p1, const vec3_t p2)
qboolean SV_inPVSIgnorePortals (const vec3_t p1, const vec3_t p2)
void SV_LocateGameData (sharedEntity_t *gEnts, int numGEntities, int sizeofGEntity_t, playerState_t *clients, int sizeofGameClient)
int SV_NumForGentity (sharedEntity_t *ent)
void SV_RestartGameProgs (void)
void SV_SetBrushModel (sharedEntity_t *ent, const char *name)
void SV_ShutdownGameProgs (void)
svEntity_tSV_SvEntityForGentity (sharedEntity_t *gEnt)

Variables

botlib_export_tbotlib_export


Define Documentation

#define VMA  )     VM_ArgPtr(args[x])
 

Definition at line 312 of file sv_game.c.

#define VMF  )     ((float *)args)[x]
 

Definition at line 315 of file sv_game.c.


Function Documentation

int FloatAsInt float  f  )  [static]
 

Definition at line 290 of file sv_game.c.

Referenced by CL_CgameSystemCalls(), CL_UISystemCalls(), and SV_GameSystemCalls().

00290                                   {
00291     union
00292     {
00293         int i;
00294         float f;
00295     } temp;
00296     
00297     temp.f = f;
00298     return temp.i;
00299 }

void SV_AdjustAreaPortalState sharedEntity_t ent,
qboolean  open
 

Definition at line 212 of file sv_game.c.

References svEntity_s::areanum, svEntity_s::areanum2, CM_AdjustAreaPortalState(), open(), SV_SvEntityForGentity(), and svEntity_t.

Referenced by SV_GameSystemCalls().

00212                                                                     {
00213     svEntity_t  *svEnt;
00214 
00215     svEnt = SV_SvEntityForGentity( ent );
00216     if ( svEnt->areanum2 == -1 ) {
00217         return;
00218     }
00219     CM_AdjustAreaPortalState( svEnt->areanum, svEnt->areanum2, open );
00220 }

Here is the call graph for this function:

qboolean SV_EntityContact vec3_t  mins,
vec3_t  maxs,
const sharedEntity_t gEnt,
int  capsule
 

Definition at line 228 of file sv_game.c.

References ch, clipHandle_t, CM_TransformedBoxTrace(), entityShared_t::currentAngles, entityShared_t::currentOrigin, qboolean, sharedEntity_t::r, trace_t::startsolid, SV_ClipHandleForEntity(), and vec3_origin.

Referenced by SV_GameSystemCalls().

00228                                                                                                   {
00229     const float *origin, *angles;
00230     clipHandle_t    ch;
00231     trace_t         trace;
00232 
00233     // check for exact collision
00234     origin = gEnt->r.currentOrigin;
00235     angles = gEnt->r.currentAngles;
00236 
00237     ch = SV_ClipHandleForEntity( gEnt );
00238     CM_TransformedBoxTrace ( &trace, vec3_origin, vec3_origin, mins, maxs,
00239         ch, -1, origin, angles, capsule );
00240 
00241     return trace.startsolid;
00242 }

Here is the call graph for this function:

playerState_t* SV_GameClientNum int  num  ) 
 

Definition at line 56 of file sv_game.c.

References byte, server_t::gameClients, server_t::gameClientSize, playerState_t, and sv.

Referenced by SV_BuildClientSnapshot(), SV_CalcPings(), SV_Status_f(), and SVC_Status().

00056                                            {
00057     playerState_t   *ps;
00058 
00059     ps = (playerState_t *)((byte *)sv.gameClients + sv.gameClientSize*(num));
00060 
00061     return ps;
00062 }

qboolean SV_GameCommand void   ) 
 

Definition at line 974 of file sv_game.c.

References GAME_CONSOLE_COMMAND, gvm, qboolean, server_t::state, sv, and VM_Call().

Referenced by Cmd_ExecuteString().

00974                                 {
00975     if ( sv.state != SS_GAME ) {
00976         return qfalse;
00977     }
00978 
00979     return VM_Call( gvm, GAME_CONSOLE_COMMAND );
00980 }

Here is the call graph for this function:

void SV_GameDropClient int  clientNum,
const char *  reason
 

Definition at line 104 of file sv_game.c.

References serverStatic_t::clients, cvar_s::integer, SV_DropClient(), sv_maxclients, and svs.

Referenced by SV_GameSystemCalls().

00104                                                             {
00105     if ( clientNum < 0 || clientNum >= sv_maxclients->integer ) {
00106         return;
00107     }
00108     SV_DropClient( svs.clients + clientNum, reason );   
00109 }

Here is the call graph for this function:

void SV_GameError const char *  string  ) 
 

Definition at line 30 of file sv_game.c.

References Com_Error(), ERR_DROP, and string().

00030                                         {
00031     Com_Error( ERR_DROP, "%s", string );
00032 }

Here is the call graph for this function:

void SV_GamePrint const char *  string  ) 
 

Definition at line 34 of file sv_game.c.

References Com_Printf(), and string().

00034                                         {
00035     Com_Printf( "%s", string );
00036 }

Here is the call graph for this function:

void SV_GameSendServerCommand int  clientNum,
const char *  text
 

Definition at line 85 of file sv_game.c.

References serverStatic_t::clients, cvar_s::integer, NULL, sv_maxclients, SV_SendServerCommand(), and svs.

Referenced by SV_GameSystemCalls().

00085                                                                  {
00086     if ( clientNum == -1 ) {
00087         SV_SendServerCommand( NULL, "%s", text );
00088     } else {
00089         if ( clientNum < 0 || clientNum >= sv_maxclients->integer ) {
00090             return;
00091         }
00092         SV_SendServerCommand( svs.clients + clientNum, "%s", text );    
00093     }
00094 }

Here is the call graph for this function:

int SV_GameSystemCalls int *  args  ) 
 

Definition at line 317 of file sv_game.c.

References botlib_export_s::aas, aas_export_s::AAS_AlternativeRouteGoals, aas_export_s::AAS_AreaInfo, aas_export_s::AAS_AreaReachability, aas_export_s::AAS_AreaTravelTimeToGoalArea, aas_export_s::AAS_BBoxAreas, aas_export_s::AAS_EnableRoutingArea, aas_export_s::AAS_EntityInfo, aas_export_s::AAS_FloatForBSPEpairKey, aas_export_s::AAS_Initialized, aas_export_s::AAS_IntForBSPEpairKey, aas_export_s::AAS_NextBSPEntity, aas_export_s::AAS_PointAreaNum, aas_export_s::AAS_PointContents, aas_export_s::AAS_PointReachabilityAreaIndex, aas_export_s::AAS_PredictClientMovement, aas_export_s::AAS_PredictRoute, aas_export_s::AAS_PresenceTypeBoundingBox, aas_export_s::AAS_Swimming, aas_export_s::AAS_Time, aas_export_s::AAS_TraceAreas, aas_export_s::AAS_ValueForBSPEpairKey, aas_export_s::AAS_VectorForBSPEpairKey, botlib_export_s::ai, AngleVectors(), atan2(), ai_export_s::BotAddAvoidSpot, ai_export_s::BotAllocChatState, ai_export_s::BotAllocGoalState, ai_export_s::BotAllocMoveState, ai_export_s::BotAllocWeaponState, ai_export_s::BotAvoidGoalTime, ai_export_s::BotChatLength, ai_export_s::BotChooseBestFightWeapon, ai_export_s::BotChooseLTGItem, ai_export_s::BotChooseNBGItem, ai_export_s::BotDumpAvoidGoals, ai_export_s::BotDumpGoalStack, ai_export_s::BotEmptyGoalStack, ai_export_s::BotEnterChat, ai_export_s::BotFindMatch, ai_export_s::BotFreeCharacter, ai_export_s::BotFreeChatState, ai_export_s::BotFreeGoalState, ai_export_s::BotFreeItemWeights, ai_export_s::BotFreeMoveState, ai_export_s::BotFreeWeaponState, ai_export_s::BotGetChatMessage, ai_export_s::BotGetLevelItemGoal, ai_export_s::BotGetMapLocationGoal, ai_export_s::BotGetNextCampSpotGoal, ai_export_s::BotGetSecondGoal, ai_export_s::BotGetTopGoal, ai_export_s::BotGetWeaponInfo, ai_export_s::BotGoalName, BotImport_DebugPolygonCreate(), BotImport_DebugPolygonDelete(), ai_export_s::BotInitialChat, ai_export_s::BotInitLevelItems, ai_export_s::BotInitMoveState, ai_export_s::BotInterbreedGoalFuzzyLogic, ai_export_s::BotItemGoalInVisButNotVisible, BOTLIB_AAS_ALTERNATIVE_ROUTE_GOAL, BOTLIB_AAS_AREA_INFO, BOTLIB_AAS_AREA_REACHABILITY, BOTLIB_AAS_AREA_TRAVEL_TIME_TO_GOAL_AREA, BOTLIB_AAS_BBOX_AREAS, BOTLIB_AAS_ENABLE_ROUTING_AREA, BOTLIB_AAS_ENTITY_INFO, BOTLIB_AAS_FLOAT_FOR_BSP_EPAIR_KEY, BOTLIB_AAS_INITIALIZED, BOTLIB_AAS_INT_FOR_BSP_EPAIR_KEY, BOTLIB_AAS_NEXT_BSP_ENTITY, BOTLIB_AAS_POINT_AREA_NUM, BOTLIB_AAS_POINT_CONTENTS, BOTLIB_AAS_POINT_REACHABILITY_AREA_INDEX, BOTLIB_AAS_PREDICT_CLIENT_MOVEMENT, BOTLIB_AAS_PREDICT_ROUTE, BOTLIB_AAS_PRESENCE_TYPE_BOUNDING_BOX, BOTLIB_AAS_SWIMMING, BOTLIB_AAS_TIME, BOTLIB_AAS_TRACE_AREAS, BOTLIB_AAS_VALUE_FOR_BSP_EPAIR_KEY, BOTLIB_AAS_VECTOR_FOR_BSP_EPAIR_KEY, BOTLIB_AI_ADD_AVOID_SPOT, BOTLIB_AI_ALLOC_CHAT_STATE, BOTLIB_AI_ALLOC_GOAL_STATE, BOTLIB_AI_ALLOC_MOVE_STATE, BOTLIB_AI_ALLOC_WEAPON_STATE, BOTLIB_AI_AVOID_GOAL_TIME, BOTLIB_AI_CHARACTERISTIC_BFLOAT, BOTLIB_AI_CHARACTERISTIC_BINTEGER, BOTLIB_AI_CHARACTERISTIC_FLOAT, BOTLIB_AI_CHARACTERISTIC_INTEGER, BOTLIB_AI_CHARACTERISTIC_STRING, BOTLIB_AI_CHAT_LENGTH, BOTLIB_AI_CHOOSE_BEST_FIGHT_WEAPON, BOTLIB_AI_CHOOSE_LTG_ITEM, BOTLIB_AI_CHOOSE_NBG_ITEM, BOTLIB_AI_DUMP_AVOID_GOALS, BOTLIB_AI_DUMP_GOAL_STACK, BOTLIB_AI_EMPTY_GOAL_STACK, BOTLIB_AI_ENTER_CHAT, BOTLIB_AI_FIND_MATCH, BOTLIB_AI_FREE_CHARACTER, BOTLIB_AI_FREE_CHAT_STATE, BOTLIB_AI_FREE_GOAL_STATE, BOTLIB_AI_FREE_ITEM_WEIGHTS, BOTLIB_AI_FREE_MOVE_STATE, BOTLIB_AI_FREE_WEAPON_STATE, BOTLIB_AI_GENETIC_PARENTS_AND_CHILD_SELECTION, BOTLIB_AI_GET_CHAT_MESSAGE, BOTLIB_AI_GET_LEVEL_ITEM_GOAL, BOTLIB_AI_GET_MAP_LOCATION_GOAL, BOTLIB_AI_GET_NEXT_CAMP_SPOT_GOAL, BOTLIB_AI_GET_SECOND_GOAL, BOTLIB_AI_GET_TOP_GOAL, BOTLIB_AI_GET_WEAPON_INFO, BOTLIB_AI_GOAL_NAME, BOTLIB_AI_INIT_LEVEL_ITEMS, BOTLIB_AI_INIT_MOVE_STATE, BOTLIB_AI_INITIAL_CHAT, BOTLIB_AI_INTERBREED_GOAL_FUZZY_LOGIC, BOTLIB_AI_ITEM_GOAL_IN_VIS_BUT_NOT_VISIBLE, BOTLIB_AI_LOAD_CHARACTER, BOTLIB_AI_LOAD_CHAT_FILE, BOTLIB_AI_LOAD_ITEM_WEIGHTS, BOTLIB_AI_LOAD_WEAPON_WEIGHTS, BOTLIB_AI_MATCH_VARIABLE, BOTLIB_AI_MOVE_IN_DIRECTION, BOTLIB_AI_MOVE_TO_GOAL, BOTLIB_AI_MOVEMENT_VIEW_TARGET, BOTLIB_AI_MUTATE_GOAL_FUZZY_LOGIC, BOTLIB_AI_NEXT_CONSOLE_MESSAGE, BOTLIB_AI_NUM_CONSOLE_MESSAGE, BOTLIB_AI_NUM_INITIAL_CHATS, BOTLIB_AI_POP_GOAL, BOTLIB_AI_PREDICT_VISIBLE_POSITION, BOTLIB_AI_PUSH_GOAL, BOTLIB_AI_QUEUE_CONSOLE_MESSAGE, BOTLIB_AI_REACHABILITY_AREA, BOTLIB_AI_REMOVE_CONSOLE_MESSAGE, BOTLIB_AI_REMOVE_FROM_AVOID_GOALS, BOTLIB_AI_REPLACE_SYNONYMS, BOTLIB_AI_REPLY_CHAT, BOTLIB_AI_RESET_AVOID_GOALS, BOTLIB_AI_RESET_AVOID_REACH, BOTLIB_AI_RESET_GOAL_STATE, BOTLIB_AI_RESET_LAST_AVOID_REACH, BOTLIB_AI_RESET_MOVE_STATE, BOTLIB_AI_RESET_WEAPON_STATE, BOTLIB_AI_SAVE_GOAL_FUZZY_LOGIC, BOTLIB_AI_SET_AVOID_GOAL_TIME, BOTLIB_AI_SET_CHAT_GENDER, BOTLIB_AI_SET_CHAT_NAME, BOTLIB_AI_STRING_CONTAINS, BOTLIB_AI_TOUCHING_GOAL, BOTLIB_AI_UNIFY_WHITE_SPACES, BOTLIB_AI_UPDATE_ENTITY_ITEMS, BOTLIB_EA_ACTION, BOTLIB_EA_ATTACK, BOTLIB_EA_COMMAND, BOTLIB_EA_CROUCH, BOTLIB_EA_DELAYED_JUMP, BOTLIB_EA_END_REGULAR, BOTLIB_EA_GESTURE, BOTLIB_EA_GET_INPUT, BOTLIB_EA_JUMP, BOTLIB_EA_MOVE, BOTLIB_EA_MOVE_BACK, BOTLIB_EA_MOVE_DOWN, BOTLIB_EA_MOVE_FORWARD, BOTLIB_EA_MOVE_LEFT, BOTLIB_EA_MOVE_RIGHT, BOTLIB_EA_MOVE_UP, BOTLIB_EA_RESET_INPUT, BOTLIB_EA_RESPAWN, BOTLIB_EA_SAY, BOTLIB_EA_SAY_TEAM, BOTLIB_EA_SELECT_WEAPON, BOTLIB_EA_TALK, BOTLIB_EA_USE, BOTLIB_EA_VIEW, botlib_export, BOTLIB_GET_CONSOLE_MESSAGE, BOTLIB_GET_SNAPSHOT_ENTITY, BOTLIB_LIBVAR_GET, BOTLIB_LIBVAR_SET, BOTLIB_LOAD_MAP, BOTLIB_PC_ADD_GLOBAL_DEFINE, BOTLIB_PC_FREE_SOURCE, BOTLIB_PC_LOAD_SOURCE, BOTLIB_PC_READ_TOKEN, BOTLIB_PC_SOURCE_FILE_AND_LINE, BOTLIB_SETUP, BOTLIB_SHUTDOWN, BOTLIB_START_FRAME, BOTLIB_TEST, BOTLIB_UPDATENTITY, BOTLIB_USER_COMMAND, botlib_export_s::BotLibLoadMap, botlib_export_s::BotLibStartFrame, botlib_export_s::BotLibUpdateEntity, botlib_export_s::BotLibVarGet, botlib_export_s::BotLibVarSet, ai_export_s::BotLoadCharacter, ai_export_s::BotLoadChatFile, ai_export_s::BotLoadItemWeights, ai_export_s::BotLoadWeaponWeights, ai_export_s::BotMatchVariable, ai_export_s::BotMoveInDirection, ai_export_s::BotMovementViewTarget, ai_export_s::BotMoveToGoal, ai_export_s::BotMutateGoalFuzzyLogic, ai_export_s::BotNextConsoleMessage, ai_export_s::BotNumConsoleMessages, ai_export_s::BotNumInitialChats, ai_export_s::BotPopGoal, ai_export_s::BotPredictVisiblePosition, ai_export_s::BotPushGoal, ai_export_s::BotQueueConsoleMessage, ai_export_s::BotReachabilityArea, ai_export_s::BotRemoveConsoleMessage, ai_export_s::BotRemoveFromAvoidGoals, ai_export_s::BotReplaceSynonyms, ai_export_s::BotReplyChat, ai_export_s::BotResetAvoidGoals, ai_export_s::BotResetAvoidReach, ai_export_s::BotResetGoalState, ai_export_s::BotResetLastAvoidReach, ai_export_s::BotResetMoveState, ai_export_s::BotResetWeaponState, ai_export_s::BotSaveGoalFuzzyLogic, ai_export_s::BotSetAvoidGoalTime, ai_export_s::BotSetChatGender, ai_export_s::BotSetChatName, ai_export_s::BotTouchingGoal, ai_export_s::BotUpdateEntityItems, Cbuf_ExecuteText(), ceil(), ai_export_s::Characteristic_BFloat, ai_export_s::Characteristic_BInteger, ai_export_s::Characteristic_Float, ai_export_s::Characteristic_Integer, ai_export_s::Characteristic_String, serverStatic_t::clients, CM_AreasConnected(), Cmd_Argc(), Cmd_ArgvBuffer(), Com_Error(), Com_Memcpy(), Com_Memset(), COM_Parse(), Com_Printf(), Com_RealTime(), cos(), Cvar_Register(), Cvar_Set(), Cvar_Update(), Cvar_VariableIntegerValue(), Cvar_VariableStringBuffer(), botlib_export_s::ea, ea_export_s::EA_Action, ea_export_s::EA_Attack, ea_export_s::EA_Command, ea_export_s::EA_Crouch, ea_export_s::EA_DelayedJump, ea_export_s::EA_EndRegular, ea_export_s::EA_Gesture, ea_export_s::EA_GetInput, ea_export_s::EA_Jump, ea_export_s::EA_Move, ea_export_s::EA_MoveBack, ea_export_s::EA_MoveDown, ea_export_s::EA_MoveForward, ea_export_s::EA_MoveLeft, ea_export_s::EA_MoveRight, ea_export_s::EA_MoveUp, ea_export_s::EA_ResetInput, ea_export_s::EA_Respawn, ea_export_s::EA_Say, ea_export_s::EA_SayTeam, ea_export_s::EA_SelectWeapon, ea_export_s::EA_Talk, ea_export_s::EA_Use, ea_export_s::EA_View, server_t::entityParsePoint, ERR_DROP, FloatAsInt(), floor(), FS_FCloseFile(), FS_FOpenFileByMode(), FS_GetFileList(), FS_Read2(), FS_Seek(), FS_Write(), G_ADJUST_AREA_PORTAL_STATE, G_AREAS_CONNECTED, G_ARGC, G_ARGV, G_BOT_ALLOCATE_CLIENT, G_BOT_FREE_CLIENT, G_CVAR_REGISTER, G_CVAR_SET, G_CVAR_UPDATE, G_CVAR_VARIABLE_INTEGER_VALUE, G_CVAR_VARIABLE_STRING_BUFFER, G_DEBUG_POLYGON_CREATE, G_DEBUG_POLYGON_DELETE, G_DROP_CLIENT, G_ENTITIES_IN_BOX, G_ENTITY_CONTACT, G_ENTITY_CONTACTCAPSULE, G_ERROR, G_FS_FCLOSE_FILE, G_FS_FOPEN_FILE, G_FS_GETFILELIST, G_FS_READ, G_FS_SEEK, G_FS_WRITE, G_GET_CONFIGSTRING, G_GET_ENTITY_TOKEN, G_GET_SERVERINFO, G_GET_USERCMD, G_GET_USERINFO, G_IN_PVS, G_IN_PVS_IGNORE_PORTALS, G_LINKENTITY, G_LOCATE_GAME_DATA, G_MILLISECONDS, G_POINT_CONTENTS, G_PRINT, G_REAL_TIME, G_SEND_CONSOLE_COMMAND, G_SEND_SERVER_COMMAND, G_SET_BRUSH_MODEL, G_SET_CONFIGSTRING, G_SET_USERINFO, G_SNAPVECTOR, G_TRACE, G_TRACECAPSULE, G_UNLINKENTITY, ai_export_s::GeneticParentsAndChildSelection, MatrixMultiply(), botlib_export_s::PC_AddGlobalDefine, botlib_export_s::PC_FreeSourceHandle, botlib_export_s::PC_LoadSourceHandle, botlib_export_s::PC_ReadTokenHandle, botlib_export_s::PC_SourceFileAndLine, PerpendicularVector(), Q_strncpyz(), qfalse, qtrue, s, sin(), sqrt(), ai_export_s::StringContains, strncpy(), sv, SV_AdjustAreaPortalState(), SV_AreaEntities(), SV_BotAllocateClient(), SV_BotFreeClient(), SV_BotGetConsoleMessage(), SV_BotGetSnapshotEntity(), SV_BotLibSetup(), SV_BotLibShutdown(), SV_ClientThink(), SV_EntityContact(), SV_GameDropClient(), SV_GameSendServerCommand(), SV_GetConfigstring(), SV_GetServerinfo(), SV_GetUsercmd(), SV_GetUserinfo(), SV_inPVS(), SV_inPVSIgnorePortals(), SV_LinkEntity(), SV_LocateGameData(), SV_PointContents(), SV_SetBrushModel(), SV_SetConfigstring(), SV_SetUserinfo(), SV_Trace(), SV_UnlinkEntity(), svs, Sys_Milliseconds(), Sys_SnapVector(), botlib_export_s::Test, TRAP_ANGLEVECTORS, TRAP_ATAN2, TRAP_CEIL, TRAP_COS, TRAP_FLOOR, TRAP_MATRIXMULTIPLY, TRAP_MEMCPY, TRAP_MEMSET, TRAP_PERPENDICULARVECTOR, TRAP_SIN, TRAP_SQRT, TRAP_STRNCPY, ai_export_s::UnifyWhiteSpaces, VMA, and VMF.

Referenced by SV_InitGameProgs().

00317                                     {
00318     switch( args[0] ) {
00319     case G_PRINT:
00320         Com_Printf( "%s", VMA(1) );
00321         return 0;
00322     case G_ERROR:
00323         Com_Error( ERR_DROP, "%s", VMA(1) );
00324         return 0;
00325     case G_MILLISECONDS:
00326         return Sys_Milliseconds();
00327     case G_CVAR_REGISTER:
00328         Cvar_Register( VMA(1), VMA(2), VMA(3), args[4] ); 
00329         return 0;
00330     case G_CVAR_UPDATE:
00331         Cvar_Update( VMA(1) );
00332         return 0;
00333     case G_CVAR_SET:
00334         Cvar_Set( (const char *)VMA(1), (const char *)VMA(2) );
00335         return 0;
00336     case G_CVAR_VARIABLE_INTEGER_VALUE:
00337         return Cvar_VariableIntegerValue( (const char *)VMA(1) );
00338     case G_CVAR_VARIABLE_STRING_BUFFER:
00339         Cvar_VariableStringBuffer( VMA(1), VMA(2), args[3] );
00340         return 0;
00341     case G_ARGC:
00342         return Cmd_Argc();
00343     case G_ARGV:
00344         Cmd_ArgvBuffer( args[1], VMA(2), args[3] );
00345         return 0;
00346     case G_SEND_CONSOLE_COMMAND:
00347         Cbuf_ExecuteText( args[1], VMA(2) );
00348         return 0;
00349 
00350     case G_FS_FOPEN_FILE:
00351         return FS_FOpenFileByMode( VMA(1), VMA(2), args[3] );
00352     case G_FS_READ:
00353         FS_Read2( VMA(1), args[2], args[3] );
00354         return 0;
00355     case G_FS_WRITE:
00356         FS_Write( VMA(1), args[2], args[3] );
00357         return 0;
00358     case G_FS_FCLOSE_FILE:
00359         FS_FCloseFile( args[1] );
00360         return 0;
00361     case G_FS_GETFILELIST:
00362         return FS_GetFileList( VMA(1), VMA(2), VMA(3), args[4] );
00363     case G_FS_SEEK:
00364         return FS_Seek( args[1], args[2], args[3] );
00365 
00366     case G_LOCATE_GAME_DATA:
00367         SV_LocateGameData( VMA(1), args[2], args[3], VMA(4), args[5] );
00368         return 0;
00369     case G_DROP_CLIENT:
00370         SV_GameDropClient( args[1], VMA(2) );
00371         return 0;
00372     case G_SEND_SERVER_COMMAND:
00373         SV_GameSendServerCommand( args[1], VMA(2) );
00374         return 0;
00375     case G_LINKENTITY:
00376         SV_LinkEntity( VMA(1) );
00377         return 0;
00378     case G_UNLINKENTITY:
00379         SV_UnlinkEntity( VMA(1) );
00380         return 0;
00381     case G_ENTITIES_IN_BOX:
00382         return SV_AreaEntities( VMA(1), VMA(2), VMA(3), args[4] );
00383     case G_ENTITY_CONTACT:
00384         return SV_EntityContact( VMA(1), VMA(2), VMA(3), /*int capsule*/ qfalse );
00385     case G_ENTITY_CONTACTCAPSULE:
00386         return SV_EntityContact( VMA(1), VMA(2), VMA(3), /*int capsule*/ qtrue );
00387     case G_TRACE:
00388         SV_Trace( VMA(1), VMA(2), VMA(3), VMA(4), VMA(5), args[6], args[7], /*int capsule*/ qfalse );
00389         return 0;
00390     case G_TRACECAPSULE:
00391         SV_Trace( VMA(1), VMA(2), VMA(3), VMA(4), VMA(5), args[6], args[7], /*int capsule*/ qtrue );
00392         return 0;
00393     case G_POINT_CONTENTS:
00394         return SV_PointContents( VMA(1), args[2] );
00395     case G_SET_BRUSH_MODEL:
00396         SV_SetBrushModel( VMA(1), VMA(2) );
00397         return 0;
00398     case G_IN_PVS:
00399         return SV_inPVS( VMA(1), VMA(2) );
00400     case G_IN_PVS_IGNORE_PORTALS:
00401         return SV_inPVSIgnorePortals( VMA(1), VMA(2) );
00402 
00403     case G_SET_CONFIGSTRING:
00404         SV_SetConfigstring( args[1], VMA(2) );
00405         return 0;
00406     case G_GET_CONFIGSTRING:
00407         SV_GetConfigstring( args[1], VMA(2), args[3] );
00408         return 0;
00409     case G_SET_USERINFO:
00410         SV_SetUserinfo( args[1], VMA(2) );
00411         return 0;
00412     case G_GET_USERINFO:
00413         SV_GetUserinfo( args[1], VMA(2), args[3] );
00414         return 0;
00415     case G_GET_SERVERINFO:
00416         SV_GetServerinfo( VMA(1), args[2] );
00417         return 0;
00418     case G_ADJUST_AREA_PORTAL_STATE:
00419         SV_AdjustAreaPortalState( VMA(1), args[2] );
00420         return 0;
00421     case G_AREAS_CONNECTED:
00422         return CM_AreasConnected( args[1], args[2] );
00423 
00424     case G_BOT_ALLOCATE_CLIENT:
00425         return SV_BotAllocateClient();
00426     case G_BOT_FREE_CLIENT:
00427         SV_BotFreeClient( args[1] );
00428         return 0;
00429 
00430     case G_GET_USERCMD:
00431         SV_GetUsercmd( args[1], VMA(2) );
00432         return 0;
00433     case G_GET_ENTITY_TOKEN:
00434         {
00435             const char  *s;
00436 
00437             s = COM_Parse( &sv.entityParsePoint );
00438             Q_strncpyz( VMA(1), s, args[2] );
00439             if ( !sv.entityParsePoint && !s[0] ) {
00440                 return qfalse;
00441             } else {
00442                 return qtrue;
00443             }
00444         }
00445 
00446     case G_DEBUG_POLYGON_CREATE:
00447         return BotImport_DebugPolygonCreate( args[1], args[2], VMA(3) );
00448     case G_DEBUG_POLYGON_DELETE:
00449         BotImport_DebugPolygonDelete( args[1] );
00450         return 0;
00451     case G_REAL_TIME:
00452         return Com_RealTime( VMA(1) );
00453     case G_SNAPVECTOR:
00454         Sys_SnapVector( VMA(1) );
00455         return 0;
00456 
00457         //====================================
00458 
00459     case BOTLIB_SETUP:
00460         return SV_BotLibSetup();
00461     case BOTLIB_SHUTDOWN:
00462         return SV_BotLibShutdown();
00463     case BOTLIB_LIBVAR_SET:
00464         return botlib_export->BotLibVarSet( VMA(1), VMA(2) );
00465     case BOTLIB_LIBVAR_GET:
00466         return botlib_export->BotLibVarGet( VMA(1), VMA(2), args[3] );
00467 
00468     case BOTLIB_PC_ADD_GLOBAL_DEFINE:
00469         return botlib_export->PC_AddGlobalDefine( VMA(1) );
00470     case BOTLIB_PC_LOAD_SOURCE:
00471         return botlib_export->PC_LoadSourceHandle( VMA(1) );
00472     case BOTLIB_PC_FREE_SOURCE:
00473         return botlib_export->PC_FreeSourceHandle( args[1] );
00474     case BOTLIB_PC_READ_TOKEN:
00475         return botlib_export->PC_ReadTokenHandle( args[1], VMA(2) );
00476     case BOTLIB_PC_SOURCE_FILE_AND_LINE:
00477         return botlib_export->PC_SourceFileAndLine( args[1], VMA(2), VMA(3) );
00478 
00479     case BOTLIB_START_FRAME:
00480         return botlib_export->BotLibStartFrame( VMF(1) );
00481     case BOTLIB_LOAD_MAP:
00482         return botlib_export->BotLibLoadMap( VMA(1) );
00483     case BOTLIB_UPDATENTITY:
00484         return botlib_export->BotLibUpdateEntity( args[1], VMA(2) );
00485     case BOTLIB_TEST:
00486         return botlib_export->Test( args[1], VMA(2), VMA(3), VMA(4) );
00487 
00488     case BOTLIB_GET_SNAPSHOT_ENTITY:
00489         return SV_BotGetSnapshotEntity( args[1], args[2] );
00490     case BOTLIB_GET_CONSOLE_MESSAGE:
00491         return SV_BotGetConsoleMessage( args[1], VMA(2), args[3] );
00492     case BOTLIB_USER_COMMAND:
00493         SV_ClientThink( &svs.clients[args[1]], VMA(2) );
00494         return 0;
00495 
00496     case BOTLIB_AAS_BBOX_AREAS:
00497         return botlib_export->aas.AAS_BBoxAreas( VMA(1), VMA(2), VMA(3), args[4] );
00498     case BOTLIB_AAS_AREA_INFO:
00499         return botlib_export->aas.AAS_AreaInfo( args[1], VMA(2) );
00500     case BOTLIB_AAS_ALTERNATIVE_ROUTE_GOAL:
00501         return botlib_export->aas.AAS_AlternativeRouteGoals( VMA(1), args[2], VMA(3), args[4], args[5], VMA(6), args[7], args[8] );
00502     case BOTLIB_AAS_ENTITY_INFO:
00503         botlib_export->aas.AAS_EntityInfo( args[1], VMA(2) );
00504         return 0;
00505 
00506     case BOTLIB_AAS_INITIALIZED:
00507         return botlib_export->aas.AAS_Initialized();
00508     case BOTLIB_AAS_PRESENCE_TYPE_BOUNDING_BOX:
00509         botlib_export->aas.AAS_PresenceTypeBoundingBox( args[1], VMA(2), VMA(3) );
00510         return 0;
00511     case BOTLIB_AAS_TIME:
00512         return FloatAsInt( botlib_export->aas.AAS_Time() );
00513 
00514     case BOTLIB_AAS_POINT_AREA_NUM:
00515         return botlib_export->aas.AAS_PointAreaNum( VMA(1) );
00516     case BOTLIB_AAS_POINT_REACHABILITY_AREA_INDEX:
00517         return botlib_export->aas.AAS_PointReachabilityAreaIndex( VMA(1) );
00518     case BOTLIB_AAS_TRACE_AREAS:
00519         return botlib_export->aas.AAS_TraceAreas( VMA(1), VMA(2), VMA(3), VMA(4), args[5] );
00520 
00521     case BOTLIB_AAS_POINT_CONTENTS:
00522         return botlib_export->aas.AAS_PointContents( VMA(1) );
00523     case BOTLIB_AAS_NEXT_BSP_ENTITY:
00524         return botlib_export->aas.AAS_NextBSPEntity( args[1] );
00525     case BOTLIB_AAS_VALUE_FOR_BSP_EPAIR_KEY:
00526         return botlib_export->aas.AAS_ValueForBSPEpairKey( args[1], VMA(2), VMA(3), args[4] );
00527     case BOTLIB_AAS_VECTOR_FOR_BSP_EPAIR_KEY:
00528         return botlib_export->aas.AAS_VectorForBSPEpairKey( args[1], VMA(2), VMA(3) );
00529     case BOTLIB_AAS_FLOAT_FOR_BSP_EPAIR_KEY:
00530         return botlib_export->aas.AAS_FloatForBSPEpairKey( args[1], VMA(2), VMA(3) );
00531     case BOTLIB_AAS_INT_FOR_BSP_EPAIR_KEY:
00532         return botlib_export->aas.AAS_IntForBSPEpairKey( args[1], VMA(2), VMA(3) );
00533 
00534     case BOTLIB_AAS_AREA_REACHABILITY:
00535         return botlib_export->aas.AAS_AreaReachability( args[1] );
00536 
00537     case BOTLIB_AAS_AREA_TRAVEL_TIME_TO_GOAL_AREA:
00538         return botlib_export->aas.AAS_AreaTravelTimeToGoalArea( args[1], VMA(2), args[3], args[4] );
00539     case BOTLIB_AAS_ENABLE_ROUTING_AREA:
00540         return botlib_export->aas.AAS_EnableRoutingArea( args[1], args[2] );
00541     case BOTLIB_AAS_PREDICT_ROUTE:
00542         return botlib_export->aas.AAS_PredictRoute( VMA(1), args[2], VMA(3), args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11] );
00543 
00544     case BOTLIB_AAS_SWIMMING:
00545         return botlib_export->aas.AAS_Swimming( VMA(1) );
00546     case BOTLIB_AAS_PREDICT_CLIENT_MOVEMENT:
00547         return botlib_export->aas.AAS_PredictClientMovement( VMA(1), args[2], VMA(3), args[4], args[5],
00548             VMA(6), VMA(7), args[8], args[9], VMF(10), args[11], args[12], args[13] );
00549 
00550     case BOTLIB_EA_SAY:
00551         botlib_export->ea.EA_Say( args[1], VMA(2) );
00552         return 0;
00553     case BOTLIB_EA_SAY_TEAM:
00554         botlib_export->ea.EA_SayTeam( args[1], VMA(2) );
00555         return 0;
00556     case BOTLIB_EA_COMMAND:
00557         botlib_export->ea.EA_Command( args[1], VMA(2) );
00558         return 0;
00559 
00560     case BOTLIB_EA_ACTION:
00561         botlib_export->ea.EA_Action( args[1], args[2] );
00562         break;
00563     case BOTLIB_EA_GESTURE:
00564         botlib_export->ea.EA_Gesture( args[1] );
00565         return 0;
00566     case BOTLIB_EA_TALK:
00567         botlib_export->ea.EA_Talk( args[1] );
00568         return 0;
00569     case BOTLIB_EA_ATTACK:
00570         botlib_export->ea.EA_Attack( args[1] );
00571         return 0;
00572     case BOTLIB_EA_USE:
00573         botlib_export->ea.EA_Use( args[1] );
00574         return 0;
00575     case BOTLIB_EA_RESPAWN:
00576         botlib_export->ea.EA_Respawn( args[1] );
00577         return 0;
00578     case BOTLIB_EA_CROUCH:
00579         botlib_export->ea.EA_Crouch( args[1] );
00580         return 0;
00581     case BOTLIB_EA_MOVE_UP:
00582         botlib_export->ea.EA_MoveUp( args[1] );
00583         return 0;
00584     case BOTLIB_EA_MOVE_DOWN:
00585         botlib_export->ea.EA_MoveDown( args[1] );
00586         return 0;
00587     case BOTLIB_EA_MOVE_FORWARD:
00588         botlib_export->ea.EA_MoveForward( args[1] );
00589         return 0;
00590     case BOTLIB_EA_MOVE_BACK:
00591         botlib_export->ea.EA_MoveBack( args[1] );
00592         return 0;
00593     case BOTLIB_EA_MOVE_LEFT:
00594         botlib_export->ea.EA_MoveLeft( args[1] );
00595         return 0;
00596     case BOTLIB_EA_MOVE_RIGHT:
00597         botlib_export->ea.EA_MoveRight( args[1] );
00598         return 0;
00599 
00600     case BOTLIB_EA_SELECT_WEAPON:
00601         botlib_export->ea.EA_SelectWeapon( args[1], args[2] );
00602         return 0;
00603     case BOTLIB_EA_JUMP:
00604         botlib_export->ea.EA_Jump( args[1] );
00605         return 0;
00606     case BOTLIB_EA_DELAYED_JUMP:
00607         botlib_export->ea.EA_DelayedJump( args[1] );
00608         return 0;
00609     case BOTLIB_EA_MOVE:
00610         botlib_export->ea.EA_Move( args[1], VMA(2), VMF(3) );
00611         return 0;
00612     case BOTLIB_EA_VIEW:
00613         botlib_export->ea.EA_View( args[1], VMA(2) );
00614         return 0;
00615 
00616     case BOTLIB_EA_END_REGULAR:
00617         botlib_export->ea.EA_EndRegular( args[1], VMF(2) );
00618         return 0;
00619     case BOTLIB_EA_GET_INPUT:
00620         botlib_export->ea.EA_GetInput( args[1], VMF(2), VMA(3) );
00621         return 0;
00622     case BOTLIB_EA_RESET_INPUT:
00623         botlib_export->ea.EA_ResetInput( args[1] );
00624         return 0;
00625 
00626     case BOTLIB_AI_LOAD_CHARACTER:
00627         return botlib_export->ai.BotLoadCharacter( VMA(1), VMF(2) );
00628     case BOTLIB_AI_FREE_CHARACTER:
00629         botlib_export->ai.BotFreeCharacter( args[1] );
00630         return 0;
00631     case BOTLIB_AI_CHARACTERISTIC_FLOAT:
00632         return FloatAsInt( botlib_export->ai.Characteristic_Float( args[1], args[2] ) );
00633     case BOTLIB_AI_CHARACTERISTIC_BFLOAT:
00634         return FloatAsInt( botlib_export->ai.Characteristic_BFloat( args[1], args[2], VMF(3), VMF(4) ) );
00635     case BOTLIB_AI_CHARACTERISTIC_INTEGER:
00636         return botlib_export->ai.Characteristic_Integer( args[1], args[2] );
00637     case BOTLIB_AI_CHARACTERISTIC_BINTEGER:
00638         return botlib_export->ai.Characteristic_BInteger( args[1], args[2], args[3], args[4] );
00639     case BOTLIB_AI_CHARACTERISTIC_STRING:
00640         botlib_export->ai.Characteristic_String( args[1], args[2], VMA(3), args[4] );
00641         return 0;
00642 
00643     case BOTLIB_AI_ALLOC_CHAT_STATE:
00644         return botlib_export->ai.BotAllocChatState();
00645     case BOTLIB_AI_FREE_CHAT_STATE:
00646         botlib_export->ai.BotFreeChatState( args[1] );
00647         return 0;
00648     case BOTLIB_AI_QUEUE_CONSOLE_MESSAGE:
00649         botlib_export->ai.BotQueueConsoleMessage( args[1], args[2], VMA(3) );
00650         return 0;
00651     case BOTLIB_AI_REMOVE_CONSOLE_MESSAGE:
00652         botlib_export->ai.BotRemoveConsoleMessage( args[1], args[2] );
00653         return 0;
00654     case BOTLIB_AI_NEXT_CONSOLE_MESSAGE:
00655         return botlib_export->ai.BotNextConsoleMessage( args[1], VMA(2) );
00656     case BOTLIB_AI_NUM_CONSOLE_MESSAGE:
00657         return botlib_export->ai.BotNumConsoleMessages( args[1] );
00658     case BOTLIB_AI_INITIAL_CHAT:
00659         botlib_export->ai.BotInitialChat( args[1], VMA(2), args[3], VMA(4), VMA(5), VMA(6), VMA(7), VMA(8), VMA(9), VMA(10), VMA(11) );
00660         return 0;
00661     case BOTLIB_AI_NUM_INITIAL_CHATS:
00662         return botlib_export->ai.BotNumInitialChats( args[1], VMA(2) );
00663     case BOTLIB_AI_REPLY_CHAT:
00664         return botlib_export->ai.BotReplyChat( args[1], VMA(2), args[3], args[4], VMA(5), VMA(6), VMA(7), VMA(8), VMA(9), VMA(10), VMA(11), VMA(12) );
00665     case BOTLIB_AI_CHAT_LENGTH:
00666         return botlib_export->ai.BotChatLength( args[1] );
00667     case BOTLIB_AI_ENTER_CHAT:
00668         botlib_export->ai.BotEnterChat( args[1], args[2], args[3] );
00669         return 0;
00670     case BOTLIB_AI_GET_CHAT_MESSAGE:
00671         botlib_export<