diff --git a/deps/mongoose b/deps/mongoose index a478dc59..421b420a 160000 --- a/deps/mongoose +++ b/deps/mongoose @@ -1 +1 @@ -Subproject commit a478dc59354deb19d01a9e9138bcfac76a0347e3 +Subproject commit 421b420a0c159a8cbd027f87674b19f4a9b77993 diff --git a/deps/protobuf b/deps/protobuf index e0016c5b..c18aa779 160000 --- a/deps/protobuf +++ b/deps/protobuf @@ -1 +1 @@ -Subproject commit e0016c5b6ae61ad60d260a78c5834cc537b46d10 +Subproject commit c18aa7795a2e02ef700ff8b039d94ecdcc33432f diff --git a/src/Components/Modules/Auth.hpp b/src/Components/Modules/Auth.hpp index be90a337..edfa8bc3 100644 --- a/src/Components/Modules/Auth.hpp +++ b/src/Components/Modules/Auth.hpp @@ -28,16 +28,18 @@ namespace Components STATE_INVALID, }; - struct AuthInfo + class AuthInfo { + public: Utils::Cryptography::ECC::Key publicKey; std::string challenge; AuthState state; int time; }; - struct TokenIncrementing + class TokenIncrementing { + public: bool cancel; bool generating; std::thread thread; diff --git a/src/Components/Modules/ConnectProtocol.hpp b/src/Components/Modules/ConnectProtocol.hpp index a552c4e5..e67ea63d 100644 --- a/src/Components/Modules/ConnectProtocol.hpp +++ b/src/Components/Modules/ConnectProtocol.hpp @@ -10,8 +10,9 @@ namespace Components static bool Used(); private: - struct Container + class Container { + public: bool Evaluated; bool Invoked; std::string ConnectString; diff --git a/src/Components/Modules/Discovery.hpp b/src/Components/Modules/Discovery.hpp index bb5775b2..c176bacd 100644 --- a/src/Components/Modules/Discovery.hpp +++ b/src/Components/Modules/Discovery.hpp @@ -10,8 +10,9 @@ namespace Components static void Perform(); private: - struct Container + class Container { + public: bool Perform; bool Terminate; std::thread Thread; diff --git a/src/Components/Modules/Dvar.hpp b/src/Components/Modules/Dvar.hpp index decc255f..6a8a13dd 100644 --- a/src/Components/Modules/Dvar.hpp +++ b/src/Components/Modules/Dvar.hpp @@ -5,8 +5,9 @@ namespace Components public: typedef void(Callback)(); - struct Flag - { + class Flag + { + public: Flag(Game::dvar_flag flag) : val(flag){}; Flag(int flag) : Flag((Game::dvar_flag)flag) {}; diff --git a/src/Components/Modules/Menus.cpp b/src/Components/Modules/Menus.cpp index 60121554..83ecea63 100644 --- a/src/Components/Modules/Menus.cpp +++ b/src/Components/Modules/Menus.cpp @@ -403,13 +403,16 @@ namespace Components void Menus::RemoveMenu(Game::menuDef_t* menudef) { - for (auto i = Menus::MenuList.begin(); i != Menus::MenuList.end(); ++i) + for (auto i = Menus::MenuList.begin(); i != Menus::MenuList.end();) { if (i->second == menudef) { Menus::FreeMenu(menudef); i = Menus::MenuList.erase(i); - break; + } + else + { + ++i; } } } diff --git a/src/Components/Modules/Node.cpp b/src/Components/Modules/Node.cpp index f8fa765f..442134fd 100644 --- a/src/Components/Modules/Node.cpp +++ b/src/Components/Modules/Node.cpp @@ -166,12 +166,16 @@ namespace Components void Node::DeleteInvalidSessions() { - for (auto i = Node::Sessions.begin(); i != Node::Sessions.end(); ++i) + for (auto i = Node::Sessions.begin(); i != Node::Sessions.end();) { if (i->lastTime <= 0 || (Game::Sys_Milliseconds() - i->lastTime) > SESSION_TIMEOUT) { i = Node::Sessions.erase(i); } + else + { + ++i; + } } } diff --git a/src/Components/Modules/Node.hpp b/src/Components/Modules/Node.hpp index 71e85ff7..bac2e02a 100644 --- a/src/Components/Modules/Node.hpp +++ b/src/Components/Modules/Node.hpp @@ -33,8 +33,9 @@ namespace Components STATE_INVALID, }; - struct NodeEntry + class NodeEntry { + public: Network::Address address; std::string challenge; Utils::Cryptography::ECC::Key publicKey; @@ -52,8 +53,9 @@ namespace Components uint32_t version; }; - struct ClientSession + class ClientSession { + public: Network::Address address; std::string challenge; bool valid; diff --git a/src/Components/Modules/Party.hpp b/src/Components/Modules/Party.hpp index 77be6e04..149d43a3 100644 --- a/src/Components/Modules/Party.hpp +++ b/src/Components/Modules/Party.hpp @@ -17,8 +17,9 @@ namespace Components static void PlaylistError(std::string error); private: - struct JoinContainer + class JoinContainer { + public: Network::Address Target; std::string Challenge; DWORD JoinTime; diff --git a/src/Components/Modules/RCon.hpp b/src/Components/Modules/RCon.hpp index b16d968a..0bb2824e 100644 --- a/src/Components/Modules/RCon.hpp +++ b/src/Components/Modules/RCon.hpp @@ -8,8 +8,9 @@ namespace Components const char* GetName() { return "RCon"; }; private: - struct Container + class Container { + public: int timestamp; std::string output; std::string challenge; diff --git a/src/Components/Modules/ServerInfo.hpp b/src/Components/Modules/ServerInfo.hpp index 4edaac3f..527c656b 100644 --- a/src/Components/Modules/ServerInfo.hpp +++ b/src/Components/Modules/ServerInfo.hpp @@ -10,10 +10,12 @@ namespace Components static Utils::InfoString GetInfo(); private: - struct Container + class Container { - struct Player + public: + class Player { + public: int Ping; int Score; std::string Name; diff --git a/src/Components/Modules/ServerList.cpp b/src/Components/Modules/ServerList.cpp index 55002b46..93055f9c 100644 --- a/src/Components/Modules/ServerList.cpp +++ b/src/Components/Modules/ServerList.cpp @@ -376,7 +376,7 @@ namespace Components { ServerList::RefreshContainer.Mutex.lock(); - for (auto i = ServerList::RefreshContainer.Servers.begin(); i != ServerList::RefreshContainer.Servers.end(); ++i) + for (auto i = ServerList::RefreshContainer.Servers.begin(); i != ServerList::RefreshContainer.Servers.end();) { // Our desired server if (i->Target == address && i->Sent) @@ -412,22 +412,28 @@ namespace Components if (!list) return; unsigned int k = 0; - for (auto j = list->begin(); j != list->end(); ++j, ++k) + for (auto j = list->begin(); j != list->end(); ++k) { if (j->Addr == address) { j = list->erase(j); - break; + } + else + { + ++j; } } // Also remove from visible list - for (auto j = ServerList::VisibleList.begin(); j != ServerList::VisibleList.end(); ++j) + for (auto j = ServerList::VisibleList.begin(); j != ServerList::VisibleList.end();) { if (*j == k) { j = ServerList::VisibleList.erase(j); - break; + } + else + { + ++j; } } @@ -449,6 +455,10 @@ namespace Components break; } + else + { + ++i; + } } ServerList::RefreshContainer.Mutex.unlock(); diff --git a/src/Components/Modules/ServerList.hpp b/src/Components/Modules/ServerList.hpp index 66428ece..0bc00f1a 100644 --- a/src/Components/Modules/ServerList.hpp +++ b/src/Components/Modules/ServerList.hpp @@ -5,8 +5,9 @@ namespace Components public: typedef int(SortCallback)(const void*, const void*); - struct ServerInfo + class ServerInfo { + public: Network::Address Addr; std::string Hostname; std::string Mapname; @@ -73,10 +74,12 @@ namespace Components }; #pragma pack(pop) - struct Container + class Container { - struct ServerContainer + public: + class ServerContainer { + public: bool Sent; int SendTime; std::string Challenge; diff --git a/src/Components/Modules/Theatre.hpp b/src/Components/Modules/Theatre.hpp index 82b0239b..91ce2cbf 100644 --- a/src/Components/Modules/Theatre.hpp +++ b/src/Components/Modules/Theatre.hpp @@ -7,10 +7,12 @@ namespace Components const char* GetName() { return "Theatre"; }; private: - struct Container + class Container { - struct DemoInfo + public: + class DemoInfo { + public: std::string Name; std::string Mapname; std::string Gametype; diff --git a/src/Components/Modules/Toast.hpp b/src/Components/Modules/Toast.hpp index 7ef93539..cd02d9d4 100644 --- a/src/Components/Modules/Toast.hpp +++ b/src/Components/Modules/Toast.hpp @@ -10,8 +10,9 @@ namespace Components static void Show(const char* image, const char* title, const char* description, int length); private: - struct UIToast + class UIToast { + public: std::string Image; std::string Title; std::string Desc;