diff --git a/storm/Error.cpp b/storm/Error.cpp index 6935949..3765bfe 100644 --- a/storm/Error.cpp +++ b/storm/Error.cpp @@ -53,6 +53,18 @@ int32_t SErrDisplayError(uint32_t errorcode, const char* filename, int32_t linen } } +int32_t SErrDisplayErrorFmt(uint32_t errorcode, const char* filename, int32_t linenumber, int32_t recoverable, uint32_t exitcode, const char* format, ...) { + char buffer[2048]; + + va_list args; + va_start(args, format); + vsnprintf(buffer, sizeof(buffer) - 1, format, args); + buffer[sizeof(buffer) - 1] = '\0'; + va_end(args); + + return SErrDisplayError(errorcode, filename, linenumber, buffer, recoverable, exitcode, 1); +} + void SErrPrepareAppFatal(const char* filename, int32_t linenumber) { // TODO } diff --git a/storm/Error.hpp b/storm/Error.hpp index 81fa567..1445046 100644 --- a/storm/Error.hpp +++ b/storm/Error.hpp @@ -43,6 +43,8 @@ int32_t SErrDisplayError(uint32_t errorcode, const char* filename, int32_t linenumber, const char* description, int32_t recoverable, uint32_t exitcode, uint32_t a7); +int32_t SErrDisplayErrorFmt(uint32_t errorcode, const char* filename, int32_t linenumber, int32_t recoverable, uint32_t exitcode, const char* format, ...); + void SErrPrepareAppFatal(const char* filename, int32_t linenumber); void SErrSetLastError(uint32_t errorcode);