diff --git a/engine/client/merged.h b/engine/client/merged.h index d4e1e6f93..d4f457f6b 100644 --- a/engine/client/merged.h +++ b/engine/client/merged.h @@ -219,6 +219,7 @@ typedef struct rendererinfo_s { void (*R_LessenStains) (void); void (*Mod_Init) (void); + void (*Mod_Shutdown) (void); void (*Mod_ClearAll) (void); struct model_s *(*Mod_ForName) (char *name, qboolean crash); struct model_s *(*Mod_FindName) (char *name); diff --git a/engine/client/render.h b/engine/client/render.h index 1915be4aa..2bbc25374 100644 --- a/engine/client/render.h +++ b/engine/client/render.h @@ -313,6 +313,7 @@ extern texid_t ptritexture; #if defined(GLQUAKE) || defined(D3DQUAKE) void RMod_Init (void); +void RMod_Shutdown (void); int Mod_TagNumForName(struct model_s *model, char *name); int Mod_SkinNumForName(struct model_s *model, char *name); int Mod_FrameNumForName(struct model_s *model, char *name); diff --git a/engine/client/renderer.c b/engine/client/renderer.c index 89544b1a6..a2abc5365 100644 --- a/engine/client/renderer.c +++ b/engine/client/renderer.c @@ -717,6 +717,7 @@ void (*R_AddStain) (vec3_t org, float red, float green, float blue, float rad void (*R_LessenStains) (void); void (*Mod_Init) (void); +void (*Mod_Shutdown) (void); void (*Mod_ClearAll) (void); struct model_s *(*Mod_ForName) (char *name, qboolean crash); struct model_s *(*Mod_FindName) (char *name); @@ -799,6 +800,7 @@ rendererinfo_t dedicatedrendererinfo = { #if defined(GLQUAKE) || defined(D3DQUAKE) RMod_Init, + RMod_Shutdown, RMod_ClearAll, RMod_ForName, RMod_FindName, @@ -1354,6 +1356,7 @@ void R_SetRenderer(rendererinfo_t *ri) VID_SetWindowCaption = ri->VID_SetWindowCaption; Mod_Init = ri->Mod_Init; + Mod_Shutdown = ri->Mod_Shutdown; Mod_Think = ri->Mod_Think; Mod_ClearAll = ri->Mod_ClearAll; Mod_ForName = ri->Mod_ForName; @@ -1401,7 +1404,8 @@ void R_ShutdownRenderer(void) CL_AllowIndependantSendCmd(false); //FIXME: figure out exactly which parts are going to affect the model loading. P_Shutdown(); - RMod_Shutdown(); + if (Mod_Shutdown) + Mod_Shutdown(); IN_Shutdown(); diff --git a/engine/client/snd_al.c b/engine/client/snd_al.c index fd90c2fc1..4b7dcea1a 100644 --- a/engine/client/snd_al.c +++ b/engine/client/snd_al.c @@ -599,7 +599,7 @@ static void OpenAL_SetUnderWater (soundcardinfo_t *sc, qboolean underwater) } /*stub should not be called*/ -static void OpenAL_Submit (soundcardinfo_t *sc) +static void OpenAL_Submit (soundcardinfo_t *sc, int start, int end) { //Con_Printf("OpenAL: Submit\n"); } diff --git a/engine/client/snd_directx.c b/engine/client/snd_directx.c index 765a48c80..513aa082d 100644 --- a/engine/client/snd_directx.c +++ b/engine/client/snd_directx.c @@ -512,7 +512,7 @@ SNDDMA_Submit Send sound to device if buffer isn't really the dma buffer =============== */ -static void DSOUND_Submit(soundcardinfo_t *sc) +static void DSOUND_Submit(soundcardinfo_t *sc, int start, int end) { } diff --git a/engine/client/snd_win.c b/engine/client/snd_win.c index 22488034f..d30ee8f2c 100644 --- a/engine/client/snd_win.c +++ b/engine/client/snd_win.c @@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define WAV_BUFFER_SIZE 0x0400 #define SECONDARY_BUFFER_SIZE 0x10000 -static void WAV_Submit(soundcardinfo_t *sc); +static void WAV_Submit(soundcardinfo_t *sc, int start, int end); typedef struct { HWAVEOUT hWaveOut; @@ -166,7 +166,7 @@ WAV_Submit Send sound to device if buffer isn't really the dma buffer =============== */ -static void WAV_Submit(soundcardinfo_t *sc) +static void WAV_Submit(soundcardinfo_t *sc, int start, int end) { LPWAVEHDR h; int wResult; diff --git a/engine/common/vm.h b/engine/common/vm.h index 8acfd7003..c73e02e89 100644 --- a/engine/common/vm.h +++ b/engine/common/vm.h @@ -84,9 +84,10 @@ qboolean Plugin_ExecuteString(void); #ifdef VM_UI qboolean UI_Command(void); void UI_Init (void); +void UI_Start (void); +void UI_Stop (void); qboolean UI_OpenMenu(void); void UI_Restart_f(void); -void UI_Stop (void); qboolean UI_Q2LayoutChanged(void); void UI_StringChanged(int num); qboolean UI_MousePosition(int xpos, int ypos); diff --git a/engine/d3d/vid_d3d.c b/engine/d3d/vid_d3d.c index a5e9c6908..00cb02365 100644 --- a/engine/d3d/vid_d3d.c +++ b/engine/d3d/vid_d3d.c @@ -1207,6 +1207,7 @@ rendererinfo_t d3drendererinfo = Surf_LessenStains, RMod_Init, + RMod_Shutdown, RMod_ClearAll, RMod_ForName, RMod_FindName, diff --git a/engine/gl/gl_vidcommon.c b/engine/gl/gl_vidcommon.c index ec5ea51e9..15a01fc7d 100644 --- a/engine/gl/gl_vidcommon.c +++ b/engine/gl/gl_vidcommon.c @@ -1105,6 +1105,7 @@ rendererinfo_t openglrendererinfo = { Surf_LessenStains, RMod_Init, + RMod_Shutdown, RMod_ClearAll, RMod_ForName, RMod_FindName,