some refactoring

This commit is contained in:
jeefo 2015-07-17 19:23:31 +03:00
commit 36c549a0ce
9 changed files with 1987 additions and 1856 deletions

View file

@ -962,6 +962,28 @@ private:
bool CanJumpUp (const Vector &normal);
bool CantMoveForward (const Vector &normal, TraceResult *tr);
// split RunTask into RunTask_* functions
void RunTask_Normal (void);
void RunTask_Spray (void);
void RunTask_HuntEnemy (void);
void RunTask_SeekCover (void);
void RunTask_Attack (void);
void RunTask_Pause (void);
void RunTask_Blinded (void);
void RunTask_Camp (void);
void RunTask_Hide (void);
void RunTask_MoveToPos (void);
void RunTask_PlantBomb (void);
void RunTask_DefuseBomb (void);
void RunTask_FollowUser (void);
void RunTask_Throw_HE (void);
void RunTask_Throw_FL (void);
void RunTask_Throw_SG (void);
void RunTask_DoubleJump (void);
void RunTask_EscapeFromBomb (void);
void RunTask_PickupItem (void);
void RunTask_ShootBreakable (void);
#ifdef DEAD_CODE
bool CanStrafeRight (TraceResult *tr);
bool CanStrafeLeft (TraceResult *tr);
@ -1035,6 +1057,7 @@ private:
bool ReactOnEnemy (void);
void ResetCollideState (void);
void SetConditions (void);
void UpdateEmotions (void);
void SetStrafeSpeed (const Vector &moveDir, float strafeSpeed);
void StartGame (void);
void TaskComplete (void);
@ -1140,7 +1163,6 @@ public:
bool m_canChooseAimDirection; // can choose aiming direction
float m_turnAwayFromFlashbang; // bot turned away from flashbang
float m_breakableCheckTime;
float m_blindTime; // time when bot is blinded
float m_blindMoveSpeed; // mad speeds when bot is blind
float m_blindSidemoveSpeed; // mad side move speeds when bot is blind
@ -1233,7 +1255,9 @@ public:
void RemoveCertainTask (TaskID id);
void PushTask (TaskID id, float desire, int data, float time, bool canContinue);
void ApplyTaskFilters (void);
void ResetTasks (void);
TaskItem *GetTask (void);
inline TaskID GetTaskId (void) { return GetTask ()->id; };
@ -1563,11 +1587,13 @@ public:
void PushRegisteredConVarsToEngine (bool gameVars = false);
};
#define g_netMsg NetworkMsg::GetObject ()
#define g_botManager BotManager::GetObject ()
#define g_localizer Localizer::GetObject ()
#define g_convarWrapper ConVarWrapper::GetObject ()
#define g_waypoint Waypoint::GetObject ()
// expose bot globals
#define netmsg NetworkMsg::GetObject ()
#define locale Localizer::GetObject ()
#define convars ConVarWrapper::GetObject ()
#define waypoint Waypoint::GetObject ()
#define botMgr BotManager::GetObject ()
// simplify access for console variables
class ConVar
@ -1580,7 +1606,7 @@ public:
{
m_eptr = NULL;
g_convarWrapper->RegisterVariable (name, initval, type, this);
convars->RegisterVariable (name, initval, type, this);
}
inline bool GetBool(void)

File diff suppressed because it is too large Load diff

View file

