From 8a8e922f464c3d3b6743c7a1e3c61aeaccdaea15 Mon Sep 17 00:00:00 2001 From: "Michael Cook (mackal)" Date: Sun, 9 Jun 2019 17:50:33 -0400 Subject: [PATCH] We need some way to keep track of everyone who needs a lockout This prevents exploits but is also rather annoying for people who leave --- world/shared_tasks.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/world/shared_tasks.h b/world/shared_tasks.h index 79c51eea4..f46dd34d3 100644 --- a/world/shared_tasks.h +++ b/world/shared_tasks.h @@ -6,6 +6,7 @@ #include "../common/servertalk.h" #include "../common/global_tasks.h" +#include "cliententry.h" class ClientListEntry; @@ -29,6 +30,9 @@ public: members.push_back({name, cle, leader}); if (leader) leader_name = name; + auto it = std::find(char_ids.begin(), char_ids.end(), cle->CharID()); + if (it == char_ids.end()) + char_ids.push_back(cle->CharID()); } void MemberLeftGame(ClientListEntry *cle); inline const std::string &GetLeaderName() const { return leader_name; } @@ -59,6 +63,7 @@ private: bool locked; std::string leader_name; std::vector members; + std::vector char_ids; // every char id of someone to be locked out, different in case they leave/removed ClientTaskInformation task_state; // book keeping friend class SharedTaskManager;