From b7cb878ad8cc120054ecc35ca21dc2c032a9ad34 Mon Sep 17 00:00:00 2001
From: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Tue, 1 Feb 2022 12:36:26 -0500
Subject: [PATCH] - fix compiling on Linux/et-al

---
 source/common/console/c_cvars.cpp | 4 ++--
 source/common/console/c_cvars.h   | 2 +-
 source/core/r_data/gldefs.cpp     | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/source/common/console/c_cvars.cpp b/source/common/console/c_cvars.cpp
index b9d8a3efc..c9b859f2d 100644
--- a/source/common/console/c_cvars.cpp
+++ b/source/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<void (__cdecl *)(FBaseCVar &)>(callback);
+	m_Callback = callback;
 	m_UseCallback = true;
 }
 
diff --git a/source/common/console/c_cvars.h b/source/common/console/c_cvars.h
index fd65f14b5..38462b077 100644
--- a/source/common/console/c_cvars.h
+++ b/source/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/source/core/r_data/gldefs.cpp b/source/core/r_data/gldefs.cpp
index d702864c5..0424688ab 100644
--- a/source/core/r_data/gldefs.cpp
+++ b/source/core/r_data/gldefs.cpp
@@ -1534,17 +1534,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);