From fd7b5661b1598173b746a03afdcbc67d51c4b2bf Mon Sep 17 00:00:00 2001 From: notkoen <45914779+notkoen@users.noreply.github.com> Date: Sun, 26 Oct 2025 16:26:07 -0700 Subject: [PATCH] leader: change to std::vector --- src/leader.cpp | 18 +++++++++++------- src/leader.h | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/leader.cpp b/src/leader.cpp index 0b19f94bd..4079299f0 100644 --- a/src/leader.cpp +++ b/src/leader.cpp @@ -47,7 +47,7 @@ std::map mapColorPresets = { }; // clang-format on -CUtlVector g_vecLeaders; +std::vector g_vecLeaders; static int g_iMarkerCount = 0; static bool g_bPingWithLeader = true; @@ -110,14 +110,16 @@ static std::pair GetLeaders() { int iLeaders = 0; std::string strLeaders = ""; - FOR_EACH_VEC_BACK(g_vecLeaders, i) + + for (int i = g_vecLeaders.size() - 1; i >= 0; i--) { ZEPlayer* pLeader = g_vecLeaders[i].Get(); if (!pLeader) { - g_vecLeaders.Remove(i); + g_vecLeaders.erase(g_vecLeaders.begin() + i); continue; } + CCSPlayerController* pController = CCSPlayerController::FromSlot((CPlayerSlot)pLeader->GetPlayerSlot()); if (!pController) continue; @@ -224,7 +226,7 @@ static bool Leader_SetNewLeader(ZEPlayer* zpLeader, std::string strColor = "") Leader_ApplyLeaderVisuals(pawnLeader); zpLeader->PurgeLeaderVotes(); - g_vecLeaders.AddToTail(zpLeader->GetHandle()); + g_vecLeaders.push_back(zpLeader->GetHandle()); return true; } @@ -299,11 +301,12 @@ static void RemoveLeader(CCSPlayerController* ccsLeader) zpLeader->SetTracerColor(Color(0, 0, 0, 0)); zpLeader->SetBeaconColor(Color(0, 0, 0, 0)); zpLeader->SetGlowColor(Color(0, 0, 0, 0)); - FOR_EACH_VEC_BACK(g_vecLeaders, i) + + for (int i = g_vecLeaders.size() - 1; i >= 0; i--) { if (g_vecLeaders[i] == zpLeader) { - g_vecLeaders.Remove(i); + g_vecLeaders.erase(g_vecLeaders.begin() + i); break; } } @@ -367,7 +370,8 @@ void Leader_PostEventAbstract_Source1LegacyGameEvent(const uint64* clients, cons return; bool bNoHumanLeaders = true; - FOR_EACH_VEC_BACK(g_vecLeaders, i) + + for (int i = 0; i < g_vecLeaders.size(); i++) { if (g_vecLeaders[i].IsValid()) { diff --git a/src/leader.h b/src/leader.h index d49e575b2..08fce809d 100644 --- a/src/leader.h +++ b/src/leader.h @@ -24,7 +24,7 @@ #include "playermanager.h" #include "utils/entity.h" -extern CUtlVector g_vecLeaders; +extern std::vector g_vecLeaders; extern CConVar g_cvarEnableLeader; extern CConVar g_cvarLeaderActionsHumanOnly; extern CConVar g_cvarMarkParticlePath;