diff --git a/engine/common/vm.h b/engine/common/vm.h index 5039f716..33da611d 100644 --- a/engine/common/vm.h +++ b/engine/common/vm.h @@ -30,13 +30,6 @@ qboolean VM_NonNative(vm_t *vm); void *VM_MemoryBase(vm_t *vm); quintptr_t VM_MemoryMask(vm_t *vm); - -#define VM_TOSTRCACHE(a) VMQ3_StringToHandle(VM_POINTER(a)) -#define VM_FROMSTRCACHE(a) VMQ3_StringFromHandle(a) -char *VMQ3_StringFromHandle(int handle); -int VMQ3_StringToHandle(char *str); -void VMQ3_FlushStringHandles(void); - #define VM_FS_READ 0 #define VM_FS_WRITE 1 #define VM_FS_APPEND 2 diff --git a/engine/gl/glquake.h b/engine/gl/glquake.h index 05ce2d9d..ae71db1e 100644 --- a/engine/gl/glquake.h +++ b/engine/gl/glquake.h @@ -368,9 +368,6 @@ void R_DrawGAliasShadowVolume(entity_t *e, vec3_t lightpos, float radius); #ifdef GLQUAKE //misc model formats void R_DrawHLModel(entity_t *curent); - -//typedef float m3by3_t[3][3]; -//int GetTag(model_t *mod, char *tagname, int frame, float **org, m3by3_t **ang); #endif // diff --git a/plugins/quake3/clq3_cg.c b/plugins/quake3/clq3_cg.c index 3ecf6d23..3482c345 100644 --- a/plugins/quake3/clq3_cg.c +++ b/plugins/quake3/clq3_cg.c @@ -1,15 +1,5 @@ #include "q3common.h" -//#include "cg_public.h" #if defined(VM_CG) && defined(HAVE_CLIENT) - -#include "shader.h" - -#if 1 -#include "glquake.h"//hack -#else -typedef float m3by3_t[3][3]; -#endif - #include "clq3defs.h" #include "com_mesh.h" diff --git a/plugins/quake3/q3common.c b/plugins/quake3/q3common.c index fb6877f2..2a6c83d4 100644 --- a/plugins/quake3/q3common.c +++ b/plugins/quake3/q3common.c @@ -1655,6 +1655,7 @@ qint64_t Q3VM_GetRealtime(q3time_t *qtime) static struct q3gamecode_s q3funcs = { +#ifdef HAVE_CLIENT { CLQ3_SendAuthPacket, CLQ3_SendConnectPacket, @@ -1680,7 +1681,11 @@ static struct q3gamecode_s q3funcs = UI_OpenMenu, UI_Reset, }, +#else +{NULL},{NULL},{NULL}, +#endif +#ifdef HAVE_SERVER { SVQ3_ShutdownGame, SVQ3_InitGame, @@ -1695,6 +1700,9 @@ static struct q3gamecode_s q3funcs = SVQ3_RestartGamecode, SVQ3_ServerinfoChanged, }, +#else + {NULL}, +#endif }; #ifndef STATIC_Q3 @@ -1706,11 +1714,15 @@ void Q3_Frame(double enginetime, double gametime) void Q3_Shutdown(void) { +#ifdef HAVE_SERVER SVQ3_ShutdownGame(false); +#endif +#ifdef HAVE_CLIENT CG_Stop(); UI_Stop(); VMQ3_FlushStringHandles(); +#endif } #ifdef STATIC_Q3 @@ -1741,6 +1753,7 @@ qboolean Plug_Init(void) plugfuncs->ExportFunction("Tick", Q3_Frame); #endif +#ifdef HAVE_CLIENT drawfuncs = plugfuncs->GetEngineInterface(plug2dfuncs_name, sizeof(*drawfuncs)); scenefuncs = plugfuncs->GetEngineInterface(plug3dfuncs_name, sizeof(*scenefuncs)); inputfuncs = plugfuncs->GetEngineInterface(pluginputfuncs_name, sizeof(*inputfuncs)); @@ -1749,6 +1762,7 @@ qboolean Plug_Init(void) masterfuncs = plugfuncs->GetEngineInterface(plugmasterfuncs_name, sizeof(*masterfuncs)); if (drawfuncs && scenefuncs && inputfuncs && clientfuncs && audiofuncs && masterfuncs) UI_Init(); +#endif return true; } #else diff --git a/plugins/quake3/q3common.h b/plugins/quake3/q3common.h index 85d8d2f1..3f8dbd0d 100644 --- a/plugins/quake3/q3common.h +++ b/plugins/quake3/q3common.h @@ -4,14 +4,22 @@ #include "../plugins/plugin.h" #include "clq3defs.h" +#define VM_TOSTRCACHE(a) VMQ3_StringToHandle(VM_POINTER(a)) +#define VM_FROMSTRCACHE(a) VMQ3_StringFromHandle(a) +char *VMQ3_StringFromHandle(int handle); +int VMQ3_StringToHandle(char *str); +void VMQ3_FlushStringHandles(void); + //#define Q3_NOENCRYPT //a debugging property, makes it incompatible with q3 +#ifdef HAVE_CLIENT extern plug2dfuncs_t *drawfuncs; extern plug3dfuncs_t *scenefuncs; extern pluginputfuncs_t *inputfuncs; extern plugaudiofuncs_t *audiofuncs; extern plugmasterfuncs_t*masterfuncs; extern plugclientfuncs_t*clientfuncs; +#endif extern plugq3vmfuncs_t *vmfuncs; extern plugfsfuncs_t *fsfuncs; diff --git a/plugins/quake3/svq3_game.c b/plugins/quake3/svq3_game.c index 97eae787..6ff3df49 100644 --- a/plugins/quake3/svq3_game.c +++ b/plugins/quake3/svq3_game.c @@ -1607,8 +1607,10 @@ static qintptr_t EXPORT_FN Q3G_SystemCallsNative(qintptr_t arg, ...) void SVQ3_ShutdownGame(qboolean restarting) { int i; +#ifdef HAVE_CLIENT if (!restarting) CG_Stop(); +#endif if (!q3gamevm) return; @@ -3386,7 +3388,7 @@ void SVQ3_DirectConnect(netadr_t *from, sizebuf_t *msg) //Actually connect the c if (from->type == NA_LOOPBACK) reason = "localhost"; //Q3 uses this specific string for listen servers. else - reason = masterfuncs->AdrToString(adr, sizeof(adr), from); + reason = msgfuncs->AdrToString(adr, sizeof(adr), from); worldfuncs->SetIBufKey(&cl->userinfo, "ip", reason); //q3 gamecode needs to know the client's ip (server's perception of the client, NOT QW client's perception of the server/proxy) ret = vmfuncs->Call(q3gamevm, GAME_CLIENT_CONNECT, (int)(cl-svs.clients), true/*firsttime*/, false/*isbot*/);