@ -358,7 +358,7 @@ bool Bot::LookupEnemy (void)
if (!(g_clients[j].flags & CF_USED) || !(g_clients[j].flags & CF_ALIVE) || g_clients[j].team != m_team || g_clients[j].ent == GetEntity ())
continue;
Bot *friendBot = g_botManager->GetBot (g_clients[j].ent);
Bot *friendBot = botMgr->GetBot (g_clients[j].ent);
if (friendBot != NULL)
{
@ -1211,7 +1211,7 @@ void Bot::CombatFight (void)
if (!IsVisible (m_enemy->v.origin, GetEntity ()) && !IsVisible (m_enemy->v.origin + Vector (0, 0, -enemyHalfHeight), GetEntity ()))
shouldDuck = false;
if (shouldDuck && GetTaskId () != TASK_SEEKCOVER && GetTaskId () != TASK_HUNTENEMY && (m_visibility & VISIBLE_BODY) && !(m_visibility & VISIBLE_OTHER) && g_waypoint->IsDuckVisible (m_currentWaypointIndex, g_waypoint->FindNearest (m_enemy->v.origin)))
if (shouldDuck && GetTaskId () != TASK_SEEKCOVER && GetTaskId () != TASK_HUNTENEMY && (m_visibility & VISIBLE_BODY) && !(m_visibility & VISIBLE_OTHER) && waypoint->IsDuckVisible (m_currentWaypointIndex, waypoint->FindNearest (m_enemy->v.origin)))
m_duckTime = GetWorldTime () + 0.5f;
m_moveSpeed = 0.0;

View file

@ -22,55 +22,55 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
{
// adding one bot with random parameters to random team
if (stricmp (arg0, "addbot") == 0 || stricmp (arg0, "add") == 0)
g_botManager->AddBot (arg4, arg1, arg2, arg3, arg5);
botMgr->AddBot (arg4, arg1, arg2, arg3, arg5);
// adding one bot with high difficulty parameters to random team
else if (stricmp (arg0, "addbot_hs") == 0 || stricmp (arg0, "addhs") == 0)
g_botManager->AddBot (arg4, "4", "1", arg3, arg5);
botMgr->AddBot (arg4, "4", "1", arg3, arg5);
// adding one bot with random parameters to terrorist team
else if (stricmp (arg0, "addbot_t") == 0 || stricmp (arg0, "add_t") == 0)
g_botManager->AddBot (arg4, arg1, arg2, "1", arg5);
botMgr->AddBot (arg4, arg1, arg2, "1", arg5);
// adding one bot with random parameters to counter-terrorist team
else if (stricmp (arg0, "addbot_ct") == 0 || stricmp (arg0, "add_ct") == 0)
g_botManager->AddBot (arg4, arg1, arg2, "2", arg5);
botMgr->AddBot (arg4, arg1, arg2, "2", arg5);
// kicking off one bot from the terrorist team
else if (stricmp (arg0, "kickbot_t") == 0 || stricmp (arg0, "kick_t") == 0)
g_botManager->RemoveFromTeam (TEAM_TF);
botMgr->RemoveFromTeam (TEAM_TF);
// kicking off one bot from the counter-terrorist team
else if (stricmp (arg0, "kickbot_ct") == 0 || stricmp (arg0, "kick_ct") == 0)
g_botManager->RemoveFromTeam (TEAM_CF);
botMgr->RemoveFromTeam (TEAM_CF);
// kills all bots on the terrorist team
else if (stricmp (arg0, "killbots_t") == 0 || stricmp (arg0, "kill_t") == 0)
g_botManager->KillAll (TEAM_TF);
botMgr->KillAll (TEAM_TF);
// kills all bots on the counter-terrorist team
else if (stricmp (arg0, "killbots_ct") == 0 || stricmp (arg0, "kill_ct") == 0)
g_botManager->KillAll (TEAM_CF);
botMgr->KillAll (TEAM_CF);
// list all bots playeing on the server
else if (stricmp (arg0, "listbots") == 0 || stricmp (arg0, "list") == 0)
g_botManager->ListBots ();
botMgr->ListBots ();
// kick off all bots from the played server
else if (stricmp (arg0, "kickbots") == 0 || stricmp (arg0, "kickall") == 0)
g_botManager->RemoveAll ();
botMgr->RemoveAll ();
// kill all bots on the played server
else if (stricmp (arg0, "killbots") == 0 || stricmp (arg0, "killall") == 0)
g_botManager->KillAll ();
botMgr->KillAll ();
// kick off one random bot from the played server
else if (stricmp (arg0, "kickone") == 0 || stricmp (arg0, "kick") == 0)
g_botManager->RemoveRandom ();
botMgr->RemoveRandom ();
// fill played server with bots
else if (stricmp (arg0, "fillserver") == 0 || stricmp (arg0, "fill") == 0)
g_botManager->FillServer (atoi (arg1), IsNullString (arg2) ? -1 : atoi (arg2), IsNullString (arg3) ? -1 : atoi (arg3), IsNullString (arg4) ? -1 : atoi (arg4));
botMgr->FillServer (atoi (arg1), IsNullString (arg2) ? -1 : atoi (arg2), IsNullString (arg3) ? -1 : atoi (arg3), IsNullString (arg4) ? -1 : atoi (arg4));
// select the weapon mode for bots
else if (stricmp (arg0, "weaponmode") == 0 || stricmp (arg0, "wmode") == 0)
@ -79,7 +79,7 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// check is selected range valid
if (selection >= 1 && selection <= 7)
g_botManager->SetWeaponMode (selection);
botMgr->SetWeaponMode (selection);
else
ClientPrint (ent, print_withtag, "Choose weapon from 1 to 7 range");
}
@ -94,8 +94,8 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// loop through all players
for (int i = 0; i < GetMaxClients (); i++)
{
if (g_botManager->GetBot (i) != NULL)
g_botManager->GetBot (i)->m_voteMap = nominatedMap;
if (botMgr->GetBot (i) != NULL)
botMgr->GetBot (i)->m_voteMap = nominatedMap;
}
ClientPrint (ent, print_withtag, "All dead bots will vote for map #%d", nominatedMap);
}
@ -258,7 +258,7 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// show direction to specified waypoint
else if (stricmp (arg1, "find") == 0)
g_waypoint->SetFindIndex (atoi (arg2));
waypoint->SetFindIndex (atoi (arg2));
// opens adding waypoint menu
else if (stricmp (arg1, "add") == 0)
@ -270,7 +270,7 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// creates basic waypoints on the map (ladder/spawn points/goals)
else if (stricmp (arg1, "addbasic") == 0)
{
g_waypoint->CreateBasic ();
waypoint->CreateBasic ();
CenterPrint ("Basic waypoints was Created");
}
@ -278,41 +278,41 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
else if (stricmp (arg1, "delete") == 0)
{
g_waypointOn = true; // turn waypoints on
g_waypoint->Delete ();
waypoint->Delete ();
}
// save waypoint data into file on hard disk
else if (stricmp (arg1, "save") == 0)
{
char *waypointSaveMessage = g_localizer->TranslateInput ("Waypoints Saved");
char *waypointSaveMessage = locale->TranslateInput ("Waypoints Saved");
if (FStrEq (arg2, "nocheck"))
{
g_waypoint->Save ();
waypoint->Save ();
ServerPrint (waypointSaveMessage);
}
else if (g_waypoint->NodesValid ())
else if (waypoint->NodesValid ())
{
g_waypoint->Save ();
waypoint->Save ();
ServerPrint (waypointSaveMessage);
}
}
// remove waypoint and all corresponding files from hard disk
else if (stricmp (arg1, "erase") == 0)
g_waypoint->EraseFromHardDisk ();
waypoint->EraseFromHardDisk ();
// load all waypoints again (overrides all changes, that wasn't saved)
else if (stricmp (arg1, "load") == 0)
{
if (g_waypoint->Load ())
if (waypoint->Load ())
ServerPrint ("Waypoints loaded");
}
// check all nodes for validation
else if (stricmp (arg1, "check") == 0)
{
if (g_waypoint->NodesValid ())
if (waypoint->NodesValid ())
CenterPrint ("Nodes work Fine");
}
@ -322,11 +322,11 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// setting waypoint radius
else if (stricmp (arg1, "setradius") == 0)
g_waypoint->SetRadius (atoi (arg2));
waypoint->SetRadius (atoi (arg2));
// remembers nearest waypoint
else if (stricmp (arg1, "cache") == 0)
g_waypoint->CacheWaypoint ();
waypoint->CacheWaypoint ();
// teleport player to specified waypoint
else if (stricmp (arg1, "teleport") == 0)
@ -335,7 +335,7 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
if (teleportPoint < g_numWaypoints)
{
Path *path = g_waypoint->GetPath (teleportPoint);
Path *path = waypoint->GetPath (teleportPoint);
(*g_engfuncs.pfnSetOrigin) (g_hostEntity, path->origin);
g_waypointOn = true;
@ -366,19 +366,19 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// creates incoming path from the cached waypoint
else if (stricmp (arg1, "create_in") == 0)
g_waypoint->CreatePath (CONNECTION_INCOMING);
waypoint->CreatePath (CONNECTION_INCOMING);
// creates outgoing path from current waypoint
else if (stricmp (arg1, "create_out") == 0)
g_waypoint->CreatePath (CONNECTION_OUTGOING);
waypoint->CreatePath (CONNECTION_OUTGOING);
// creates bidirectional path from cahed to current waypoint
else if (stricmp (arg1, "create_both") == 0)
g_waypoint->CreatePath (CONNECTION_BOTHWAYS);
waypoint->CreatePath (CONNECTION_BOTHWAYS);
// delete special path
else if (stricmp (arg1, "delete") == 0)
g_waypoint->DeletePath ();
waypoint->DeletePath ();
// sets auto path maximum distance
else if (stricmp (arg1, "autodistance") == 0)
@ -415,8 +415,8 @@ int BotCommandHandler (edict_t *ent, const char *arg0, const char *arg1, const c
// write experience table (and visibility table) to hard disk
if (stricmp (arg1, "save") == 0)
{
g_waypoint->SaveExperienceTab ();
g_waypoint->SaveVisibilityTab ();
waypoint->SaveExperienceTab ();
waypoint->SaveVisibilityTab ();
ServerPrint ("Experience tab saved");
}
@ -840,7 +840,7 @@ void InitConfig (void)
}
if (!IsNullString (temp.translated) && !IsNullString (temp.original))
g_localizer->m_langTab.Push (temp);
locale->m_langTab.Push (temp);
}
else if (strncmp (line, "[TRANSLATED]", 12) == 0)
{
@ -936,7 +936,7 @@ void Touch (edict_t *pentTouched, edict_t *pentOther)
if (!IsEntityNull (pentOther) && (pentOther->v.flags & FL_FAKECLIENT))
{
Bot *bot = g_botManager->GetBot (pentOther);
Bot *bot = botMgr->GetBot (pentOther);
if (bot != NULL)
bot->VerifyBreakable (pentTouched);
@ -958,7 +958,7 @@ int Spawn (edict_t *ent)
{
g_worldEntity = ent; // save the world entity for future use
g_convarWrapper->PushRegisteredConVarsToEngine (true);
convars->PushRegisteredConVarsToEngine (true);
PRECACHE_SOUND (ENGINE_STR ("weapons/xbow_hit1.wav")); // waypoint add
PRECACHE_SOUND (ENGINE_STR ("weapons/mine_activate.wav")); // waypoint delete
@ -1036,7 +1036,7 @@ void UpdateClientData (const struct edict_s *ent, int sendweapons, struct client
extern ConVar yb_latency_display;
if (yb_latency_display.GetInt () == 2)
g_botManager->SendPingDataOffsets (const_cast <edict_t *> (ent));
botMgr->SendPingDataOffsets (const_cast <edict_t *> (ent));
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -1046,7 +1046,7 @@ void UpdateClientData (const struct edict_s *ent, int sendweapons, struct client
void ClientPutInServer (edict_t *ent)
{
g_botManager->CheckAutoVacate ();
botMgr->CheckAutoVacate ();
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -1109,7 +1109,7 @@ void ClientDisconnect (edict_t *ent)
InternalAssert (i >= 0 && i < 32);
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
// check if its a bot
if (bot != NULL)
@ -1119,7 +1119,7 @@ void ClientDisconnect (edict_t *ent)
bot->SwitchChatterIcon (false);
bot->ReleaseUsedName ();
g_botManager->Free (i);
botMgr->Free (i);
}
}
@ -1220,15 +1220,15 @@ void ClientCommand (edict_t *ent)
case 5:
case 6:
case 7:
g_waypoint->Add (selection - 1);
waypoint->Add (selection - 1);
break;
case 8:
g_waypoint->Add (100);
waypoint->Add (100);
break;
case 9:
g_waypoint->SetLearnJumpWaypoint ();
waypoint->SetLearnJumpWaypoint ();
break;
case 10:
@ -1247,23 +1247,23 @@ void ClientCommand (edict_t *ent)
switch (selection)
{
case 1:
g_waypoint->ToggleFlags (FLAG_NOHOSTAGE);
waypoint->ToggleFlags (FLAG_NOHOSTAGE);
break;
case 2:
g_waypoint->ToggleFlags (FLAG_TF_ONLY);
waypoint->ToggleFlags (FLAG_TF_ONLY);
break;
case 3:
g_waypoint->ToggleFlags (FLAG_CF_ONLY);
waypoint->ToggleFlags (FLAG_CF_ONLY);
break;
case 4:
g_waypoint->ToggleFlags (FLAG_LIFT);
waypoint->ToggleFlags (FLAG_LIFT);
break;
case 5:
g_waypoint->ToggleFlags (FLAG_SNIPER);
waypoint->ToggleFlags (FLAG_SNIPER);
break;
}
if (g_isMetamod)
@ -1286,7 +1286,7 @@ void ClientCommand (edict_t *ent)
case 2:
g_waypointOn = true;
g_waypoint->CacheWaypoint ();
waypoint->CacheWaypoint ();
break;
case 3:
@ -1296,7 +1296,7 @@ void ClientCommand (edict_t *ent)
case 4:
g_waypointOn = true;
g_waypoint->DeletePath ();
waypoint->DeletePath ();
break;
case 5:
@ -1306,7 +1306,7 @@ void ClientCommand (edict_t *ent)
case 6:
g_waypointOn = true;
g_waypoint->Delete ();
waypoint->Delete ();
break;
case 7:
@ -1350,7 +1350,7 @@ void ClientCommand (edict_t *ent)
for (int i = 0; i < g_numWaypoints; i++)
{
Path *path = g_waypoint->GetPath (i);
Path *path = waypoint->GetPath (i);
if (path->flags & FLAG_TF_ONLY)
terrPoints++;
@ -1394,22 +1394,22 @@ void ClientCommand (edict_t *ent)
break;
case 4:
if (g_waypoint->NodesValid ())
g_waypoint->Save ();
if (waypoint->NodesValid ())
waypoint->Save ();
else
CenterPrint ("Waypoint not saved\nThere are errors, see console");
break;
case 5:
g_waypoint->Save ();
waypoint->Save ();
break;
case 6:
g_waypoint->Load ();
waypoint->Load ();
break;
case 7:
if (g_waypoint->NodesValid ())
if (waypoint->NodesValid ())
CenterPrint ("Nodes work Find");
else
CenterPrint ("There are errors, see console");
@ -1437,7 +1437,7 @@ void ClientCommand (edict_t *ent)
const int radiusValue[] = {0, 8, 16, 32, 48, 64, 80, 96, 128};
if ((selection >= 1) && (selection <= 9))
g_waypoint->SetRadius (radiusValue[selection - 1]);
waypoint->SetRadius (radiusValue[selection - 1]);
if (g_isMetamod)
RETURN_META (MRES_SUPERCEDE);
@ -1465,7 +1465,7 @@ void ClientCommand (edict_t *ent)
break;
case 4:
g_botManager->KillAll ();
botMgr->KillAll ();
break;
case 10:
@ -1485,7 +1485,7 @@ void ClientCommand (edict_t *ent)
switch (selection)
{
case 1:
g_botManager->AddRandom ();
botMgr->AddRandom ();
break;
case 2:
@ -1493,15 +1493,15 @@ void ClientCommand (edict_t *ent)
break;
case 3:
g_botManager->RemoveRandom ();
botMgr->RemoveRandom ();
break;
case 4:
g_botManager->RemoveAll ();
botMgr->RemoveAll ();
break;
case 5:
g_botManager->RemoveMenu (ent, 1);
botMgr->RemoveMenu (ent, 1);
break;
case 10:
@ -1628,15 +1628,15 @@ void ClientCommand (edict_t *ent)
switch (selection)
{
case 1:
g_waypoint->CreatePath (CONNECTION_OUTGOING);
waypoint->CreatePath (CONNECTION_OUTGOING);
break;
case 2:
g_waypoint->CreatePath (CONNECTION_INCOMING);
waypoint->CreatePath (CONNECTION_INCOMING);
break;
case 3:
g_waypoint->CreatePath (CONNECTION_BOTHWAYS);
waypoint->CreatePath (CONNECTION_BOTHWAYS);
break;
case 10:
@ -1726,7 +1726,7 @@ void ClientCommand (edict_t *ent)
case 2:
case 3:
case 4:
g_botManager->FillServer (fillServerTeam, selection - 2, g_storeAddbotVars[0]);
botMgr->FillServer (fillServerTeam, selection - 2, g_storeAddbotVars[0]);
case 10:
DisplayMenuToClient (ent, NULL);
@ -1750,7 +1750,7 @@ void ClientCommand (edict_t *ent)
if (selection == 5)
{
g_storeAddbotVars[2] = 5;
g_botManager->AddBot ("", g_storeAddbotVars[0], g_storeAddbotVars[3], g_storeAddbotVars[1], g_storeAddbotVars[2]);
botMgr->AddBot ("", g_storeAddbotVars[0], g_storeAddbotVars[3], g_storeAddbotVars[1], g_storeAddbotVars[2]);
}
else
{
@ -1805,7 +1805,7 @@ void ClientCommand (edict_t *ent)
case 4:
case 5:
g_storeAddbotVars[2] = selection;
g_botManager->AddBot ("", g_storeAddbotVars[0], g_storeAddbotVars[3], g_storeAddbotVars[1], g_storeAddbotVars[2]);
botMgr->AddBot ("", g_storeAddbotVars[0], g_storeAddbotVars[3], g_storeAddbotVars[1], g_storeAddbotVars[2]);
break;
case 10:
@ -1830,7 +1830,7 @@ void ClientCommand (edict_t *ent)
case 5:
case 6:
case 7:
g_botManager->SetWeaponMode (selection);
botMgr->SetWeaponMode (selection);
break;
case 10:
@ -1856,11 +1856,11 @@ void ClientCommand (edict_t *ent)
case 6:
case 7:
case 8:
g_botManager->GetBot (selection - 1)->Kick ();
botMgr->GetBot (selection - 1)->Kick ();
break;
case 9:
g_botManager->RemoveMenu (ent, 2);
botMgr->RemoveMenu (ent, 2);
break;
case 10:
@ -1886,15 +1886,15 @@ void ClientCommand (edict_t *ent)
case 6:
case 7:
case 8:
g_botManager->GetBot (selection + 8 - 1)->Kick ();
botMgr->GetBot (selection + 8 - 1)->Kick ();
break;
case 9:
g_botManager->RemoveMenu (ent, 3);
botMgr->RemoveMenu (ent, 3);
break;
case 10:
g_botManager->RemoveMenu (ent, 1);
botMgr->RemoveMenu (ent, 1);
break;
}
if (g_isMetamod)
@ -1916,15 +1916,15 @@ void ClientCommand (edict_t *ent)
case 6:
case 7:
case 8:
g_botManager->GetBot (selection + 16 - 1)->Kick ();
botMgr->GetBot (selection + 16 - 1)->Kick ();
break;
case 9:
g_botManager->RemoveMenu (ent, 4);
botMgr->RemoveMenu (ent, 4);
break;
case 10:
g_botManager->RemoveMenu (ent, 2);
botMgr->RemoveMenu (ent, 2);
break;
}
if (g_isMetamod)
@ -1946,11 +1946,11 @@ void ClientCommand (edict_t *ent)
case 6:
case 7:
case 8:
g_botManager->GetBot (selection + 24 - 1)->Kick ();
botMgr->GetBot (selection + 24 - 1)->Kick ();
break;
case 10:
g_botManager->RemoveMenu (ent, 3);
botMgr->RemoveMenu (ent, 3);
break;
}
if (g_isMetamod)
@ -1984,7 +1984,7 @@ void ClientCommand (edict_t *ent)
if (!(g_clients[i].flags & CF_USED) || (team != -1 && team != g_clients[i].team) || isAlive != IsAlive (g_clients[i].ent))
continue;
Bot *target = g_botManager->GetBot (i);
Bot *target = botMgr->GetBot (i);
if (target != NULL)
{
@ -2013,7 +2013,7 @@ void ClientCommand (edict_t *ent)
{
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
// validate bot
if (bot != NULL && GetTeam (bot->GetEntity ()) == g_clients[clientIndex].team && VARS (ent) != bot->pev && bot->m_radioOrder == 0)
@ -2049,8 +2049,8 @@ void ServerActivate (edict_t *pentEdictList, int edictCount, int clientMax)
InitConfig (); // initialize all config files
// do level initialization stuff here...
g_waypoint->Init ();
g_waypoint->Load ();
waypoint->Init ();
waypoint->Load ();
// execute main config
ServerCommand ("exec addons/yapb/conf/yapb.cfg");
@ -2060,14 +2060,14 @@ void ServerActivate (edict_t *pentEdictList, int edictCount, int clientMax)
ServerCommand ("exec maps/%s_yapb.cfg", GetMapName ());
ServerPrint ("Executing Map-Specific config file");
}
g_botManager->InitQuota ();
botMgr->InitQuota ();
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
(*g_functionTable.pfnServerActivate) (pentEdictList, edictCount, clientMax);
g_waypoint->InitializeVisibility ();
waypoint->InitializeVisibility ();
}
void ServerDeactivate (void)
@ -2083,8 +2083,8 @@ void ServerDeactivate (void)
// the loading of new bots and the new BSP data parsing there.
// save collected experience on shutdown
g_waypoint->SaveExperienceTab ();
g_waypoint->SaveVisibilityTab ();
waypoint->SaveExperienceTab ();
waypoint->SaveVisibilityTab ();
FreeLibraryMemory ();
@ -2105,7 +2105,7 @@ void StartFrame (void)
// player population decreases, we should fill the server with other bots.
// run periodic update of bot states
g_botManager->PeriodicThink ();
botMgr->PeriodicThink ();
// record some stats of all players on the server
for (int i = 0; i < GetMaxClients (); i++)
@ -2142,15 +2142,15 @@ void StartFrame (void)
if (!IsDedicatedServer () && !IsEntityNull (g_hostEntity))
{
if (g_waypointOn)
g_waypoint->Think ();
waypoint->Think ();
CheckWelcomeMessage ();
}
g_botManager->SetDeathMsgState (false);
botMgr->SetDeathMsgState (false);
if (g_timePerSecondUpdate < GetWorldTime ())
{
g_botManager->CalculatePingOffsets ();
botMgr->CalculatePingOffsets ();
for (int i = 0; i < GetMaxClients (); i++)
{
@ -2180,7 +2180,7 @@ void StartFrame (void)
}
}
if (g_bombPlanted)
g_waypoint->SetBombPosition ();
waypoint->SetBombPosition ();
if (g_isMetamod)
{
@ -2199,10 +2199,10 @@ void StartFrame (void)
g_timePerSecondUpdate = GetWorldTime () + 1.0f;
}
else if (g_timePerSecondUpdate * 0.5f < GetWorldTime ())
g_botManager->UpdateActiveGrenades ();
botMgr->UpdateActiveGrenades ();
// keep bot number up to date
g_botManager->MaintainBotQuota ();
botMgr->MaintainBotQuota ();
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2210,7 +2210,7 @@ void StartFrame (void)
(*g_functionTable.pfnStartFrame) ();
// **** AI EXECUTION STARTS ****
g_botManager->Think ();
botMgr->Think ();
// **** AI EXECUTION FINISH ****
}
@ -2223,7 +2223,7 @@ void StartFrame_Post (void)
// for the bots by the MOD side, remember). Post version called only by metamod.
// **** AI EXECUTION STARTS ****
g_botManager->Think ();
botMgr->Think ();
// **** AI EXECUTION FINISH ****
RETURN_META (MRES_IGNORED);
@ -2254,7 +2254,7 @@ void ServerActivate_Post (edict_t *, int, int)
// Once this function has been called, the server can be considered as "running". Post version
// called only by metamod.
g_waypoint->InitializeVisibility ();
waypoint->InitializeVisibility ();
RETURN_META (MRES_IGNORED);
}
@ -2271,8 +2271,8 @@ void pfnChangeLevel (char *s1, char *s2)
// spawn point named "tr_2lm".
// save collected experience on map change
g_waypoint->SaveExperienceTab ();
g_waypoint->SaveVisibilityTab ();
waypoint->SaveExperienceTab ();
waypoint->SaveVisibilityTab ();
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2356,75 +2356,75 @@ void pfnMessageBegin (int msgDest, int msgType, const float *origin, edict_t *ed
// this function called each time a message is about to sent.
// store the message type in our own variables, since the GET_USER_MSG_ID () will just do a lot of strcmp()'s...
if (g_isMetamod && g_netMsg->GetId (NETMSG_MONEY) == -1)
if (g_isMetamod && netmsg->GetId (NETMSG_MONEY) == -1)
{
g_netMsg->SetId (NETMSG_VGUI, GET_USER_MSG_ID (PLID, "VGUIMenu", NULL));
g_netMsg->SetId (NETMSG_SHOWMENU, GET_USER_MSG_ID (PLID, "ShowMenu", NULL));
g_netMsg->SetId (NETMSG_WEAPONLIST, GET_USER_MSG_ID (PLID, "WeaponList", NULL));
g_netMsg->SetId (NETMSG_CURWEAPON, GET_USER_MSG_ID (PLID, "CurWeapon", NULL));
g_netMsg->SetId (NETMSG_AMMOX, GET_USER_MSG_ID (PLID, "AmmoX", NULL));
g_netMsg->SetId (NETMSG_AMMOPICKUP, GET_USER_MSG_ID (PLID, "AmmoPickup", NULL));
g_netMsg->SetId (NETMSG_DAMAGE, GET_USER_MSG_ID (PLID, "Damage", NULL));
g_netMsg->SetId (NETMSG_MONEY, GET_USER_MSG_ID (PLID, "Money", NULL));
g_netMsg->SetId (NETMSG_STATUSICON, GET_USER_MSG_ID (PLID, "StatusIcon", NULL));
g_netMsg->SetId (NETMSG_DEATH, GET_USER_MSG_ID (PLID, "DeathMsg", NULL));
g_netMsg->SetId (NETMSG_SCREENFADE, GET_USER_MSG_ID (PLID, "ScreenFade", NULL));
g_netMsg->SetId (NETMSG_HLTV, GET_USER_MSG_ID (PLID, "HLTV", NULL));
g_netMsg->SetId (NETMSG_TEXTMSG, GET_USER_MSG_ID (PLID, "TextMsg", NULL));
g_netMsg->SetId (NETMSG_SCOREINFO, GET_USER_MSG_ID (PLID, "ScoreInfo", NULL));
g_netMsg->SetId (NETMSG_BARTIME, GET_USER_MSG_ID (PLID, "BarTime", NULL));
g_netMsg->SetId (NETMSG_SENDAUDIO, GET_USER_MSG_ID (PLID, "SendAudio", NULL));
g_netMsg->SetId (NETMSG_SAYTEXT, GET_USER_MSG_ID (PLID, "SayText", NULL));
g_netMsg->SetId (NETMSG_RESETHUD, GET_USER_MSG_ID (PLID, "ResetHUD", NULL));
netmsg->SetId (NETMSG_VGUI, GET_USER_MSG_ID (PLID, "VGUIMenu", NULL));
netmsg->SetId (NETMSG_SHOWMENU, GET_USER_MSG_ID (PLID, "ShowMenu", NULL));
netmsg->SetId (NETMSG_WEAPONLIST, GET_USER_MSG_ID (PLID, "WeaponList", NULL));
netmsg->SetId (NETMSG_CURWEAPON, GET_USER_MSG_ID (PLID, "CurWeapon", NULL));
netmsg->SetId (NETMSG_AMMOX, GET_USER_MSG_ID (PLID, "AmmoX", NULL));
netmsg->SetId (NETMSG_AMMOPICKUP, GET_USER_MSG_ID (PLID, "AmmoPickup", NULL));
netmsg->SetId (NETMSG_DAMAGE, GET_USER_MSG_ID (PLID, "Damage", NULL));
netmsg->SetId (NETMSG_MONEY, GET_USER_MSG_ID (PLID, "Money", NULL));
netmsg->SetId (NETMSG_STATUSICON, GET_USER_MSG_ID (PLID, "StatusIcon", NULL));
netmsg->SetId (NETMSG_DEATH, GET_USER_MSG_ID (PLID, "DeathMsg", NULL));
netmsg->SetId (NETMSG_SCREENFADE, GET_USER_MSG_ID (PLID, "ScreenFade", NULL));
netmsg->SetId (NETMSG_HLTV, GET_USER_MSG_ID (PLID, "HLTV", NULL));
netmsg->SetId (NETMSG_TEXTMSG, GET_USER_MSG_ID (PLID, "TextMsg", NULL));
netmsg->SetId (NETMSG_SCOREINFO, GET_USER_MSG_ID (PLID, "ScoreInfo", NULL));
netmsg->SetId (NETMSG_BARTIME, GET_USER_MSG_ID (PLID, "BarTime", NULL));
netmsg->SetId (NETMSG_SENDAUDIO, GET_USER_MSG_ID (PLID, "SendAudio", NULL));
netmsg->SetId (NETMSG_SAYTEXT, GET_USER_MSG_ID (PLID, "SayText", NULL));
netmsg->SetId (NETMSG_RESETHUD, GET_USER_MSG_ID (PLID, "ResetHUD", NULL));
if (g_gameVersion != CSV_OLD)
g_netMsg->SetId (NETMSG_BOTVOICE, GET_USER_MSG_ID (PLID, "BotVoice", NULL));
netmsg->SetId (NETMSG_BOTVOICE, GET_USER_MSG_ID (PLID, "BotVoice", NULL));
}
g_netMsg->Reset ();
netmsg->Reset ();
if (msgDest == MSG_SPEC && msgType == g_netMsg->GetId (NETMSG_HLTV) && g_gameVersion != CSV_OLD)
g_netMsg->SetMessage (NETMSG_HLTV);
if (msgDest == MSG_SPEC && msgType == netmsg->GetId (NETMSG_HLTV) && g_gameVersion != CSV_OLD)
netmsg->SetMessage (NETMSG_HLTV);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_WEAPONLIST);
netmsg->HandleMessageIfRequired (msgType, NETMSG_WEAPONLIST);
if (!IsEntityNull (ed))
{
int index = g_botManager->GetIndex (ed);
int index = botMgr->GetIndex (ed);
// is this message for a bot?
if (index != -1 && !(ed->v.flags & FL_DORMANT) && g_botManager->GetBot (index)->GetEntity () == ed)
if (index != -1 && !(ed->v.flags & FL_DORMANT) && botMgr->GetBot (index)->GetEntity () == ed)
{
g_netMsg->Reset ();
g_netMsg->SetBot (g_botManager->GetBot (index));
netmsg->Reset ();
netmsg->SetBot (botMgr->GetBot (index));
// message handling is done in usermsg.cpp
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_VGUI);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_CURWEAPON);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_AMMOX);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_AMMOPICKUP);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_DAMAGE);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_MONEY);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_STATUSICON);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_SCREENFADE);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_BARTIME);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_TEXTMSG);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_SHOWMENU);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_RESETHUD);
netmsg->HandleMessageIfRequired (msgType, NETMSG_VGUI);
netmsg->HandleMessageIfRequired (msgType, NETMSG_CURWEAPON);
netmsg->HandleMessageIfRequired (msgType, NETMSG_AMMOX);
netmsg->HandleMessageIfRequired (msgType, NETMSG_AMMOPICKUP);
netmsg->HandleMessageIfRequired (msgType, NETMSG_DAMAGE);
netmsg->HandleMessageIfRequired (msgType, NETMSG_MONEY);
netmsg->HandleMessageIfRequired (msgType, NETMSG_STATUSICON);
netmsg->HandleMessageIfRequired (msgType, NETMSG_SCREENFADE);
netmsg->HandleMessageIfRequired (msgType, NETMSG_BARTIME);
netmsg->HandleMessageIfRequired (msgType, NETMSG_TEXTMSG);
netmsg->HandleMessageIfRequired (msgType, NETMSG_SHOWMENU);
netmsg->HandleMessageIfRequired (msgType, NETMSG_RESETHUD);
}
}
else if (msgDest == MSG_ALL)
{
g_netMsg->Reset ();
netmsg->Reset ();
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_SCOREINFO);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_DEATH);
g_netMsg->HandleMessageIfRequired (msgType, NETMSG_TEXTMSG);
netmsg->HandleMessageIfRequired (msgType, NETMSG_SCOREINFO);
netmsg->HandleMessageIfRequired (msgType, NETMSG_DEATH);
netmsg->HandleMessageIfRequired (msgType, NETMSG_TEXTMSG);
if (msgType == SVC_INTERMISSION)
{
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot != NULL)
bot->m_notKilled = false;
@ -2440,7 +2440,7 @@ void pfnMessageBegin (int msgDest, int msgType, const float *origin, edict_t *ed
void pfnMessageEnd (void)
{
g_netMsg->Reset ();
netmsg->Reset ();
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2448,13 +2448,13 @@ void pfnMessageEnd (void)
MESSAGE_END ();
// send latency fix
g_botManager->SendDeathMsgFix ();
botMgr->SendDeathMsgFix ();
}
void pfnMessageEnd_Post (void)
{
// send latency fix
g_botManager->SendDeathMsgFix ();
botMgr->SendDeathMsgFix ();
RETURN_META (MRES_IGNORED);
}
@ -2462,7 +2462,7 @@ void pfnMessageEnd_Post (void)
void pfnWriteByte (int value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2473,7 +2473,7 @@ void pfnWriteByte (int value)
void pfnWriteChar (int value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2484,7 +2484,7 @@ void pfnWriteChar (int value)
void pfnWriteShort (int value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2495,7 +2495,7 @@ void pfnWriteShort (int value)
void pfnWriteLong (int value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2506,7 +2506,7 @@ void pfnWriteLong (int value)
void pfnWriteAngle (float value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2517,7 +2517,7 @@ void pfnWriteAngle (float value)
void pfnWriteCoord (float value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2528,7 +2528,7 @@ void pfnWriteCoord (float value)
void pfnWriteString (const char *sz)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) sz);
netmsg->Execute ((void *) sz);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2539,7 +2539,7 @@ void pfnWriteString (const char *sz)
void pfnWriteEntity (int value)
{
// if this message is for a bot, call the client message function...
g_netMsg->Execute ((void *) &value);
netmsg->Execute ((void *) &value);
if (g_isMetamod)
RETURN_META (MRES_IGNORED);
@ -2658,7 +2658,7 @@ void pfnClientPrintf (edict_t *ent, PRINT_TYPE printType, const char *message)
void pfnSetClientMaxspeed (const edict_t *ent, float newMaxspeed)
{
Bot *bot = g_botManager->GetBot (const_cast <edict_t *> (ent));
Bot *bot = botMgr->GetBot (const_cast <edict_t *> (ent));
// check wether it's not a bot
if (bot != NULL)
@ -2688,43 +2688,43 @@ int pfnRegUserMsg (const char *name, int size)
int message = REG_USER_MSG (name, size);
if (strcmp (name, "VGUIMenu") == 0)
g_netMsg->SetId (NETMSG_VGUI, message);
netmsg->SetId (NETMSG_VGUI, message);
else if (strcmp (name, "ShowMenu") == 0)
g_netMsg->SetId (NETMSG_SHOWMENU, message);
netmsg->SetId (NETMSG_SHOWMENU, message);
else if (strcmp (name, "WeaponList") == 0)
g_netMsg->SetId (NETMSG_WEAPONLIST, message);
netmsg->SetId (NETMSG_WEAPONLIST, message);
else if (strcmp (name, "CurWeapon") == 0)
g_netMsg->SetId (NETMSG_CURWEAPON, message);
netmsg->SetId (NETMSG_CURWEAPON, message);
else if (strcmp (name, "AmmoX") == 0)
g_netMsg->SetId (NETMSG_AMMOX, message);
netmsg->SetId (NETMSG_AMMOX, message);
else if (strcmp (name, "AmmoPickup") == 0)
g_netMsg->SetId (NETMSG_AMMOPICKUP, message);
netmsg->SetId (NETMSG_AMMOPICKUP, message);
else if (strcmp (name, "Damage") == 0)
g_netMsg->SetId (NETMSG_DAMAGE, message);
netmsg->SetId (NETMSG_DAMAGE, message);
else if (strcmp (name, "Money") == 0)
g_netMsg->SetId (NETMSG_MONEY, message);
netmsg->SetId (NETMSG_MONEY, message);
else if (strcmp (name, "StatusIcon") == 0)
g_netMsg->SetId (NETMSG_STATUSICON, message);
netmsg->SetId (NETMSG_STATUSICON, message);
else if (strcmp (name, "DeathMsg") == 0)
g_netMsg->SetId (NETMSG_DEATH, message);
netmsg->SetId (NETMSG_DEATH, message);
else if (strcmp (name, "ScreenFade") == 0)
g_netMsg->SetId (NETMSG_SCREENFADE, message);
netmsg->SetId (NETMSG_SCREENFADE, message);
else if (strcmp (name, "HLTV") == 0)
g_netMsg->SetId (NETMSG_HLTV, message);
netmsg->SetId (NETMSG_HLTV, message);
else if (strcmp (name, "TextMsg") == 0)
g_netMsg->SetId (NETMSG_TEXTMSG, message);
netmsg->SetId (NETMSG_TEXTMSG, message);
else if (strcmp (name, "ScoreInfo") == 0)
g_netMsg->SetId (NETMSG_SCOREINFO, message);
netmsg->SetId (NETMSG_SCOREINFO, message);
else if (strcmp (name, "BarTime") == 0)
g_netMsg->SetId (NETMSG_BARTIME, message);
netmsg->SetId (NETMSG_BARTIME, message);
else if (strcmp (name, "SendAudio") == 0)
g_netMsg->SetId (NETMSG_SENDAUDIO, message);
netmsg->SetId (NETMSG_SENDAUDIO, message);
else if (strcmp (name, "SayText") == 0)
g_netMsg->SetId (NETMSG_SAYTEXT, message);
netmsg->SetId (NETMSG_SAYTEXT, message);
else if (strcmp (name, "BotVoice") == 0)
g_netMsg->SetId (NETMSG_BOTVOICE, message);
netmsg->SetId (NETMSG_BOTVOICE, message);
else if (strcmp (name, "ResetHUD") == 0)
g_netMsg->SetId (NETMSG_RESETHUD, message);
netmsg->SetId (NETMSG_RESETHUD, message);
return message;
}
@ -2743,12 +2743,12 @@ void pfnAlertMessage (ALERT_TYPE alertType, char *format, ...)
// notify all terrorists that CT is starting bomb defusing
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot != NULL && GetTeam (bot->GetEntity ()) == TEAM_TF && IsAlive (bot->GetEntity ()))
{
bot->ResetTasks ();
bot->MoveToVector (g_waypoint->GetBombPosition ());
bot->MoveToVector (waypoint->GetBombPosition ());
}
}
}
@ -2978,7 +2978,7 @@ export int Meta_Detach (PLUG_LOADTIME now, PL_UNLOAD_REASON reason)
return FALSE; // returning false prevents metamod from unloading this plugin
}
g_botManager->RemoveAll (); // kick all bots off this server
botMgr->RemoveAll (); // kick all bots off this server
FreeLibraryMemory ();
return TRUE;
@ -3056,7 +3056,7 @@ DLL_GIVEFNPTRSTODLL GiveFnptrsToDll (enginefuncs_t *functionTable, globalvars_t
FixDirectoryStructure ();
// register our cvars
g_convarWrapper->PushRegisteredConVarsToEngine ();
convars->PushRegisteredConVarsToEngine ();
static struct ModSupport
{

View file

@ -650,7 +650,7 @@ Bot *BotManager::GetHighestFragsBot (int team)
// search bots in this team
for (int i = 0; i < GetMaxClients (); i++)
{
highFragBot = g_botManager->GetBot (i);
highFragBot = botMgr->GetBot (i);
if (highFragBot != NULL && IsAlive (highFragBot->GetEntity ()) && GetTeam (highFragBot->GetEntity ()) == team)
{
@ -1051,7 +1051,6 @@ void Bot::NewRound (void)
m_grenadeCheckTime = 0.0;
m_isUsingGrenade = false;
m_breakableCheckTime = 0.0f;
m_blindButton = 0;
m_blindTime = 0.0;
m_jumpTime = 0.0;
@ -1166,8 +1165,8 @@ void Bot::Kick (void)
CenterPrint ("Bot '%s' kicked", STRING (pev->netname));
// balances quota
if (g_botManager->GetBotsNum () - 1 < yb_quota.GetInt ())
yb_quota.SetInt (g_botManager->GetBotsNum () - 1);
if (botMgr->GetBotsNum () - 1 < yb_quota.GetInt ())
yb_quota.SetInt (botMgr->GetBotsNum () - 1);
}
void Bot::StartGame (void)

View file

@ -44,7 +44,7 @@ int Bot::FindGoal (void)
{
if (strcmp (STRING (pent->v.model), "models/w_backpack.mdl") == 0)
{
int index = g_waypoint->FindNearest (GetEntityOrigin (pent));
int index = waypoint->FindNearest (GetEntityOrigin (pent));
if (index >= 0 && index < g_numWaypoints)
return m_loosedBombWptIndex = index;
@ -71,13 +71,13 @@ int Bot::FindGoal (void)
switch (m_team)
{
case TEAM_TF:
offensiveWpts = g_waypoint->m_ctPoints;
defensiveWpts = g_waypoint->m_terrorPoints;
offensiveWpts = waypoint->m_ctPoints;
defensiveWpts = waypoint->m_terrorPoints;
break;
case TEAM_CF:
offensiveWpts = g_waypoint->m_terrorPoints;
defensiveWpts = g_waypoint->m_ctPoints;
offensiveWpts = waypoint->m_terrorPoints;
defensiveWpts = waypoint->m_ctPoints;
break;
}
@ -90,7 +90,7 @@ int Bot::FindGoal (void)
else if (m_team == TEAM_CF && HasHostage ())
{
tactic = 2;
offensiveWpts = g_waypoint->m_rescuePoints;
offensiveWpts = waypoint->m_rescuePoints;
goto TacticChoosen;
}
@ -122,7 +122,7 @@ int Bot::FindGoal (void)
}
else if ((g_mapType & MAP_DE) && m_team == TEAM_CF)
{
if (g_bombPlanted && GetTaskId () != TASK_ESCAPEFROMBOMB && g_waypoint->GetBombPosition () != nullvec)
if (g_bombPlanted && GetTaskId () != TASK_ESCAPEFROMBOMB && waypoint->GetBombPosition () != nullvec)
{
if (g_bombSayString)
{
@ -133,12 +133,15 @@ int Bot::FindGoal (void)
}
defensive += 25.0f;
offensive -= 25.0f;
if (m_personality != PERSONALITY_RUSHER)
defensive += 10.0f;
}
else if ((g_mapType & MAP_DE) && m_team == TEAM_TF && g_timeRoundStart + 10.0f < GetWorldTime ())
{
// send some terrorists to guard planter bomb
if (g_bombPlanted && GetTaskId () != TASK_ESCAPEFROMBOMB && GetBombTimeleft () >= 15.0)
return m_chosenGoalIndex = FindDefendWaypoint (g_waypoint->GetBombPosition ());
return m_chosenGoalIndex = FindDefendWaypoint (waypoint->GetBombPosition ());
}
goalDesire = Random.Float (0.0f, 100.0f) + offensive;
@ -147,7 +150,7 @@ int Bot::FindGoal (void)
backoffDesire = Random.Float (0.0f, 100.0f) + defensive;
if (!UsesCampGun ())
campDesire = 0;
campDesire *= 0.5f;
tacticChoice = backoffDesire;
tactic = 0;
@ -172,17 +175,17 @@ TacticChoosen:
if (tactic == 0 && !defensiveWpts.IsEmpty ()) // careful goal
FilterGoals (defensiveWpts, goalChoices);
else if (tactic == 1 && !g_waypoint->m_campPoints.IsEmpty ()) // camp waypoint goal
else if (tactic == 1 && !waypoint->m_campPoints.IsEmpty ()) // camp waypoint goal
{
// pickup sniper points if possible for sniping bots
if (!g_waypoint->m_sniperPoints.IsEmpty () && UsesSniper ())
FilterGoals (g_waypoint->m_sniperPoints, goalChoices);
if (!waypoint->m_sniperPoints.IsEmpty () && UsesSniper ())
FilterGoals (waypoint->m_sniperPoints, goalChoices);
else
FilterGoals (g_waypoint->m_campPoints, goalChoices);
FilterGoals (waypoint->m_campPoints, goalChoices);
}
else if (tactic == 2 && !offensiveWpts.IsEmpty ()) // offensive goal
FilterGoals (offensiveWpts, goalChoices);
else if (tactic == 3 && !g_waypoint->m_goalPoints.IsEmpty ()) // map goal waypoint
else if (tactic == 3 && !waypoint->m_goalPoints.IsEmpty ()) // map goal waypoint
{
// forcee bomber to select closest goal, if round-start goal was reset by something
if (m_hasC4 && g_timeRoundStart + 20.0f < GetWorldTime ())
@ -192,7 +195,7 @@ TacticChoosen:
for (int i = 0; i < g_numWaypoints; i++)
{
Path *path = g_waypoint->GetPath (i);
Path *path = waypoint->GetPath (i);
if (!(path->flags & FLAG_GOAL))
continue;
@ -214,17 +217,17 @@ TacticChoosen:
{
if (goalChoices[i] == -1)
{
goalChoices[i] = g_waypoint->m_goalPoints.GetRandomElement ();
goalChoices[i] = waypoint->m_goalPoints.GetRandomElement ();
InternalAssert (goalChoices[i] >= 0 && goalChoices[i] < g_numWaypoints);
}
}
}
else
FilterGoals (g_waypoint->m_goalPoints, goalChoices);
FilterGoals (waypoint->m_goalPoints, goalChoices);
}
if (m_currentWaypointIndex == -1 || m_currentWaypointIndex >= g_numWaypoints)
m_currentWaypointIndex = ChangeWptIndex (g_waypoint->FindNearest (pev->origin));
m_currentWaypointIndex = ChangeWptIndex (waypoint->FindNearest (pev->origin));
if (goalChoices[0] == -1)
return m_chosenGoalIndex = Random.Long (0, g_numWaypoints - 1);
@ -779,9 +782,9 @@ bool Bot::DoWaypointNav (void)
{
if ((m_liftState == LIFT_NO_NEARBY || m_liftState == LIFT_WAITING_FOR) && m_navNode->next != NULL)
{
if (m_navNode->next->index >= 0 && m_navNode->next->index < g_numWaypoints && (g_waypoint->GetPath (m_navNode->next->index)->flags & FLAG_LIFT))
if (m_navNode->next->index >= 0 && m_navNode->next->index < g_numWaypoints && (waypoint->GetPath (m_navNode->next->index)->flags & FLAG_LIFT))
{
TraceLine (m_currentPath->origin, g_waypoint->GetPath (m_navNode->next->index)->origin, true, true, GetEntity (), &tr);
TraceLine (m_currentPath->origin, waypoint->GetPath (m_navNode->next->index)->origin, true, true, GetEntity (), &tr);
if (!IsEntityNull (tr.pHit) && (strcmp (STRING (tr.pHit->v.classname), "func_door") == 0 || strcmp (STRING (tr.pHit->v.classname), "func_plat") == 0 || strcmp (STRING (tr.pHit->v.classname), "func_train") == 0))
m_liftEntity = tr.pHit;
@ -813,7 +816,7 @@ bool Bot::DoWaypointNav (void)
// if some bot is following a bot going into lift - he should take the same lift to go
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot == NULL || bot == this)
continue;
@ -852,7 +855,7 @@ bool Bot::DoWaypointNav (void)
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot == NULL)
continue; // skip invalid bots
@ -910,7 +913,7 @@ bool Bot::DoWaypointNav (void)
// is lift activated and bot is standing on it and lift is moving ?
if (m_liftState == LIFT_LOOKING_BUTTON_INSIDE || m_liftState == LIFT_ENTERING_IN || m_liftState == LIFT_WAIT_FOR_TEAMMATES || m_liftState == LIFT_WAITING_FOR)
{
if (pev->groundentity == m_liftEntity && m_liftEntity->v.velocity.z != 0 && IsOnFloor () && ((g_waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT) || !IsEntityNull (m_targetEntity)))
if (pev->groundentity == m_liftEntity && m_liftEntity->v.velocity.z != 0 && IsOnFloor () && ((waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT) || !IsEntityNull (m_targetEntity)))
{
m_liftState = LIFT_TRAVELING_BY;
m_liftUsageTime = GetWorldTime () + 14.0;
@ -953,7 +956,7 @@ bool Bot::DoWaypointNav (void)
if (m_buttonPushTime + 8.0 >= GetWorldTime ())
{
if ((m_prevWptIndex[0] >= 0) && (m_prevWptIndex[0] < g_numWaypoints))
m_destOrigin = g_waypoint->GetPath (m_prevWptIndex[0])->origin;
m_destOrigin = waypoint->GetPath (m_prevWptIndex[0])->origin;
else
m_destOrigin = pev->origin;
@ -995,7 +998,7 @@ bool Bot::DoWaypointNav (void)
if (liftUsed)
{
if (m_prevWptIndex[0] >= 0 && m_prevWptIndex[0] < g_numWaypoints)
m_destOrigin = g_waypoint->GetPath (m_prevWptIndex[0])->origin;
m_destOrigin = waypoint->GetPath (m_prevWptIndex[0])->origin;
else
m_destOrigin = button->v.origin;
@ -1028,10 +1031,10 @@ bool Bot::DoWaypointNav (void)
{
if ((m_prevWptIndex[0] >= 0) && (m_prevWptIndex[0] < g_numWaypoints))
{
if (!(g_waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT))
m_destOrigin = g_waypoint->GetPath (m_prevWptIndex[0])->origin;
if (!(waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT))
m_destOrigin = waypoint->GetPath (m_prevWptIndex[0])->origin;
else if ((m_prevWptIndex[1] >= 0) && (m_prevWptIndex[0] < g_numWaypoints))
m_destOrigin = g_waypoint->GetPath (m_prevWptIndex[1])->origin;
m_destOrigin = waypoint->GetPath (m_prevWptIndex[1])->origin;
}
if ((pev->origin - m_destOrigin).GetLengthSquared () < 100)
@ -1052,7 +1055,7 @@ bool Bot::DoWaypointNav (void)
// bot fall down somewhere inside the lift's groove :)
if (pev->groundentity != m_liftEntity && m_prevWptIndex[0] >= 0 && m_prevWptIndex[0] < g_numWaypoints)
{
if ((g_waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT) && (m_currentPath->origin.z - pev->origin.z) > 50.0 && (g_waypoint->GetPath (m_prevWptIndex[0])->origin.z - pev->origin.z) > 50.0)
if ((waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT) && (m_currentPath->origin.z - pev->origin.z) > 50.0 && (waypoint->GetPath (m_prevWptIndex[0])->origin.z - pev->origin.z) > 50.0)
{
m_liftState = LIFT_NO_NEARBY;
m_liftEntity = NULL;
@ -1096,7 +1099,7 @@ bool Bot::DoWaypointNav (void)
if (m_prevWptIndex[0] >= 0 && m_prevWptIndex[0] < g_numWaypoints)
{
if (!(g_waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT))
if (!(waypoint->GetPath (m_prevWptIndex[0])->flags & FLAG_LIFT))
ChangeWptIndex (m_prevWptIndex[0]);
else
FindWaypoint ();
@ -1249,13 +1252,13 @@ bool Bot::DoWaypointNav (void)
// bot within 'hearable' bomb tick noises?
if (bombOrigin != nullvec)
{
float distance = (bombOrigin - g_waypoint->GetPath (GetTask ()->data)->origin).GetLength ();
float distance = (bombOrigin - waypoint->GetPath (GetTask ()->data)->origin).GetLength ();
if (distance > 512.0)
g_waypoint->SetGoalVisited (GetTask ()->data); // doesn't hear so not a good goal
waypoint->SetGoalVisited (GetTask ()->data); // doesn't hear so not a good goal
}
else
g_waypoint->SetGoalVisited (GetTask ()->data); // doesn't hear so not a good goal
waypoint->SetGoalVisited (GetTask ()->data); // doesn't hear so not a good goal
}
HeadTowardWaypoint (); // do the actual movement checking
}
@ -1282,7 +1285,7 @@ void Bot::FindShortestPath (int srcIndex, int destIndex)
while (srcIndex != destIndex)
{
srcIndex = *(g_waypoint->m_pathMatrix + (srcIndex * g_numWaypoints) + destIndex);
srcIndex = *(waypoint->m_pathMatrix + (srcIndex * g_numWaypoints) + destIndex);
if (srcIndex < 0)
{
@ -1427,7 +1430,7 @@ float gfunctionKillsDistT (int currentIndex, int parentIndex)
float cost = (g_experienceData + (currentIndex * g_numWaypoints) + currentIndex)->team0Damage + g_highestDamageT;
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
@ -1440,7 +1443,7 @@ float gfunctionKillsDistT (int currentIndex, int parentIndex)
if (current->flags & FLAG_CROUCH)
cost *= 1.5;
return g_waypoint->GetPathDistance (parentIndex, currentIndex) + cost;
return waypoint->GetPathDistance (parentIndex, currentIndex) + cost;
}
@ -1453,7 +1456,7 @@ float gfunctionKillsDistCT (int currentIndex, int parentIndex)
float cost = (g_experienceData + (currentIndex * g_numWaypoints) + currentIndex)->team1Damage + g_highestDamageCT;
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
@ -1466,14 +1469,14 @@ float gfunctionKillsDistCT (int currentIndex, int parentIndex)
if (current->flags & FLAG_CROUCH)
cost *= 1.5;
return g_waypoint->GetPathDistance (parentIndex, currentIndex) + cost;
return waypoint->GetPathDistance (parentIndex, currentIndex) + cost;
}
float gfunctionKillsDistCTWithHostage (int currentIndex, int parentIndex)
{
// least kills and number of nodes to goal for a team
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
if (current->flags & FLAG_NOHOSTAGE)
return 65355;
@ -1490,7 +1493,7 @@ float gfunctionKillsT (int currentIndex, int)
float cost = (g_experienceData + (currentIndex * g_numWaypoints) + currentIndex)->team0Damage;
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
@ -1515,7 +1518,7 @@ float gfunctionKillsCT (int currentIndex, int parentIndex)
float cost = (g_experienceData + (currentIndex * g_numWaypoints) + currentIndex)->team1Damage;
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
@ -1538,7 +1541,7 @@ float gfunctionKillsCTWithHostage (int currentIndex, int parentIndex)
if (parentIndex == -1)
return 0;
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
if (current->flags & FLAG_NOHOSTAGE)
return 65355;
@ -1554,8 +1557,8 @@ float gfunctionPathDist (int currentIndex, int parentIndex)
if (parentIndex == -1)
return 0;
Path *parent = g_waypoint->GetPath (parentIndex);
Path *current = g_waypoint->GetPath (currentIndex);
Path *parent = waypoint->GetPath (parentIndex);
Path *current = waypoint->GetPath (currentIndex);
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
@ -1573,7 +1576,7 @@ float gfunctionPathDist (int currentIndex, int parentIndex)
float gfunctionPathDistWithHostage (int currentIndex, int parentIndex)
{
Path *current = g_waypoint->GetPath (currentIndex);
Path *current = waypoint->GetPath (currentIndex);
if (current->flags & FLAG_NOHOSTAGE)
return 65355;
@ -1588,8 +1591,8 @@ float hfunctionSquareDist (int index, int, int goalIndex)
{
// square distance heuristic
Path *start = g_waypoint->GetPath (index);
Path *goal = g_waypoint->GetPath (goalIndex);
Path *start = waypoint->GetPath (index);
Path *goal = waypoint->GetPath (goalIndex);
#if 0
float deltaX = fabsf (start->origin.x - goal->origin.x);
@ -1613,7 +1616,7 @@ float hfunctionSquareDistWithHostage (int index, int startIndex, int goalIndex)
{
// square distance heuristic with hostages
if (g_waypoint->GetPath (startIndex)->flags & FLAG_NOHOSTAGE)
if (waypoint->GetPath (startIndex)->flags & FLAG_NOHOSTAGE)
return 65355;
return hfunctionSquareDist (index, startIndex, goalIndex);
@ -1771,7 +1774,7 @@ void Bot::FindPath (int srcIndex, int destIndex, unsigned char pathType)
// now expand the current node
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
int currentChild = g_waypoint->GetPath (currentIndex)->index[i];
int currentChild = waypoint->GetPath (currentIndex)->index[i];
if (currentChild == -1)
continue;
@ -1819,20 +1822,20 @@ int Bot::GetAimingWaypoint (const Vector &to)
// return the most distant waypoint which is seen from the bot to the target and is within count
if (m_currentWaypointIndex == -1)
m_currentWaypointIndex = ChangeWptIndex (g_waypoint->FindNearest (pev->origin));
m_currentWaypointIndex = ChangeWptIndex (waypoint->FindNearest (pev->origin));
int srcIndex = m_currentWaypointIndex;
int destIndex = g_waypoint->FindNearest (to);
int destIndex = waypoint->FindNearest (to);
int bestIndex = srcIndex;
while (destIndex != srcIndex)
{
destIndex = *(g_waypoint->m_pathMatrix + (destIndex * g_numWaypoints) + srcIndex);
destIndex = *(waypoint->m_pathMatrix + (destIndex * g_numWaypoints) + srcIndex);
if (destIndex < 0)
break;
if (g_waypoint->IsVisible (m_currentWaypointIndex, destIndex))
if (waypoint->IsVisible (m_currentWaypointIndex, destIndex))
{
bestIndex = destIndex;
break;
@ -1867,11 +1870,11 @@ bool Bot::FindWaypoint (void)
#endif
continue;
if ((g_mapType & MAP_CS) && HasHostage () && (g_waypoint->GetPath (i)->flags & FLAG_NOHOSTAGE))
if ((g_mapType & MAP_CS) && HasHostage () && (waypoint->GetPath (i)->flags & FLAG_NOHOSTAGE))
continue;
// ignore non-reacheable waypoints...
if (!g_waypoint->Reachable (this, i))
if (!waypoint->Reachable (this, i))
continue;
// check if waypoint is already used by another bot...
@ -1882,7 +1885,7 @@ bool Bot::FindWaypoint (void)
}
// now pick 1-2 random waypoints that near the bot
float distance = (g_waypoint->GetPath (i)->origin - pev->origin).GetLengthSquared ();
float distance = (waypoint->GetPath (i)->origin - pev->origin).GetLengthSquared ();
// now fill the waypoint list
for (int j = 0; j < 3; j++)
@ -1915,7 +1918,7 @@ bool Bot::FindWaypoint (void)
i = 0;
Array <int> found;
g_waypoint->FindInRadius (found, 256.0f, pev->origin);
waypoint->FindInRadius (found, 256.0f, pev->origin);
if (!found.IsEmpty ())
{
@ -1926,7 +1929,7 @@ bool Bot::FindWaypoint (void)
{
int index = found.Pop ();
if (!g_waypoint->Reachable (this, index))
if (!waypoint->Reachable (this, index))
continue;
waypointIndeces[i] = index;
@ -2055,7 +2058,7 @@ int Bot::ChangeWptIndex(int waypointIndex)
m_currentWaypointIndex = waypointIndex;
m_navTimeset = GetWorldTime ();
m_currentPath = g_waypoint->GetPath (m_currentWaypointIndex);
m_currentPath = waypoint->GetPath (m_currentWaypointIndex);
m_waypointFlags = m_currentPath->flags;
return m_currentWaypointIndex; // to satisfy static-code analyzers
@ -2065,7 +2068,7 @@ int Bot::ChooseBombWaypoint (void)
{
// this function finds the best goal (bomb) waypoint for CTs when searching for a planted bomb.
Array <int> goals = g_waypoint->m_goalPoints;
Array <int> goals = waypoint->m_goalPoints;
if (goals.IsEmpty ())
return Random.Long (0, g_numWaypoints - 1); // reliability check
@ -2082,7 +2085,7 @@ int Bot::ChooseBombWaypoint (void)
// find nearest goal waypoint either to bomb (if "heard" or player)
FOR_EACH_AE (goals, i)
{
float distance = (g_waypoint->GetPath (goals[i])->origin - bombOrigin).GetLengthSquared ();
float distance = (waypoint->GetPath (goals[i])->origin - bombOrigin).GetLengthSquared ();
// check if we got more close distance
if (distance < lastDistance)
@ -2092,7 +2095,7 @@ int Bot::ChooseBombWaypoint (void)
}
}
while (g_waypoint->IsGoalVisited (goal))
while (waypoint->IsGoalVisited (goal))
{
goal = goals.GetRandomElement ();
@ -2118,8 +2121,8 @@ int Bot::FindDefendWaypoint (const Vector &origin)
minDistance[i] = 128;
}
int posIndex = g_waypoint->FindNearest (origin);
int srcIndex = g_waypoint->FindNearest (pev->origin);
int posIndex = waypoint->FindNearest (origin);
int srcIndex = waypoint->FindNearest (pev->origin);
// some of points not found, return random one
if (srcIndex == -1 || posIndex == -1)
@ -2128,17 +2131,17 @@ int Bot::FindDefendWaypoint (const Vector &origin)
for (int i = 0; i < g_numWaypoints; i++) // find the best waypoint now
{
// exclude ladder & current waypoints
if ((g_waypoint->GetPath (i)->flags & FLAG_LADDER) || i == srcIndex || !g_waypoint->IsVisible (i, posIndex) || IsPointOccupied (i))
if ((waypoint->GetPath (i)->flags & FLAG_LADDER) || i == srcIndex || !waypoint->IsVisible (i, posIndex) || IsPointOccupied (i))
continue;
// use the 'real' pathfinding distances
int distances = g_waypoint->GetPathDistance (srcIndex, i);
int distances = waypoint->GetPathDistance (srcIndex, i);
// skip wayponts with distance more than 1024 units
if (distances > 1248.0f)
continue;
TraceLine (g_waypoint->GetPath (i)->origin, g_waypoint->GetPath (posIndex)->origin, true, true, GetEntity (), &tr);
TraceLine (waypoint->GetPath (i)->origin, waypoint->GetPath (posIndex)->origin, true, true, GetEntity (), &tr);
// check if line not hit anything
if (tr.flFraction != 1.0)
@ -2205,7 +2208,7 @@ int Bot::FindDefendWaypoint (const Vector &origin)
for (int i = 0; i < g_numWaypoints; i++)
{
if ((g_waypoint->GetPath (i)->origin - origin).GetLength () <= 1248.0f && !IsPointOccupied (i))
if ((waypoint->GetPath (i)->origin - origin).GetLength () <= 1248.0f && !IsPointOccupied (i))
found.Push (i);
}
@ -2237,7 +2240,7 @@ int Bot::FindCoverWaypoint (float maxDistance)
maxDistance = 300.0;
int srcIndex = m_currentWaypointIndex;
int enemyIndex = g_waypoint->FindNearest (m_lastEnemyOrigin);
int enemyIndex = waypoint->FindNearest (m_lastEnemyOrigin);
Array <int> enemyIndices;
int waypointIndex[MAX_PATH_INDEX];
@ -2255,8 +2258,8 @@ int Bot::FindCoverWaypoint (float maxDistance)
// now get enemies neigbouring points
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
if (g_waypoint->GetPath (enemyIndex)->index[i] != -1)
enemyIndices.Push (g_waypoint->GetPath (enemyIndex)->index[i]);
if (waypoint->GetPath (enemyIndex)->index[i] != -1)
enemyIndices.Push (waypoint->GetPath (enemyIndex)->index[i]);
}
// ensure we're on valid point
@ -2266,14 +2269,14 @@ int Bot::FindCoverWaypoint (float maxDistance)
for (int i = 0; i < g_numWaypoints; i++)
{
// exclude ladder, current waypoints and waypoints seen by the enemy
if ((g_waypoint->GetPath (i)->flags & FLAG_LADDER) || i == srcIndex || g_waypoint->IsVisible (enemyIndex, i))
if ((waypoint->GetPath (i)->flags & FLAG_LADDER) || i == srcIndex || waypoint->IsVisible (enemyIndex, i))
continue;
bool neighbourVisible = false; // now check neighbour waypoints for visibility
FOR_EACH_AE (enemyIndices, j)
{
if (g_waypoint->IsVisible (enemyIndices[j], i))
if (waypoint->IsVisible (enemyIndices[j], i))
{
neighbourVisible = true;
break;
@ -2285,8 +2288,8 @@ int Bot::FindCoverWaypoint (float maxDistance)
continue;
// use the 'real' pathfinding distances
int distances = g_waypoint->GetPathDistance (srcIndex, i);
int enemyDistance = g_waypoint->GetPathDistance (enemyIndex, i);
int distances = waypoint->GetPathDistance (srcIndex, i);
int enemyDistance = waypoint->GetPathDistance (enemyIndex, i);
if (distances >= enemyDistance)
continue;
@ -2350,7 +2353,7 @@ int Bot::FindCoverWaypoint (float maxDistance)
{
if (waypointIndex[i] != -1)
{
TraceLine (m_lastEnemyOrigin + Vector (0, 0, 36), g_waypoint->GetPath (waypointIndex[i])->origin, true, true, GetEntity (), &tr);
TraceLine (m_lastEnemyOrigin + Vector (0, 0, 36), waypoint->GetPath (waypointIndex[i])->origin, true, true, GetEntity (), &tr);
if (tr.flFraction < 1.0)
return waypointIndex[i];
@ -2379,9 +2382,9 @@ bool Bot::GetBestNextWaypoint (void)
{
int id = m_currentPath->index[i];
if (id != -1 && g_waypoint->IsConnected (id, m_navNode->next->index) && g_waypoint->IsConnected (m_currentWaypointIndex, id))
if (id != -1 && waypoint->IsConnected (id, m_navNode->next->index) && waypoint->IsConnected (m_currentWaypointIndex, id))
{
if (g_waypoint->GetPath (id)->flags & FLAG_LADDER) // don't use ladder waypoints as alternative
if (waypoint->GetPath (id)->flags & FLAG_LADDER) // don't use ladder waypoints as alternative
continue;
if (!IsPointOccupied (id))
@ -2423,13 +2426,13 @@ bool Bot::HeadTowardWaypoint (void)
{
m_campButtons = 0;
int waypoint = m_navNode->next->index;
int nextIndex = m_navNode->next->index;
float kills = 0;
if (m_team == TEAM_TF)
kills = (g_experienceData + (waypoint * g_numWaypoints) + waypoint)->team0Damage / g_highestDamageT;
kills = (g_experienceData + (nextIndex * g_numWaypoints) + nextIndex)->team0Damage / g_highestDamageT;
else
kills = (g_experienceData + (waypoint * g_numWaypoints) + waypoint)->team1Damage / g_highestDamageCT;
kills = (g_experienceData + (nextIndex * g_numWaypoints) + nextIndex)->team1Damage / g_highestDamageCT;
// if damage done higher than one
if (kills > 0.15f && g_timeRoundMid + 15.0f < GetWorldTime ())
@ -2448,7 +2451,7 @@ bool Bot::HeadTowardWaypoint (void)
if (m_baseAgressionLevel < kills && HasPrimaryWeapon ())
{
PushTask (TASK_CAMP, TASKPRI_CAMP, -1, GetWorldTime () + Random.Float (m_difficulty * 0.5, m_difficulty) * 5, true);
PushTask (TASK_MOVETOPOSITION, TASKPRI_MOVETOPOSITION, FindDefendWaypoint (g_waypoint->GetPath (waypoint)->origin), GetWorldTime () + Random.Float (3.0f, 10.0f), true);
PushTask (TASK_MOVETOPOSITION, TASKPRI_MOVETOPOSITION, FindDefendWaypoint (waypoint->GetPath (nextIndex)->origin), GetWorldTime () + Random.Float (3.0f, 10.0f), true);
}
}
else if (g_botsCanPause && !IsOnLadder () && !IsInWater () && !m_currentTravelFlags && IsOnFloor ())
@ -2492,8 +2495,8 @@ bool Bot::HeadTowardWaypoint (void)
{
for (int i = 0; i < MAX_PATH_INDEX; i++)
{
Path *path = g_waypoint->GetPath (m_navNode->index);
Path *next = g_waypoint->GetPath (m_navNode->next->index);
Path *path = waypoint->GetPath (m_navNode->index);
Path *next = waypoint->GetPath (m_navNode->next->index);
if (path->index[i] == m_navNode->next->index && (path->connectionFlags[i] & PATHFLAG_JUMP))
{
@ -2513,12 +2516,12 @@ bool Bot::HeadTowardWaypoint (void)
SelectWeaponByName ("weapon_knife"); // draw out the knife if we needed
// bot not already on ladder but will be soon?
if ((g_waypoint->GetPath (destIndex)->flags & FLAG_LADDER) && !IsOnLadder ())
if ((waypoint->GetPath (destIndex)->flags & FLAG_LADDER) && !IsOnLadder ())
{
// get ladder waypoints used by other (first moving) bots
for (int c = 0; c < GetMaxClients (); c++)
{
Bot *otherBot = g_botManager->GetBot (c);
Bot *otherBot = botMgr->GetBot (c);
// if another bot uses this ladder, wait 3 secs
if (otherBot != NULL && otherBot != this && IsAlive (otherBot->GetEntity ()) && otherBot->m_currentWaypointIndex == m_navNode->index)
@ -3125,10 +3128,10 @@ int Bot::GetAimingWaypoint (void)
for (int i = 0; i < g_numWaypoints; i++)
{
if (currentWaypoint == i || !g_waypoint->IsVisible (currentWaypoint, i))
if (currentWaypoint == i || !waypoint->IsVisible (currentWaypoint, i))
continue;
Path *path = g_waypoint->GetPath (i);
Path *path = waypoint->GetPath (i);
if (count < 3)
{
@ -3375,7 +3378,7 @@ int Bot::FindPlantedBomb (void)
{
if (strcmp (STRING (bombEntity->v.model) + 9, "c4.mdl") == 0)
{
int nearestIndex = g_waypoint->FindNearest (GetEntityOrigin (bombEntity));
int nearestIndex = waypoint->FindNearest (GetEntityOrigin (bombEntity));
if ((nearestIndex >= 0) && (nearestIndex < g_numWaypoints))
return nearestIndex;
@ -3394,7 +3397,7 @@ bool Bot::IsPointOccupied (int index)
// first check if current waypoint of one of the bots is index waypoint
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot == NULL || bot == this)
continue;
@ -3404,7 +3407,7 @@ bool Bot::IsPointOccupied (int index)
{
int occupyId = GetShootingConeDeviation (bot->GetEntity (), &pev->origin) >= 0.7f ? bot->m_prevWptIndex[0] : m_currentWaypointIndex;
if (occupyId == index || bot->GetTask ()->data == index || (g_waypoint->GetPath (occupyId)->origin - g_waypoint->GetPath (index)->origin).GetLengthSquared () < 4096.0f)
if (occupyId == index || bot->GetTask ()->data == index || (waypoint->GetPath (occupyId)->origin - waypoint->GetPath (index)->origin).GetLengthSquared () < 4096.0f)
return true;
}
}

View file

@ -255,7 +255,7 @@ void NetworkMsg::Execute (void *p)
break;
case 2:
g_botManager->SetDeathMsgState (true);
botMgr->SetDeathMsgState (true);
if (killerIndex != 0 && killerIndex != victimIndex)
{
@ -270,7 +270,7 @@ void NetworkMsg::Execute (void *p)
// need to send congrats on well placed shot
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot != NULL && IsAlive (bot->GetEntity ()) && killer != bot->GetEntity () && bot->EntityIsVisible (victim->v.origin) && GetTeam (killer) == GetTeam (bot->GetEntity ()) && GetTeam (killer) != GetTeam (victim))
{
@ -287,7 +287,7 @@ void NetworkMsg::Execute (void *p)
// notice nearby to victim teammates, that attacker is near
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot != NULL && IsAlive (bot->GetEntity ()) && GetTeam (bot->GetEntity ()) == GetTeam (victim) && IsVisible (killer->v.origin, bot->GetEntity ()) && IsEntityNull (bot->m_enemy) && GetTeam (killer) != GetTeam (victim))
{
@ -299,7 +299,7 @@ void NetworkMsg::Execute (void *p)
}
}
Bot *bot = g_botManager->GetBot (killer);
Bot *bot = botMgr->GetBot (killer);
// is this message about a bot who killed somebody?
if (bot != NULL)
@ -307,7 +307,7 @@ void NetworkMsg::Execute (void *p)
else // did a human kill a bot on his team?
{
Bot *target = g_botManager->GetBot (victim);
Bot *target = botMgr->GetBot (victim);
if (target != NULL)
{
@ -393,11 +393,11 @@ void NetworkMsg::Execute (void *p)
if (FStrEq (PTR_TO_STR (p), "#CTs_Win"))
{
g_botManager->SetLastWinner (TEAM_CF); // update last winner for economics
botMgr->SetLastWinner (TEAM_CF); // update last winner for economics
if (yb_communication_type.GetInt () == 2)
{
Bot *bot = g_botManager->FindOneValidAliveBot ();
Bot *bot = botMgr->FindOneValidAliveBot ();
if (bot != NULL && IsAlive (bot->GetEntity ()))
bot->HandleChatterMessage (PTR_TO_STR (p));
@ -406,23 +406,23 @@ void NetworkMsg::Execute (void *p)
if (FStrEq (PTR_TO_STR (p), "#Game_will_restart_in"))
{
g_botManager->CheckTeamEconomics (TEAM_CF, true);
g_botManager->CheckTeamEconomics (TEAM_TF, true);
botMgr->CheckTeamEconomics (TEAM_CF, true);
botMgr->CheckTeamEconomics (TEAM_TF, true);
}
if (FStrEq (PTR_TO_STR (p), "#Terrorists_Win"))
{
g_botManager->SetLastWinner (TEAM_TF); // update last winner for economics
botMgr->SetLastWinner (TEAM_TF); // update last winner for economics
if (yb_communication_type.GetInt () == 2)
{
Bot *bot = g_botManager->FindOneValidAliveBot ();
Bot *bot = botMgr->FindOneValidAliveBot ();
if (bot != NULL && IsAlive (bot->GetEntity ()))
bot->HandleChatterMessage (PTR_TO_STR (p));
}
}
g_waypoint->SetBombPosition (true);
waypoint->SetBombPosition (true);
}
else if (!g_bombPlanted && FStrEq (PTR_TO_STR (p), "#Bomb_Planted"))
{
@ -431,7 +431,7 @@ void NetworkMsg::Execute (void *p)
for (int i = 0; i < GetMaxClients (); i++)
{
Bot *bot = g_botManager->GetBot (i);
Bot *bot = botMgr->GetBot (i);
if (bot != NULL && IsAlive (bot->GetEntity ()))
{
@ -442,7 +442,7 @@ void NetworkMsg::Execute (void *p)
bot->ChatterMessage (Chatter_WhereIsTheBomb);
}
}
g_waypoint->SetBombPosition ();
waypoint->SetBombPosition ();
}
else if (m_bot != NULL && FStrEq (PTR_TO_STR (p), "#Switch_To_BurstFire"))
m_bot->m_weaponBurstMode = BM_ON;

View file

@ -162,7 +162,7 @@ void DisplayMenuToClient (edict_t *ent, MenuText *menu)
String tempText = String (menu->menuText);
tempText.Replace ("\v", "\n");
char *text = g_localizer->TranslateInput (tempText.GetBuffer ());
char *text = locale->TranslateInput (tempText.GetBuffer ());
tempText = String (text);
// make menu looks best
@ -173,7 +173,7 @@ void DisplayMenuToClient (edict_t *ent, MenuText *menu)
while (strlen (text) >= 64)
{
MESSAGE_BEGIN (MSG_ONE_UNRELIABLE, g_netMsg->GetId (NETMSG_SHOWMENU), NULL, ent);
MESSAGE_BEGIN (MSG_ONE_UNRELIABLE, netmsg->GetId (NETMSG_SHOWMENU), NULL, ent);
WRITE_SHORT (menu->validSlots);
WRITE_CHAR (-1);
WRITE_BYTE (1);
@ -186,7 +186,7 @@ void DisplayMenuToClient (edict_t *ent, MenuText *menu)
text += 64;
}
MESSAGE_BEGIN (MSG_ONE_UNRELIABLE, g_netMsg->GetId (NETMSG_SHOWMENU), NULL, ent);
MESSAGE_BEGIN (MSG_ONE_UNRELIABLE, netmsg->GetId (NETMSG_SHOWMENU), NULL, ent);
WRITE_SHORT (menu->validSlots);
WRITE_CHAR (-1);
WRITE_BYTE (0);
@ -197,7 +197,7 @@ void DisplayMenuToClient (edict_t *ent, MenuText *menu)
}
else
{
MESSAGE_BEGIN (MSG_ONE_UNRELIABLE, g_netMsg->GetId (NETMSG_SHOWMENU), NULL, ent);
MESSAGE_BEGIN (MSG_ONE_UNRELIABLE, netmsg->GetId (NETMSG_SHOWMENU), NULL, ent);
WRITE_SHORT (0);
WRITE_CHAR (0);
WRITE_BYTE (0);
@ -287,14 +287,14 @@ void DecalTrace (entvars_t *pev, TraceResult *trace, int logotypeIndex)
void FreeLibraryMemory (void)
{
// this function free's all allocated memory
g_waypoint->Init (); // frees waypoint data
waypoint->Init (); // frees waypoint data
FOR_EACH_AE (g_localizer->m_langTab, it)
FOR_EACH_AE (locale->m_langTab, it)
{
delete[] g_localizer->m_langTab[it].original;
delete[] g_localizer->m_langTab[it].translated;
delete[] locale->m_langTab[it].original;
delete[] locale->m_langTab[it].translated;
}
g_localizer->m_langTab.RemoveAll ();
locale->m_langTab.RemoveAll ();
delete [] g_experienceData;
@ -738,18 +738,18 @@ void RoundInit (void)
g_roundEnded = false;
// check team economics
g_botManager->CheckTeamEconomics (TEAM_TF);
g_botManager->CheckTeamEconomics (TEAM_CF);
botMgr->CheckTeamEconomics (TEAM_TF);
botMgr->CheckTeamEconomics (TEAM_CF);
for (int i = 0; i < GetMaxClients (); i++)
{
if (g_botManager->GetBot (i))
g_botManager->GetBot (i)->NewRound ();
if (botMgr->GetBot (i))
botMgr->GetBot (i)->NewRound ();
g_radioSelect[i] = 0;
}
g_waypoint->SetBombPosition (true);
g_waypoint->ClearGoalScore ();
waypoint->SetBombPosition (true);
waypoint->ClearGoalScore ();
g_bombSayString = false;
g_timeBombPlanted = 0.0;
@ -798,7 +798,7 @@ bool IsValidPlayer (edict_t *ent)
if (ent->v.flags & FL_PROXY)
return false;
if ((ent->v.flags & (FL_CLIENT | FL_FAKECLIENT)) || g_botManager->GetBot (ent) != NULL)
if ((ent->v.flags & (FL_CLIENT | FL_FAKECLIENT)) || botMgr->GetBot (ent) != NULL)
return !IsNullString (STRING (ent->v.netname));
return false;
@ -817,7 +817,7 @@ bool IsPlayerVIP (edict_t *ent)
bool IsValidBot (edict_t *ent)
{
if (g_botManager->GetBot (ent) != NULL || (!IsEntityNull (ent) && (ent->v.flags & FL_FAKECLIENT)))
if (botMgr->GetBot (ent) != NULL || (!IsEntityNull (ent) && (ent->v.flags & FL_FAKECLIENT)))
return true;
return false;
@ -836,7 +836,7 @@ void ServerPrint (const char *format, ...)
char string[3072];
va_start (ap, format);
vsprintf (string, g_localizer->TranslateInput (format), ap);
vsprintf (string, locale->TranslateInput (format), ap);
va_end (ap);
SERVER_PRINT (string);
@ -849,7 +849,7 @@ void CenterPrint (const char *format, ...)
char string[2048];
va_start (ap, format);
vsprintf (string, g_localizer->TranslateInput (format), ap);
vsprintf (string, locale->TranslateInput (format), ap);
va_end (ap);
if (IsDedicatedServer ())
@ -858,7 +858,7 @@ void CenterPrint (const char *format, ...)
return;
}
MESSAGE_BEGIN (MSG_BROADCAST, g_netMsg->GetId (NETMSG_TEXTMSG));
MESSAGE_BEGIN (MSG_BROADCAST, netmsg->GetId (NETMSG_TEXTMSG));
WRITE_BYTE (HUD_PRINTCENTER);
WRITE_STRING (FormatBuffer ("%s\n", string));
MESSAGE_END ();
@ -870,7 +870,7 @@ void ChartPrint (const char *format, ...)
char string[2048];
va_start (ap, format);
vsprintf (string, g_localizer->TranslateInput (format), ap);
vsprintf (string, locale->TranslateInput (format), ap);
va_end (ap);
if (IsDedicatedServer ())
@ -880,7 +880,7 @@ void ChartPrint (const char *format, ...)
}
strcat (string, "\n");
MESSAGE_BEGIN (MSG_BROADCAST, g_netMsg->GetId (NETMSG_TEXTMSG));
MESSAGE_BEGIN (MSG_BROADCAST, netmsg->GetId (NETMSG_TEXTMSG));
WRITE_BYTE (HUD_PRINTTALK);
WRITE_STRING (string);
MESSAGE_END ();
@ -893,7 +893,7 @@ void ClientPrint (edict_t *ent, int dest, const char *format, ...)
char string[2048];
va_start (ap, format);
vsprintf (string, g_localizer->TranslateInput (format), ap);
vsprintf (string, locale->TranslateInput (format), ap);
va_end (ap);
if (IsEntityNull (ent) || ent == g_hostEntity)
@ -1037,7 +1037,7 @@ void CheckWelcomeMessage (void)
WRITE_SHORT (FixedUnsigned16 (2, 1 << 8));
WRITE_SHORT (FixedUnsigned16 (6, 1 << 8));
WRITE_SHORT (FixedUnsigned16 (0.1, 1 << 8));
WRITE_STRING (FormatBuffer ("\nServer is running YaPB v%s (Build: %u)\nDeveloped by %s\n\n%s", PRODUCT_VERSION, GenerateBuildNumber (), PRODUCT_AUTHOR, g_waypoint->GetInfo ()));
WRITE_STRING (FormatBuffer ("\nServer is running YaPB v%s (Build: %u)\nDeveloped by %s\n\n%s", PRODUCT_VERSION, GenerateBuildNumber (), PRODUCT_AUTHOR, waypoint->GetInfo ()));
MESSAGE_END ();
receiveTime = 0.0;
@ -1113,7 +1113,7 @@ void AddLogEntry (bool outputToConsole, int logLevel, const char *format, ...)
char buffer[512] = {0, }, levelString[32] = {0, }, logLine[1024] = {0, };
va_start (ap, format);
vsprintf (buffer, g_localizer->TranslateInput (format), ap);
vsprintf (buffer, locale->TranslateInput (format), ap);
va_end (ap);
switch (logLevel)
@ -1252,7 +1252,7 @@ bool FindNearestPlayer (void **pvHolder, edict_t *to, float searchDistance, bool
// fill the holder
if (needBot)
*pvHolder = reinterpret_cast <void *> (g_botManager->GetBot (survive));
*pvHolder = reinterpret_cast <void *> (botMgr->GetBot (survive));
else
*pvHolder = reinterpret_cast <void *> (survive);

View file

@ -174,8 +174,8 @@ void Waypoint::Add (int flags, const Vector &waypointOrigin)
if (waypointOrigin == nullvec)
newOrigin = g_hostEntity->v.origin;
if (g_botManager->GetBotsNum () > 0)
g_botManager->RemoveAll ();
if (botMgr->GetBotsNum () > 0)
botMgr->RemoveAll ();
g_waypointsChanged = true;
@ -459,8 +459,8 @@ void Waypoint::Delete (void)
if (g_numWaypoints < 1)
return;
if (g_botManager->GetBotsNum () > 0)
g_botManager->RemoveAll ();
if (botMgr->GetBotsNum () > 0)
botMgr->RemoveAll ();
int index = FindNearest (g_hostEntity->v.origin, 50.0);
@ -1210,7 +1210,7 @@ bool Waypoint::Load (void)
InitVisibilityTab ();
InitExperienceTab ();
g_botManager->InitQuota ();
botMgr->InitQuota ();
extern ConVar yb_debug_goal;
yb_debug_goal.SetInt (-1);
@ -2658,7 +2658,7 @@ WaypointDownloadError WaypointDownloader::DoDownload (void)
recvPosition++;
}
File fp (g_waypoint->CheckSubfolderFile (), "wb");
File fp (waypoint->CheckSubfolderFile (), "wb");
if (!fp.IsValid ())
{