From c7d690011d7851d5caf3583e791ae8dae3af6110 Mon Sep 17 00:00:00 2001 From: Spoike Date: Fri, 14 Apr 2006 01:18:46 +0000 Subject: [PATCH] Make builtins returning floats work properly when not compiled as a qvm. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2200 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- plugins/plugin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/plugin.h b/plugins/plugin.h index e87d55a11..7f60d396c 100644 --- a/plugins/plugin.h +++ b/plugins/plugin.h @@ -54,10 +54,10 @@ void BadBuiltin(void); #define EBUILTIN(t, n, args) extern int BUILTIN_##n; t n args #define TEST #ifdef TEST - #define BUILTINR(t, n, args) int BUILTIN_##n; t n args {if (!BUILTINISVALID(n))Sys_Error("Builtin "#n" is not valid\n");return (t)plugin_syscall(BUILTIN_##n ARGNAMES);} + #define BUILTINR(t, n, args) int BUILTIN_##n; t n args {int res; if (!BUILTINISVALID(n))Sys_Error("Builtin "#n" is not valid\n");res = plugin_syscall(BUILTIN_##n ARGNAMES); return *(t*)&res;} #define BUILTIN(t, n, args) int BUILTIN_##n; t n args {if (!BUILTINISVALID(n))Sys_Error("Builtin "#n" is not valid\n");plugin_syscall(BUILTIN_##n ARGNAMES);} #else - #define BUILTINR(t, n, args) int BUILTIN_##n; t n args {return (t)plugin_syscall(BUILTIN_##n ARGNAMES);} + #define BUILTINR(t, n, args) int BUILTIN_##n; t n args {int res = plugin_syscall(BUILTIN_##n ARGNAMES); return *(t*)&res;} #define BUILTIN(t, n, args) int BUILTIN_##n; t n args {plugin_syscall(BUILTIN_##n ARGNAMES);} #endif #define CHECKBUILTIN(n) BUILTIN_##n = (int)Plug_GetEngineFunction(#n);