#include "uniquake.h" #include "../Quake/quakedef.h" #ifdef USE_FMOD typedef struct FMOD_SYSTEM FMOD_SYSTEM; extern FMOD_SYSTEM *fmod_system; extern int fmod_playernumber; UNIQUAKE_API void UniQuake_SetFmodSystem(FMOD_SYSTEM *system, int playernumber) { fmod_system = system; fmod_playernumber = playernumber; } #endif UNIQUAKE_API void UniQuake_Init(quakeparms_t *parms, const unity_syscalls_t *syscalls, const unity_glcalls_t *glcalls, const unity_gamecalls_t *gamecalls) { host_parms = parms; unity_syscalls = syscalls; unity_glcalls = glcalls; unity_gamecalls = gamecalls; COM_InitArgv(parms->argc, parms->argv); parms->argc = com_argc; parms->argv = com_argv; // UniQuake won't support dedicated servers at all isDedicated = false; #ifdef USE_LIBSDL Sys_InitSDL(); #endif if (!parms->userdir) parms->userdir = parms->basedir; // Code elsewhere relies on this Sys_Printf("Quake %1.2f (c) id Software\n", VERSION); Sys_Printf("GLQuake %1.2f (c) id Software\n", GLQUAKE_VERSION); Sys_Printf("FitzQuake %1.2f (c) John Fitzgibbons\n", FITZQUAKE_VERSION); Sys_Printf("FitzQuake SDL port (c) SleepwalkR, Baker\n"); Sys_Printf("QuakeSpasm " QUAKESPASM_VER_STRING " (c) Ozkan Sezer, Eric Wasylishen & others\n"); Sys_Printf("UniQuake (c) Nico de Poel\n"); Sys_Printf("Host_Init\n"); Host_Init(); } UNIQUAKE_API void UniQuake_Update(float deltaTime) { Host_Frame(deltaTime); } UNIQUAKE_API void UniQuake_Shutdown() { Host_Shutdown(); #ifdef USE_LIBSDL Sys_AtExit(); #endif }