Skip to content

Commit 9b1f777

Browse files
committed
Convert remaining unnecessary CUtlVector usages
Other than in detour system, because that's removed in KHook branch
1 parent ced74d2 commit 9b1f777

6 files changed

Lines changed: 59 additions & 77 deletions

File tree

src/entities.cpp

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ namespace CPointViewControlHandler
494494
{
495495
struct ViewControl
496496
{
497-
CUtlVector<CHandle<CCSPlayerPawn>> m_players;
497+
std::vector<CHandle<CCSPlayerPawn>> m_players;
498498
std::string m_viewTarget;
499499
std::string m_name;
500500
};
@@ -590,22 +590,24 @@ namespace CPointViewControlHandler
590590

591591
for (auto& [vk, vc] : s_repository)
592592
{
593-
if (const auto index = vc.m_players.Find(handle); index > -1)
593+
const auto iterator = std::find(vc.m_players.begin(), vc.m_players.end(), handle);
594+
if (iterator != vc.m_players.end())
594595
{
595596
if (vk == static_cast<uint>(key))
596597
{
597598
Warning("PointViewControl %s was enabled twice in a row! player: %s\n", vc.m_name.c_str(), pController->GetPlayerName().c_str());
598599
return false;
599600
}
600601

601-
vc.m_players.Remove(index);
602+
vc.m_players.erase(iterator);
602603
UpdatePlayerState(pPawn, INVALID_HANDLE, false, RESET_FOV);
603604
Warning("PointViewControl %s already enabled for %s\n", vc.m_name.c_str(), pController->GetPlayerName().c_str());
604605
break;
605606
}
606607
}
607608

608-
return it->second.m_players.AddToTail(handle) >= 0;
609+
it->second.m_players.push_back(handle);
610+
return true;
609611
}
610612
bool OnDisable(CPointViewControl* pEntity, CBaseEntity* pActivator)
611613
{
@@ -632,7 +634,14 @@ namespace CPointViewControlHandler
632634

633635
UpdatePlayerState(pPawn, INVALID_HANDLE, false, RESET_FOV);
634636

635-
return it->second.m_players.FindAndRemove(handle);
637+
auto& vecPlayers = it->second.m_players;
638+
auto iterator = std::find(vecPlayers.begin(), vecPlayers.end(), handle);
639+
640+
if (iterator == vecPlayers.end())
641+
return false;
642+
643+
vecPlayers.erase(iterator);
644+
return true;
636645
}
637646
bool OnEnableAll(CPointViewControl* pEntity)
638647
{
@@ -655,17 +664,19 @@ namespace CPointViewControlHandler
655664

656665
for (auto& [vk, vc] : s_repository)
657666
{
658-
if (const auto index = vc.m_players.Find(handle); index > -1)
667+
auto iterator = std::find(vc.m_players.begin(), vc.m_players.end(), handle);
668+
669+
if (iterator != vc.m_players.end())
659670
{
660-
vc.m_players.Remove(index);
671+
vc.m_players.erase(iterator);
661672
if (vk == static_cast<uint>(key))
662673
continue;
663674
UpdatePlayerState(pPawn, INVALID_HANDLE, false, RESET_FOV);
664675
Warning("PointViewControl %s already enabled for %s\n", vc.m_name.c_str(), pController->GetPlayerName().c_str());
665676
}
666677
}
667678

668-
it->second.m_players.AddToTail(handle);
679+
it->second.m_players.push_back(handle);
669680
}
670681

671682
return true;
@@ -677,15 +688,11 @@ namespace CPointViewControlHandler
677688
if (it == s_repository.end())
678689
return false;
679690

680-
FOR_EACH_VEC(it->second.m_players, i)
681-
{
682-
const auto& handle = it->second.m_players.Element(i);
683-
684-
if (const auto player = handle.Get())
691+
for (auto hPawn : it->second.m_players)
692+
if (CCSPlayerPawn* player = hPawn.Get())
685693
UpdatePlayerState(player, INVALID_HANDLE, false, RESET_FOV);
686-
}
687694

688-
it->second.m_players.Purge();
695+
it->second.m_players.clear();
689696

690697
return true;
691698
}
@@ -698,13 +705,9 @@ namespace CPointViewControlHandler
698705
const auto entity = CHandle<CPointViewControl>(it->first).Get();
699706
if (!entity)
700707
{
701-
FOR_EACH_VEC(it->second.m_players, i)
702-
{
703-
const auto& handle = it->second.m_players.Element(i);
704-
705-
if (const auto player = handle.Get())
708+
for (auto hPawn : it->second.m_players)
709+
if (CCSPlayerPawn* player = hPawn.Get())
706710
UpdatePlayerState(player, INVALID_HANDLE, false, RESET_FOV);
707-
}
708711

709712
it = s_repository.erase(it);
710713
}
@@ -725,68 +728,58 @@ namespace CPointViewControlHandler
725728
continue;
726729
}
727730

