Move Color to Scripting.

This commit is contained in:
hispidence 2022-01-21 21:09:23 +00:00
parent 416be03d95
commit 7c484d2510
11 changed files with 16 additions and 20 deletions

View file

@ -0,0 +1,51 @@
#pragma once
#include <string>
#include <optional>
#include <spdlog/fmt/fmt.h>
enum class ERROR_MODE
{
SILENT,
WARN,
TERMINATE
};
void SetScriptErrorMode(ERROR_MODE mode);
ERROR_MODE GetScriptErrorMode();
void ScriptWarn(std::string const& msg);
bool ScriptAssert(bool cond, std::string const& msg, std::optional<ERROR_MODE> forceMode = std::nullopt);
template <typename ... Ts> bool ScriptAssertF(bool cond, std::string_view str, Ts...args)
{
if (!cond)
{
auto msg = fmt::format(str, args...);
auto mode = GetScriptErrorMode();
switch (mode)
{
case ERROR_MODE::WARN:
TENLog(msg, LogLevel::Error, LogConfig::All);
break;
case ERROR_MODE::TERMINATE:
TENLog(msg, LogLevel::Error, LogConfig::All);
throw TENScriptException(msg);
break;
}
}
return cond;
}
template <typename ... Ts> bool ScriptAssertTerminateF(bool cond, std::string_view str, Ts...args)
{
if (!cond)
{
auto msg = fmt::format(str, args...);
TENLog(msg, LogLevel::Error, LogConfig::All);
throw TENScriptException(msg);
}
return cond;
}