Clean up the q3 plugin a little.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6274 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
d41ca13562
commit
d8364a4cc2
6 changed files with 25 additions and 21 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
//
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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*/);
|
||||
|
|
Loading…
Reference in a new issue