diff --git a/src/common/console/c_cvars.cpp b/src/common/console/c_cvars.cpp index b9d8a3efca..c9b859f2d8 100644 --- a/src/common/console/c_cvars.cpp +++ b/src/common/console/c_cvars.cpp @@ -145,9 +145,9 @@ FBaseCVar::~FBaseCVar () } } -void FBaseCVar::SetCallback(void *callback) +void FBaseCVar::SetCallback(void (*callback)(FBaseCVar&)) { - m_Callback = reinterpret_cast(callback); + m_Callback = callback; m_UseCallback = true; } diff --git a/src/common/console/c_cvars.h b/src/common/console/c_cvars.h index fd65f14b5f..38462b077e 100644 --- a/src/common/console/c_cvars.h +++ b/src/common/console/c_cvars.h @@ -184,7 +184,7 @@ public: ToggleMessages[1] = on; } - void SetCallback(void *callback); + void SetCallback(void (*callback)(FBaseCVar&)); void ClearCallback(); void SetExtraDataPointer(void *pointer); diff --git a/src/r_data/gldefs.cpp b/src/r_data/gldefs.cpp index 9a5cf32d3e..f062d77c33 100644 --- a/src/r_data/gldefs.cpp +++ b/src/r_data/gldefs.cpp @@ -1529,17 +1529,17 @@ class GLDefsParser ECVarType cvartype = CVAR_Dummy; int cvarflags = CVAR_MOD|CVAR_ARCHIVE|CVAR_VIRTUAL; FBaseCVar *cvar; - void* callback = NULL; + void (*callback)(FBaseCVar&) = NULL; FString cvarname; switch (parsedType) { case PostProcessUniformType::Int: cvartype = CVAR_Int; - callback = uniform_callback_int; + callback = (void (*)(FBaseCVar&))uniform_callback_int; break; case PostProcessUniformType::Float: cvartype = CVAR_Float; - callback = uniform_callback_float; + callback = (void (*)(FBaseCVar&))uniform_callback_float; break; default: sc.ScriptError("'%s' not supported for CVAR uniforms!", strUniformType);