]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - snd_main.c
cl_netfps: reduce pings by synchronising when possible, related fixes
[xonotic/darkplaces.git] / snd_main.c
index aab18140bfab0036098ff91f81b7a1bd2766ee45..6f3bf31e1294bd9f313377db4c08ebd6b1c9c29e 100644 (file)
@@ -661,6 +661,8 @@ void S_Startup (void)
 #ifdef CONFIG_VIDEO_CAPTURE
        recording_sound = false;
 #endif
+
+       CDAudio_Startup();
 }
 
 void S_Shutdown(void)
@@ -668,6 +670,8 @@ void S_Shutdown(void)
        if (snd_renderbuffer == NULL)
                return;
 
+       CDAudio_Shutdown();
+
        oldpaintedtime = snd_renderbuffer->endframe;
 
        if (simsound)
@@ -778,8 +782,8 @@ void S_Init(void)
        if (Sys_CheckParm("-nosound"))
        {
                // dummy out Play and Play2 because mods stuffcmd that
-               Cmd_AddCommand(CF_CLIENT, "play", Host_NoOperation_f, "does nothing because -nosound was specified");
-               Cmd_AddCommand(CF_CLIENT, "play2", Host_NoOperation_f, "does nothing because -nosound was specified");
+               Cmd_AddCommand(CF_CLIENT, "play", Cmd_NoOperation_f, "does nothing because -nosound was specified");
+               Cmd_AddCommand(CF_CLIENT, "play2", Cmd_NoOperation_f, "does nothing because -nosound was specified");
                return;
        }
 
@@ -824,6 +828,8 @@ void S_Init(void)
 #ifdef USEXMP
        XMP_OpenLibrary ();
 #endif
+
+       CDAudio_Init();
 }
 
 
@@ -1226,7 +1232,7 @@ static void SND_Spatialize_WithSfx(channel_t *ch, qbool isstatic, sfx_t *sfx)
                }
                else if (cl.entities[ch->entnum].state_current.active)
                {
-                       dp_model_t *model;
+                       model_t *model;
                        //Con_Printf("-- entnum %i origin %f %f %f neworigin %f %f %f\n", ch->entnum, ch->origin[0], ch->origin[1], ch->origin[2], cl.entities[ch->entnum].state_current.origin[0], cl.entities[ch->entnum].state_current.origin[1], cl.entities[ch->entnum].state_current.origin[2]);
                        model = CL_GetModelByIndex(cl.entities[ch->entnum].state_current.modelindex);
                        if (model && model->soundfromcenter)
@@ -2240,7 +2246,7 @@ void S_ExtraUpdate (void)
        S_PaintAndSubmit();
 }
 
-qbool S_LocalSound (const char *sound)
+qbool S_LocalSoundEx (const char *sound, int chan, float fvol)
 {
        sfx_t   *sfx;
        int             ch_ind;
@@ -2261,10 +2267,15 @@ qbool S_LocalSound (const char *sound)
        // fun fact: in Quake 1, this used -1 "replace any entity channel",
        // which we no longer support anyway
        // changed by Black in r4297 "Changed S_LocalSound to play multiple sounds at a time."
-       ch_ind = S_StartSound (cl.viewentity, 0, sfx, vec3_origin, 1, 0);
+       ch_ind = S_StartSound (cl.viewentity, chan, sfx, vec3_origin, fvol, 0);
        if (ch_ind < 0)
                return false;
 
        channels[ch_ind].flags |= CHANNELFLAG_LOCALSOUND;
        return true;
 }
+
+qbool S_LocalSound (const char *sound)
+{
+       return S_LocalSoundEx(sound, 0, 1);
+}