728-
if (vc.m_players.Count() == 0)
731+
if (vc.m_players.empty())
729732
continue;
730733

731734
const auto pTarget = entity->GetTargetCameraEntity();
732735
if (!pTarget)
733736
{
734-
FOR_EACH_VEC(vc.m_players, i)
735-
{
736-
const auto& handle = vc.m_players.Element(i);
737-
738-
if (const auto player = handle.Get())
737+
for (auto hPawn : vc.m_players)
738+
if (CCSPlayerPawn* player = hPawn.Get())
739739
UpdatePlayerState(player, INVALID_HANDLE, false, RESET_FOV);
740-
}
741-
vc.m_players.Purge();
740+
vc.m_players.clear();
742741
continue;
743742
}
744743

745-
FOR_EACH_VEC(vc.m_players, i)
744+
for (auto iterator = vc.m_players.begin(); iterator != vc.m_players.end();)
746745
{
747-
const auto& handle = vc.m_players.Element(i);
748-
const auto player = handle.Get();
746+
auto hPawn = *iterator;
747+
CCSPlayerPawn* player = hPawn.Get();
749748
if (!player)
750749
{
751-
vc.m_players.Remove(i--);
750+
iterator = vc.m_players.erase(iterator);
752751
continue;
753752
}
754753
if (!player->IsAlive())
755754
{
756755
UpdatePlayerState(player, INVALID_HANDLE, false, RESET_FOV);
757-
vc.m_players.Remove(i--);
756+
iterator = vc.m_players.erase(iterator);
758757
continue;
759758
}
760759

761760
UpdatePlayerState(player, pTarget->GetHandle(), entity->HasFrozen(), entity->HasFOV() ? entity->GetFOV() : INVALID_FOV, entity->HasDisarm());
761+
iterator++;
762762
}
763763
}
764764
}
765765
bool IsViewControl(CCSPlayerPawn* pPawn)
766766
{
767-
const auto handle = pPawn->GetHandle().ToInt();
768767
for (const auto& [vk, vc] : s_repository)
769768
{
770-
FOR_EACH_VEC(vc.m_players, i)
771-
{
772-
if (vc.m_players.Element(i).ToInt() == handle)
769+
for (auto hPawn : vc.m_players)
770+
if (hPawn == pPawn->GetHandle())
773771
return true;
774-
}
775772
}
776773
return false;
777774
}
778775
void Shutdown()
779776
{
780777
for (auto& [vk, vc] : s_repository)
781778
{
782-
FOR_EACH_VEC(vc.m_players, i)
783-
{
784-
const auto& handle = vc.m_players.Element(i);
785-
786-
if (const auto player = handle.Get())
779+
for (auto hPawn : vc.m_players)
780+
if (CCSPlayerPawn* player = hPawn.Get())
787781
UpdatePlayerState(player, INVALID_HANDLE, false, RESET_FOV);
788-
}
789-
vc.m_players.Purge();
782+
vc.m_players.clear();
790783
}
791784
s_repository.clear();
792785
}

src/eventlistener.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@
2121
#include "common.h"
2222
#include "igameevents.h"
2323
#include "utlstring.h"
24-
#include "utlvector.h"
2524

2625
class CGameEventListener;
2726

28-
extern CUtlVector<CGameEventListener*> g_vecEventListeners;
27+
extern std::vector<CGameEventListener*> g_vecEventListeners;
2928
extern CConVar<int> g_cvarFreeArmor;
3029

3130
typedef void (*FnEventListenerCallback)(IGameEvent* event);
@@ -36,7 +35,7 @@ class CGameEventListener : public IGameEventListener2
3635
CGameEventListener(FnEventListenerCallback callback, const char* pszEventName) :
3736
m_Callback(callback), m_pszEventName(pszEventName)
3837
{
39-
g_vecEventListeners.AddToTail(this);
38+
g_vecEventListeners.push_back(this);
4039
}
4140

4241
~CGameEventListener() override

src/events.cpp

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
#include "tier0/memdbgon.h"
4141

42-
CUtlVector<CGameEventListener*> g_vecEventListeners;
42+
std::vector<CGameEventListener*> g_vecEventListeners;
4343

