Console: check_caches should also log failure messages to the console

This commit is contained in:
Jonathan G Rennison
2023-03-24 22:27:26 +00:00
parent 04aedf4798
commit 1031955033
2 changed files with 8 additions and 2 deletions

View File

@@ -3022,7 +3022,10 @@ DEF_CONSOLE_CMD(ConCheckCaches)
if (broadcast) { if (broadcast) {
DoCommandP(0, 0, 0, CMD_DESYNC_CHECK); DoCommandP(0, 0, 0, CMD_DESYNC_CHECK);
} else { } else {
CheckCaches(true, nullptr, CHECK_CACHE_ALL | CHECK_CACHE_EMIT_LOG); auto logger = [&](const char *str) {
IConsolePrint(CC_WARNING, str);
};
CheckCaches(true, logger, CHECK_CACHE_ALL | CHECK_CACHE_EMIT_LOG);
} }
return true; return true;

View File

@@ -1473,8 +1473,11 @@ void CheckCaches(bool force_check, std::function<void(const char *)> log, CheckC
} }
std::vector<std::string> saved_messages; std::vector<std::string> saved_messages;
std::function<void(const char *)> log_orig;
if (flags & CHECK_CACHE_EMIT_LOG) { if (flags & CHECK_CACHE_EMIT_LOG) {
log = [&saved_messages](const char *str) { log_orig = std::move(log);
log = [&saved_messages, &log_orig](const char *str) {
if (log_orig) log_orig(str);
saved_messages.emplace_back(str); saved_messages.emplace_back(str);
}; };
} }