playerlist.cpp: add player list cleanup command

Removes useless entries from player list to save some RAM
TO DO: Automatically cleanup list
This commit is contained in:
Unnamed 2019-02-22 17:33:30 +00:00 committed by TotallyNotElite
parent 454cfbe023
commit e5f6abcd8e

View File

@ -211,6 +211,25 @@ CatCommand pl_add_id("pl_add_id", "Sets state for steamid", [](const CCommand &a
logging::Info("Unknown State");
});
static void pl_cleanup()
{
userdata empty{};
size_t counter = 0;
for (auto it = data.begin(); it != data.end(); ++it)
{
if (std::memcmp(&it->second, &empty, sizeof(empty)))
continue;
++counter;
data.erase(it);
/* Start all over again. Iterator is invalidated once erased. */
it = data.begin();
}
logging::InfoConsole("%lu elements were removed", counter);
}
CatCommand pl_clean("pl_clean", "Removes empty entries to reduce RAM usage", pl_cleanup);
CatCommand pl_set_state("pl_set_state", "cat_pl_set_state [playername] [state] (Tab to autocomplete)", [](const CCommand &args) {
if (args.ArgC() != 3)
{