4444
void RegisterEventListeners()
4545
{
@@ -48,10 +48,8 @@ void RegisterEventListeners()
4848
if (bRegistered || !g_gameEventManager)
4949
return;
5050

51-
FOR_EACH_VEC(g_vecEventListeners, i)
52-
{
53-
g_gameEventManager->AddListener(g_vecEventListeners[i], g_vecEventListeners[i]->GetEventName(), true);
54-
}
51+
for (CGameEventListener* pListener : g_vecEventListeners)
52+
g_gameEventManager->AddListener(pListener, pListener->GetEventName(), true);
5553

5654
bRegistered = true;
5755
}
@@ -61,12 +59,10 @@ void UnregisterEventListeners()
6159
if (!g_gameEventManager)
6260
return;
6361

64-
FOR_EACH_VEC(g_vecEventListeners, i)
65-
{
66-
g_gameEventManager->RemoveListener(g_vecEventListeners[i]);
67-
}
62+
for (CGameEventListener* pListener : g_vecEventListeners)
63+
g_gameEventManager->RemoveListener(pListener);
6864

69-
g_vecEventListeners.Purge();
65+
g_vecEventListeners.clear();
7066
}
7167

7268
GAME_EVENT_F(round_prestart)

src/playermanager.cpp

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -421,36 +421,30 @@ void ZEPlayer::CreateMark(float fDuration, Vector vecOrigin)
421421

422422
int ZEPlayer::GetLeaderVoteCount()
423423
{
424-
int iValidVoteCount = 0;
425-
426-
for (int i = m_vecLeaderVotes.Count() - 1; i >= 0; i--)
427-
if (m_vecLeaderVotes[i].IsValid())
428-
iValidVoteCount++;
429-
else
430-
m_vecLeaderVotes.Remove(i);
424+
std::erase_if(m_vecLeaderVotes, [](ZEPlayerHandle hPlayer) {
425+
return !hPlayer.IsValid();
426+
});
431427

432-
return iValidVoteCount;
428+
return m_vecLeaderVotes.size();
433429
}
434430

435431
bool ZEPlayer::HasPlayerVotedLeader(ZEPlayer* pPlayer)
436432
{
437-
FOR_EACH_VEC(m_vecLeaderVotes, i)
438-
{
439-
if (m_vecLeaderVotes[i] == pPlayer)
433+
for (ZEPlayerHandle hPlayer : m_vecLeaderVotes)
434+
if (hPlayer == pPlayer)
440435
return true;
441-
}
442436

443437
return false;
444438
}
445439

446440
void ZEPlayer::AddLeaderVote(ZEPlayer* pPlayer)
447441
{
448-
m_vecLeaderVotes.AddToTail(pPlayer->GetHandle());
442+
m_vecLeaderVotes.push_back(pPlayer->GetHandle());
449443
}
450444

451445
void ZEPlayer::PurgeLeaderVotes()
452446
{
453-
m_vecLeaderVotes.Purge();
447+
m_vecLeaderVotes.clear();
454448
}
455449

456450
void ZEPlayer::StartGlow(Color color, int duration)

src/playermanager.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ class ZEPlayer
376376
Color m_colorTracer;
377377
Color m_colorGlow;
378378
Color m_colorBeacon;
379-
CUtlVector<ZEPlayerHandle> m_vecLeaderVotes;
379+
std::vector<ZEPlayerHandle> m_vecLeaderVotes;
380380
float m_flLeaderVoteTime;
381381
CHandle<CBaseModelEntity> m_hGlowModel;
382382
float m_flSpeedMod;
@@ -404,9 +404,9 @@ class CPlayerManager
404404
V_memset(m_vecPlayers, 0, sizeof(m_vecPlayers));
405405
m_nUsingStopSound = -1; // On by default
406406
m_nUsingSilenceSound = 0;
407-
m_nUsingZSounds = -1; // On by default
407+
m_nUsingZSounds = -1; // On by default
408408
m_nUsingZSoundsInfect = -1; // On by default
409-
m_nUsingStopDecals = -1; // On by default
409+
m_nUsingStopDecals = -1; // On by default
410410
m_nUsingNoShake = 0;
411411
}
412412

src/zombiereborn.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1261,7 +1261,7 @@ void ZR_InfectMotherZombie(CCSPlayerController* pVictimController, std::vector<S
12611261

12621262
ZEPlayerHandle hPlayer = pZEPlayer->GetHandle();
12631263
CTimer::Create(rand() % (int)g_cvarMoanInterval.Get(), TIMERFLAG_MAP | TIMERFLAG_ROUND, [hPlayer]() { return ZR_MoanTimer(hPlayer); });
1264-
1264+
12651265
g_MotherZombies.push_back(hPlayer);
12661266
}
12671267

0 commit comments

Comments
 (0)