void plResponderModifier::ILog(uint32_t color, const char* format, ...) { #ifdef STATUS_LOG if (!gLog) gLog = plStatusLogMgr::GetInstance().CreateStatusLog(15, "Responder", plStatusLog::kFilledBackground | plStatusLog::kDeleteForMe | plStatusLog::kDontWriteFile | plStatusLog::kAlignToTop); if (!format || *format == '\0') return; ST::string keyName = GetKeyName(); // Make sure this key isn't in our list of keys to deny for (const auto& it : gNoLogStrings) { if (keyName.starts_with(it)) return; } // Format the log text char buf[256]; va_list args; va_start(args, format); int numWritten = hsVsnprintf(buf, sizeof(buf), format, args); hsAssert(numWritten > 0, "Buffer too small"); va_end(args); // Strip the redundant part off the key name ST_ssize_t modPos = keyName.find("_ResponderModifier"); if (modPos != -1) keyName = keyName.left(modPos); ST::string logLine = ST::format("{}: {}", keyName, buf); gLog->AddLine(logLine.c_str(), color); #endif // STATUS_LOG }