From 10a0785f8f8b9c220dd06f5d0914a5db11092d84 Mon Sep 17 00:00:00 2001 From: IR4T4 Date: Sun, 6 May 2012 23:01:29 +0200 Subject: [PATCH] botlib removal, refs #3 --- src/game/g_active.c | 31 -------- src/game/g_cmds.c | 18 +---- src/game/g_combat.c | 16 +--- src/game/g_func_decs.h | 11 +-- src/game/g_funcs.h | 11 +-- src/game/g_items.c | 9 --- src/game/g_local.h | 10 --- src/game/g_misc.c | 148 ++++++++++++++++++++++++++++++++++++ src/game/g_script.c | 11 +-- src/game/g_script_actions.c | 31 ++++---- src/game/g_spawn.c | 3 - src/game/g_team.c | 3 - 12 files changed, 179 insertions(+), 123 deletions(-) diff --git a/src/game/g_active.c b/src/game/g_active.c index 88919f822..d0a3b1e4d 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -245,7 +245,6 @@ void G_SetClientSound(gentity_t *ent) PushBot ============== */ -void BotVoiceChatAfterIdleTime(int client, const char *id, int mode, int delay, qboolean voiceonly, int idleTime, qboolean forceIfDead); void PushBot(gentity_t *ent, gentity_t *other) { @@ -273,12 +272,6 @@ void PushBot(gentity_t *ent, gentity_t *other) VectorNormalize(other->client->ps.velocity); VectorScale(other->client->ps.velocity, oldspeed, other->client->ps.velocity); } - // - // also, if "ent" is a bot, tell "other" to move! - if (rand() % 50 == 0 && (ent->r.svFlags & SVF_BOT) && oldspeed < 10) - { - BotVoiceChatAfterIdleTime(ent->s.number, "Move", SAY_TEAM, 1000, qfalse, 20000, qfalse); - } } /* @@ -359,25 +352,6 @@ qboolean ReadyToConstruct(gentity_t *ent, gentity_t *constructible, qboolean upd return qtrue; } -void BotSetBlockEnt(int client, int blocker); -/* -============== -CheckBotImpacts -============== -*/ -void CheckBotImpacts(gentity_t *ent, gentity_t *other) -{ - char *blockEnts[] = { "func_explosive", NULL }; - int j; - - for (j = 0; blockEnts[j]; j++) - { - if (other->classname && !Q_stricmp(other->classname, blockEnts[j])) - { - BotSetBlockEnt(ent->s.number, other->s.number); - } - } -} //============================================================== @@ -433,11 +407,6 @@ void ClientImpacts(gentity_t *ent, pmove_t *pm) PushBot(other, ent); } - if (ent->r.svFlags & SVF_BOT) - { - CheckBotImpacts(ent, other); - } - if (!other->touch) { continue; diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 269c43ec8..877c7b0bd 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -33,8 +33,6 @@ #include "g_local.h" -void BotDebug(int clientNum); -void GetBotAutonomies(int clientNum, int *weapAutonomy, int *moveAutonomy); qboolean G_IsOnFireteam(int entityNum, fireteamData_t **teamNum); /* @@ -847,8 +845,6 @@ void Cmd_Kill_f(gentity_t *ent) player_die(ent, ent, ent, (g_gamestate.integer == GS_PLAYING) ? 100000 : 135, MOD_SUICIDE); } -void BotRecordTeamChange(int client); - void G_TeamDataForString(const char *teamstr, int clientNum, team_t *team, spectatorState_t *sState, int *specClient) { *sState = SPECTATOR_NOT; @@ -1118,7 +1114,6 @@ qboolean SetTeam(gentity_t *ent, char *s, qboolean force, weapon_t w1, weapon_t } G_verifyMatchState(oldTeam); - BotRecordTeamChange(clientNum); // Reset stats when changing teams if (team != oldTeam) @@ -1887,8 +1882,6 @@ void Cmd_Say_f(gentity_t *ent, int mode, qboolean arg0) G_Say(ent, NULL, mode, ConcatArgs(((arg0) ? 0 : 1))); } -extern void BotRecordVoiceChat(int client, int destclient, const char *id, int mode, qboolean noResponse); - // NERVE - SMF void G_VoiceTo(gentity_t *ent, gentity_t *other, int mode, const char *id, qboolean voiceonly) { @@ -1956,10 +1949,6 @@ void G_VoiceTo(gentity_t *ent, gentity_t *other, int mode, const char *id, qbool cmd = "vchat"; } - // RF, record this chat so bots can parse them - // bots respond with voiceonly, so we check for this so they dont keep responding to responses - BotRecordVoiceChat(ent->s.number, other->s.number, id, mode, voiceonly == 2); - if (voiceonly == 2) { voiceonly = qfalse; @@ -2919,8 +2908,6 @@ void Cmd_SetCameraOrigin_f(gentity_t *ent) } } -extern gentity_t *BotFindEntityForName(char *name); - /* ============== Cmd_InterruptCamera_f @@ -2928,6 +2915,8 @@ Cmd_InterruptCamera_f */ void Cmd_InterruptCamera_f(gentity_t *ent) { + + /* FIXME gentity_t *player; if (g_gametype.integer != GT_SINGLE_PLAYER && g_gametype.integer != GT_COOP) @@ -2935,7 +2924,7 @@ void Cmd_InterruptCamera_f(gentity_t *ent) return; } - player = BotFindEntityForName("player"); + player = BotFindEntityForName("player"); // BotFindEntityForName is obsolete use FindEntityForName? if (!player) { @@ -2943,6 +2932,7 @@ void Cmd_InterruptCamera_f(gentity_t *ent) } G_Script_ScriptEvent(player, "trigger", "cameraInterrupt"); +*/ } extern vec3_t playerMins; diff --git a/src/game/g_combat.c b/src/game/g_combat.c index be1818b99..1435c5665 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -370,7 +370,6 @@ char *modNames[] = player_die ================== */ -void BotRecordTeamDeath(int client); void player_die(gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int meansOfDeath) { @@ -1883,24 +1882,13 @@ void G_Damage(gentity_t *targ, gentity_t *inflictor, gentity_t *attacker, vec3_t // RF, entity scripting if (targ->health <= 0) // might have revived itself in death function { - if (targ->r.svFlags & SVF_BOT) - { - // See if this is the first kill of this bot - if (wasAlive) - { - Bot_ScriptEvent(targ->s.number, "death", ""); - } - } - else if ((targ->s.eType != ET_CONSTRUCTIBLE && targ->s.eType != ET_EXPLOSIVE) || - (targ->s.eType == ET_CONSTRUCTIBLE && !targ->desstages)) // call manually if using desstages + if ( (!(targ->r.svFlags & SVF_BOT) && targ->s.eType != ET_CONSTRUCTIBLE && targ->s.eType != ET_EXPLOSIVE) || + ( targ->s.eType == ET_CONSTRUCTIBLE && !targ->desstages) ) // call manually if using desstages { G_Script_ScriptEvent(targ, "death", ""); } } - - } - } else if (targ->pain) { diff --git a/src/game/g_func_decs.h b/src/game/g_func_decs.h index 61d4e014a..50b42c3bf 100644 --- a/src/game/g_func_decs.h +++ b/src/game/g_func_decs.h @@ -497,7 +497,7 @@ extern qboolean etpro_ScriptAction_SetValues(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_AbortIfNotSinglePlayer(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_AbortIfWarmup(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_Cvar(gentity_t *ent, char *params) ; -extern qboolean G_ScriptAction_SpawnBot(gentity_t *ent, char *params) ; + extern qboolean G_ScriptAction_ConstructibleDuration(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_ConstructibleWeaponclass(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_ConstructibleHealth(gentity_t *ent, char *params) ; @@ -506,12 +506,7 @@ extern qboolean G_ScriptAction_ConstructibleConstructXPBonus(gentity_t *ent, cha extern qboolean G_ScriptAction_ConstructibleChargeBarReq(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_ConstructibleClass(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_Construct(gentity_t *ent, char *params) ; -extern qboolean G_ScriptAction_SetBotGoalPriority(gentity_t *ent, char *params) ; -extern qboolean G_ScriptAction_SetAASState(gentity_t *ent, char *params) ; -extern qboolean G_ScriptAction_SetBotGoalState(gentity_t *ent, char *params) ; -extern qboolean G_IsValidBotStateGoal(gentity_t *ent) ; -extern qboolean G_ScriptAction_BotDebugging(gentity_t *ent, char *params) ; -extern qboolean G_ScriptAction_RemoveBot(gentity_t *ent, char *params) ; + extern qboolean G_ScriptAction_PrintGlobalAccum(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_PrintAccum(gentity_t *ent, char *params) ; extern qboolean G_ScriptAction_SetHQStatus(gentity_t *ent, char *params) ; @@ -1224,7 +1219,7 @@ extern qboolean ClientInactivityTimer(gclient_t *client) ; extern void SpectatorThink(gentity_t *ent, usercmd_t *ucmd) ; extern void G_TouchTriggers(gentity_t *ent) ; extern void ClientImpacts(gentity_t *ent, pmove_t *pm) ; -extern void CheckBotImpacts(gentity_t *ent, gentity_t *other) ; + extern qboolean ReadyToConstruct(gentity_t *ent, gentity_t *constructible, qboolean updateState) ; extern qboolean ReadyToCallArtillery(gentity_t *ent) ; extern qboolean ClientNeedsAmmo(int client) ; diff --git a/src/game/g_funcs.h b/src/game/g_funcs.h index 66aa2e154..00a9345fe 100644 --- a/src/game/g_funcs.h +++ b/src/game/g_funcs.h @@ -497,7 +497,7 @@ { "G_ScriptAction_AbortIfNotSinglePlayer", (byte *)G_ScriptAction_AbortIfNotSinglePlayer }, { "G_ScriptAction_AbortIfWarmup", (byte *)G_ScriptAction_AbortIfWarmup }, { "G_ScriptAction_Cvar", (byte *)G_ScriptAction_Cvar }, -{ "G_ScriptAction_SpawnBot", (byte *)G_ScriptAction_SpawnBot }, + { "G_ScriptAction_ConstructibleDuration", (byte *)G_ScriptAction_ConstructibleDuration }, { "G_ScriptAction_ConstructibleWeaponclass", (byte *)G_ScriptAction_ConstructibleWeaponclass }, { "G_ScriptAction_ConstructibleHealth", (byte *)G_ScriptAction_ConstructibleHealth }, @@ -506,12 +506,7 @@ { "G_ScriptAction_ConstructibleChargeBarReq", (byte *)G_ScriptAction_ConstructibleChargeBarReq }, { "G_ScriptAction_ConstructibleClass", (byte *)G_ScriptAction_ConstructibleClass }, { "G_ScriptAction_Construct", (byte *)G_ScriptAction_Construct }, -{ "G_ScriptAction_SetBotGoalPriority", (byte *)G_ScriptAction_SetBotGoalPriority }, -{ "G_ScriptAction_SetAASState", (byte *)G_ScriptAction_SetAASState }, -{ "G_ScriptAction_SetBotGoalState", (byte *)G_ScriptAction_SetBotGoalState }, -{ "G_IsValidBotStateGoal", (byte *)G_IsValidBotStateGoal }, -{ "G_ScriptAction_BotDebugging", (byte *)G_ScriptAction_BotDebugging }, -{ "G_ScriptAction_RemoveBot", (byte *)G_ScriptAction_RemoveBot }, + { "G_ScriptAction_PrintGlobalAccum", (byte *)G_ScriptAction_PrintGlobalAccum }, { "G_ScriptAction_PrintAccum", (byte *)G_ScriptAction_PrintAccum }, { "G_ScriptAction_SetHQStatus", (byte *)G_ScriptAction_SetHQStatus }, @@ -1223,7 +1218,7 @@ { "SpectatorThink", (byte *)SpectatorThink }, { "G_TouchTriggers", (byte *)G_TouchTriggers }, { "ClientImpacts", (byte *)ClientImpacts }, -{ "CheckBotImpacts", (byte *)CheckBotImpacts }, + { "ReadyToConstruct", (byte *)ReadyToConstruct }, { "ReadyToCallArtillery", (byte *)ReadyToCallArtillery }, { "ClientNeedsAmmo", (byte *)ClientNeedsAmmo }, diff --git a/src/game/g_items.c b/src/game/g_items.c index a867ca408..b809d9bea 100644 --- a/src/game/g_items.c +++ b/src/game/g_items.c @@ -618,9 +618,6 @@ void G_DropWeapon(gentity_t *ent, weapon_t weapon) client->ps.ammoclip[BG_FindClipForWeapon(weapon)] = 0; } -// TAT 1/6/2003 - Bot picks up a new weapon -void BotPickupWeapon(int client, int weaponnum, qboolean alreadyHave); - qboolean G_CanPickupWeapon(weapon_t weapon, gentity_t *ent) { if (ent->client->sess.sessionTeam == TEAM_AXIS) @@ -808,12 +805,6 @@ int Pickup_Weapon(gentity_t *ent, gentity_t *other) } } - // TAT 1/6/2003 - If we are a bot, call the pickup function - if (other->r.svFlags & SVF_BOT) - { - BotPickupWeapon(other->s.number, ent->item->giTag, alreadyHave); - } - return -1; } diff --git a/src/game/g_local.h b/src/game/g_local.h index a9f1cd803..2362a2cfa 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -1571,14 +1571,6 @@ float AngleDifference(float ang1, float ang2); // g_props.c void Props_Chair_Skyboxtouch(gentity_t *ent); -// ai_script.c -void Bot_ScriptLoad(void); -qboolean Bot_ScriptInitBot(int entnum); -void Bot_ScriptEvent(int entityNum, char *eventStr, char *params); - -void Bot_TeamScriptEvent(int team, char *eventStr, char *params); - - #include "g_team.h" // teamplay specific stuff extern level_locals_t level; @@ -2258,8 +2250,6 @@ void G_SetTargetName(gentity_t *ent, char *targetname); void G_KillEnts(const char *target, gentity_t *ignore, gentity_t *killer, meansOfDeath_t mod); void trap_EngineerTrace(trace_t *results, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int passEntityNum, int contentmask); -qboolean G_ConstructionIsPartlyBuilt(gentity_t *ent); - int G_CountTeamMedics(team_t team, qboolean alivecheck); qboolean G_TankIsOccupied(gentity_t *ent); qboolean G_TankIsMountable(gentity_t *ent, gentity_t *other); diff --git a/src/game/g_misc.c b/src/game/g_misc.c index da02d628f..c0cfe4d2d 100644 --- a/src/game/g_misc.c +++ b/src/game/g_misc.c @@ -2909,3 +2909,151 @@ void G_TempTraceIgnorePlayersAndBodies(void) G_TempTraceIgnoreEntity(level.bodyQue[i]); } } + +// returns qtrue if a construction is under way on this ent, even before it hits any stages +qboolean G_ConstructionBegun( gentity_t* ent ) { + if( G_ConstructionIsPartlyBuilt( ent ) ) { + return qtrue; + } + + if( ent->s.angles2[0] ) { + return qtrue; + } + + return qfalse; +} + +// returns qtrue if all stage are built +qboolean G_ConstructionIsFullyBuilt( gentity_t* ent ) { + if( ent->s.angles2[1] != 1 ) { + return qfalse; + } + return qtrue; +} + +// returns qtrue if 1 stage or more is built +qboolean G_ConstructionIsPartlyBuilt( gentity_t* ent ) { + if( G_ConstructionIsFullyBuilt( ent ) ) { + return qtrue; + } + + if( ent->count2 ) { + if( !ent->grenadeFired ) { + return qfalse; + } else { + return qtrue; + } + } + + return qfalse; +} + + +// returns the constructible for this team that is attached to this toi +gentity_t* G_ConstructionForTeam( gentity_t* toi, team_t team ) { + gentity_t* targ = toi->target_ent; + + if(!targ || targ->s.eType != ET_CONSTRUCTIBLE) { + return NULL; + } + + if( targ->spawnflags & 4 ) { + if( team == TEAM_ALLIES ) { + return targ->chain; + } + } + else if( targ->spawnflags & 8 ) { + if( team == TEAM_AXIS ) { + return targ->chain; + } + } + + return targ; +} + +gentity_t* G_IsConstructible( team_t team, gentity_t* toi ) { + gentity_t* ent; + + if( !toi || toi->s.eType != ET_OID_TRIGGER ) { + return NULL; + } + + if( !(ent = G_ConstructionForTeam( toi, team )) ) { + return NULL; + } + + if( G_ConstructionIsFullyBuilt( ent ) ) { + return NULL; + } + + if( ent->chain && G_ConstructionBegun( ent->chain ) ) { + return NULL; + } + + return ent; +} + +/* +============== +AngleDifference +============== +*/ +float AngleDifference(float ang1, float ang2) { + float diff = ang1 - ang2; + + if (ang1 > ang2) { + if (diff > 180.0f) diff -= 360.0f; + } + else { + if (diff < -180.0f) diff += 360.0f; + } + return diff; +} + + +/* +================== +ClientName +================== +*/ +char *ClientName(int client, char *name, int size) { + char buf[MAX_INFO_STRING]; + + if (client < 0 || client >= MAX_CLIENTS) { + G_Printf("^1ClientName: client out of range\n"); + return "[client out of range]"; + } + trap_GetConfigstring(CS_PLAYERS+client, buf, sizeof(buf)); + strncpy(name, Info_ValueForKey(buf, "n"), size-1); + name[size-1] = '\0'; + Q_CleanStr( name ); + return name; +} + +/* +================== +FindClientByName +================== +*/ +int FindClientByName(char *name) { + int i, j; + char buf[MAX_INFO_STRING]; + + for(j = 0; j < level.numConnectedClients; j++) { + i = level.sortedClients[j]; + ClientName(i, buf, sizeof(buf)); + if (!Q_stricmp(buf, name)) { + return i; + } + } + + for(j = 0; j < level.numConnectedClients; j++) { + i = level.sortedClients[j]; + ClientName(i, buf, sizeof(buf)); + if( Q_stristr(buf, name) ) { + return i; + } + } + + return -1; +} diff --git a/src/game/g_script.c b/src/game/g_script.c index b4c8cba1e..767b54a9a 100644 --- a/src/game/g_script.c +++ b/src/game/g_script.c @@ -105,7 +105,6 @@ qboolean G_ScriptAction_SetHQStatus(gentity_t *ent, char *params); qboolean G_ScriptAction_PrintAccum(gentity_t *ent, char *params); qboolean G_ScriptAction_PrintGlobalAccum(gentity_t *ent, char *params); -qboolean G_ScriptAction_BotDebugging(gentity_t *ent, char *params); qboolean G_ScriptAction_ObjectiveStatus(gentity_t *ent, char *params); qboolean G_ScriptAction_SetModelFromBrushmodel(gentity_t *ent, char *params); qboolean G_ScriptAction_SetPosition(gentity_t *ent, char *params); @@ -119,7 +118,7 @@ qboolean G_ScriptAction_AddTankAmmo(gentity_t *ent, char *params); qboolean G_ScriptAction_Kill(gentity_t *ent, char *params); qboolean G_ScriptAction_DisableMessage(gentity_t *ent, char *params); qboolean G_ScriptAction_SetGlobalFog(gentity_t *ent, char *params); -qboolean G_ScriptAction_SpawnBot(gentity_t *ent, char *params); + qboolean G_ScriptAction_Cvar(gentity_t *ent, char *params); qboolean G_ScriptAction_AbortIfWarmup(gentity_t *ent, char *params); qboolean G_ScriptAction_AbortIfNotSinglePlayer(gentity_t *ent, char *params); @@ -130,9 +129,7 @@ qboolean G_ScriptAction_MusicQueue(gentity_t *ent, char *params); qboolean G_ScriptAction_MusicFade(gentity_t *ent, char *params); qboolean G_ScriptAction_SetDebugLevel(gentity_t *ent, char *params); qboolean G_ScriptAction_FadeAllSounds(gentity_t *ent, char *params); -qboolean G_ScriptAction_SetBotGoalState(gentity_t *ent, char *params); -qboolean G_ScriptAction_SetBotGoalPriority(gentity_t *ent, char *params); -qboolean G_ScriptAction_SetAASState(gentity_t *ent, char *params); + qboolean G_ScriptAction_Construct(gentity_t *ent, char *params) ; qboolean G_ScriptAction_ConstructibleClass(gentity_t *ent, char *params) ; qboolean G_ScriptAction_ConstructibleChargeBarReq(gentity_t *ent, char *params) ; @@ -227,9 +224,7 @@ g_script_stack_action_t gScriptActions[] = // fade all sounds up or down { "fadeallsounds", G_ScriptAction_FadeAllSounds }, - { "setbotgoalstate", G_ScriptAction_SetBotGoalState }, - { "setbotgoalpriority", G_ScriptAction_SetBotGoalPriority }, - { "setaasstate", G_ScriptAction_SetAASState }, + { "construct", G_ScriptAction_Construct }, { "spawnrubble", G_ScriptAction_SpawnRubble }, { "setglobalfog", G_ScriptAction_SetGlobalFog }, diff --git a/src/game/g_script_actions.c b/src/game/g_script_actions.c index 34656e473..b06064411 100644 --- a/src/game/g_script_actions.c +++ b/src/game/g_script_actions.c @@ -1645,10 +1645,6 @@ qboolean G_ScriptAction_Trigger(gentity_t *ent, char *params) terminate = qtrue; } } - else - { - Bot_ScriptEvent(trent->s.number, "trigger", trigger); - } } // if (terminate) @@ -1674,10 +1670,6 @@ qboolean G_ScriptAction_Trigger(gentity_t *ent, char *params) } else if (!Q_stricmp(name, "activator")) { - if (ent->activator && ent->activator->client && (ent->activator->r.svFlags & SVF_BOT) && ent->inuse && ent->activator->client->ps.stats[STAT_HEALTH] > 0) - { - Bot_ScriptEvent(ent->activator - g_entities, "trigger", trigger); - } return qtrue; // always true, as players aren't always there } else @@ -1699,10 +1691,6 @@ qboolean G_ScriptAction_Trigger(gentity_t *ent, char *params) terminate = qtrue; } } - else - { - Bot_ScriptEvent(trent->s.number, "trigger", trigger); - } } // if (terminate) @@ -2312,8 +2300,6 @@ G_ScriptAction_Accum ================= */ -int BotGetTargetDynamite(int *list, int listSize, gentity_t *target); - qboolean G_ScriptAction_Accum(gentity_t *ent, char *params) { char *pString, *token, lastToken[MAX_QPATH], name[MAX_QPATH]; @@ -2536,7 +2522,22 @@ qboolean G_ScriptAction_Accum(gentity_t *ent, char *params) G_Error("Scripting: accum %s could not find target\n", lastToken); } - ent->scriptAccumBuffer[bufferIndex] = BotGetTargetDynamite(NULL, 0, target); + { + int num=0, i; + // sigh, searching.. + for ( i=MAX_CLIENTS ; i< level.num_entities; ++i ){ + + if ( !(g_entities[i].etpro_misc_1 & 1)) + continue; +// FIXME +// if ( g_entities[i].etpro_misc_2 != target-g_entities) +// continue; + + num++; + } + + ent->scriptAccumBuffer[bufferIndex] = num; + } } else { diff --git a/src/game/g_spawn.c b/src/game/g_spawn.c index 28a22bddd..6dc029740 100644 --- a/src/game/g_spawn.c +++ b/src/game/g_spawn.c @@ -879,9 +879,6 @@ void G_SpawnGEntityFromSpawnVars(void) { G_FreeEntity(ent); } - - // RF, try and move it into the bot entities if possible -// BotCheckBotGameEntity( ent ); } diff --git a/src/game/g_team.c b/src/game/g_team.c index 4cba7784a..07a280f8e 100644 --- a/src/game/g_team.c +++ b/src/game/g_team.c @@ -642,7 +642,6 @@ int Team_TouchEnemyFlag(gentity_t *ent, gentity_t *other, int team) G_Script_ScriptEvent(level.gameManager, "trigger", "allied_object_stolen"); } G_Script_ScriptEvent(ent, "trigger", "stolen"); - Bot_TeamScriptEvent(TEAM_ALLIES, "objective", "stolen"); } else { @@ -660,7 +659,6 @@ int Team_TouchEnemyFlag(gentity_t *ent, gentity_t *other, int team) G_Script_ScriptEvent(level.gameManager, "trigger", "axis_object_stolen"); } G_Script_ScriptEvent(ent, "trigger", "stolen"); - Bot_TeamScriptEvent(TEAM_AXIS, "objective", "stolen"); } // dhm // jpw @@ -984,7 +982,6 @@ gentity_t *SelectCTFSpawnPoint(team_t team, int teamstate, vec3_t origin, vec3_t /*---------------------------------------------------------------------------*/ -void GetBotAutonomies(int clientNum, int *weapAutonomy, int *moveAutonomy); /* ================== TeamplayLocationsMessage