From 31920b06924eef4f8c4963a28e30927bf8abb4ac Mon Sep 17 00:00:00 2001 From: Federico Cecchetto Date: Mon, 27 Dec 2021 21:03:29 +0100 Subject: [PATCH] Some fixes --- src/component/notifies.cpp | 2 +- src/component/userinfo.cpp | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/component/notifies.cpp b/src/component/notifies.cpp index 2da35d3..e47a31d 100644 --- a/src/component/notifies.cpp +++ b/src/component/notifies.cpp @@ -29,7 +29,7 @@ namespace notifies const auto entity_id = game::Scr_GetEntityId(clientNum, 0); const auto result = callback(entity_id, {message, cmd == "say_team"s}); - if (result.is()) + if (result.is() && !hidden) { hidden = result.as() == 0; } diff --git a/src/component/userinfo.cpp b/src/component/userinfo.cpp index 7c98a5d..b171615 100644 --- a/src/component/userinfo.cpp +++ b/src/component/userinfo.cpp @@ -13,12 +13,17 @@ namespace userinfo { utils::hook::detour sv_getuserinfo_hook; - userinfo_map userinfo_to_map(const std::string& userinfo) + userinfo_map userinfo_to_map(std::string userinfo) { - userinfo_map map; - const auto args = utils::string::split(userinfo, '\\'); + userinfo_map map{}; - for (auto i = 1; i < args.size() - 1; i += 2) + if (userinfo[0] == '\\') + { + userinfo = userinfo.substr(1); + } + + const auto args = utils::string::split(userinfo, '\\'); + for (size_t i = 0; !args.empty() && i < (args.size() - 1); i += 2) { map[args[i]] = args[i + 1]; } @@ -28,7 +33,7 @@ namespace userinfo std::string map_to_userinfo(const userinfo_map& map) { - std::string buffer; + std::string buffer{}; for (const auto& value : map) { @@ -43,9 +48,8 @@ namespace userinfo void sv_getuserinfo_stub(int index, char* buffer, int bufferSize) { - char _buffer[1024]; - sv_getuserinfo_hook.invoke(index, _buffer, 1024); - auto map = userinfo_to_map(_buffer); + sv_getuserinfo_hook.invoke(index, buffer, bufferSize); + auto map = userinfo_to_map(buffer); if (userinfo_overrides.find(index) == userinfo_overrides.end()) {