diff --git a/src/openrct2/core/Guard.cpp b/src/openrct2/core/Guard.cpp index ffb8546740..049c1cd79a 100644 --- a/src/openrct2/core/Guard.cpp +++ b/src/openrct2/core/Guard.cpp @@ -34,12 +34,9 @@ extern "C" { - void openrct2_assert(bool expression, const char * message, ...) + void openrct2_assert_va(bool expression, const char * message, va_list va) { - va_list args; - va_start(args, message); - Guard::Assert_VA(expression, message, args); - va_end(args); + Guard::Assert_VA(expression, message, va); } } diff --git a/src/openrct2/core/Guard.hpp b/src/openrct2/core/Guard.hpp index 11b819d441..65bf9df4fe 100644 --- a/src/openrct2/core/Guard.hpp +++ b/src/openrct2/core/Guard.hpp @@ -16,17 +16,25 @@ #pragma once +#include + #ifdef __cplusplus extern "C" { #endif // __cplusplus -void openrct2_assert(bool expression, const char * message, ...); +void openrct2_assert_va(bool expression, const char * message, va_list va); +inline void openrct2_assert(bool expression, const char * message, ...) +{ + if (!expression) return; + va_list va; + va_start(va, message); + openrct2_assert_va(expression, message, va); + va_end(va); +} #ifdef __cplusplus } -#include - enum class ASSERT_BEHAVIOUR { ABORT,