mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
67 lines
1.4 KiB
C++
67 lines
1.4 KiB
C++
// File: lzham_assert.cpp
|
|
// See Copyright Notice and license at the end of include/lzham.h
|
|
#include "include/lzham_core.h"
|
|
|
|
static bool g_fail_exceptions;
|
|
static bool g_exit_on_failure = true;
|
|
|
|
void lzham_enable_fail_exceptions(bool enabled)
|
|
{
|
|
g_fail_exceptions = enabled;
|
|
}
|
|
|
|
void lzham_assert(const char* pExp, const char* pFile, unsigned line)
|
|
{
|
|
char buf[512];
|
|
|
|
sprintf_s(buf, sizeof(buf), "%s(%u): Assertion failed: \"%s\"\n", pFile, line, pExp);
|
|
|
|
lzham_output_debug_string(buf);
|
|
|
|
printf("%s", buf);
|
|
|
|
if (lzham_is_debugger_present())
|
|
lzham_debug_break();
|
|
}
|
|
|
|
void lzham_fail(const char* pExp, const char* pFile, unsigned line)
|
|
{
|
|
char buf[512];
|
|
|
|
sprintf_s(buf, sizeof(buf), "%s(%u): Failure: \"%s\"\n", pFile, line, pExp);
|
|
|
|
lzham_output_debug_string(buf);
|
|
|
|
printf("%s", buf);
|
|
|
|
if (lzham_is_debugger_present())
|
|
lzham_debug_break();
|
|
|
|
#if LZHAM_USE_WIN32_API
|
|
if (g_fail_exceptions)
|
|
RaiseException(LZHAM_FAIL_EXCEPTION_CODE, 0, 0, NULL);
|
|
else
|
|
#endif
|
|
if (g_exit_on_failure)
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
void lzham_trace(const char* pFmt, va_list args)
|
|
{
|
|
if (lzham_is_debugger_present())
|
|
{
|
|
char buf[512];
|
|
vsprintf_s(buf, sizeof(buf), pFmt, args);
|
|
|
|
lzham_output_debug_string(buf);
|
|
}
|
|
};
|
|
|
|
void lzham_trace(const char* pFmt, ...)
|
|
{
|
|
va_list args;
|
|
va_start(args, pFmt);
|
|
lzham_trace(pFmt, args);
|
|
va_end(args);
|
|
};
|