diff --git a/gamedata/cs2fixes.games.txt b/gamedata/cs2fixes.games.txt index 4065e4ca..480c0e17 100644 --- a/gamedata/cs2fixes.games.txt +++ b/gamedata/cs2fixes.games.txt @@ -42,8 +42,8 @@ "ServerMovementUnlock" { "library" "server" - "windows" "\x0F\x86\xB0\x2A\x2A\x2A\xF3\x0F\x58\xD4" - "linux" "\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5\x2A\x2A\x2A\x2A\x48\x89\xDE" + "windows" "\x0F\x86\xB0\x2A\x2A\x2A\xF3\x0F\x58\xD3" + "linux" "\x0F\x87\x2A\x2A\x2A\x2A\xF3\x0F\x10\x35\x2A\x2A\x2A\x2A\xF3\x0F\x11\xB5\x2A\x2A\x2A\x2A\x4C\x89\xEE" } // String: "CCSPlayerPawnBase::SwitchTeam", just keep in mind this is actually CCSPlayerController::SwitchTeam "CCSPlayerController_SwitchTeam" @@ -57,7 +57,7 @@ { "library" "server" "windows" "\xC8\x42\xEB\x2A\x4C\x39\x67\x30" - "linux" "\xC8\x42\x41\xC7\x85\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\xE9\x2A\x2A\x2A\x2A\x48\x89\xDF" + "linux" "\xC8\x42\x41\xC7\x85\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x41\xC7\x85\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\xE9" } // Called right after "Removed %s(%s)\n" "UTIL_Remove" diff --git a/sdk b/sdk index 84a823db..da981a89 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit 84a823db042b49d2f6934b770dafbf3a366cef26 +Subproject commit da981a8984c74641d2a31732a0bac742bfea6e2d diff --git a/src/leader.cpp b/src/leader.cpp index 0b19f94b..4079299f 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 d49e575b..08fce809 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; diff --git a/src/recipientfilters.h b/src/recipientfilters.h index 7630b399..d678be77 100644 --- a/src/recipientfilters.h +++ b/src/recipientfilters.h @@ -43,6 +43,7 @@ class CRecipientFilter : public IRecipientFilter NetChannelBufType_t GetNetworkBufType(void) const override { return m_nBufType; } bool IsInitMessage(void) const override { return m_bInitMessage; } const CPlayerBitVec& GetRecipients(void) const override { return m_Recipients; } + CPlayerSlot GetPredictedPlayerSlot(void) const override { return -1; } void AddAllPlayers(void) {