]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - snd_dma.c
r_dlightmap 0 mode removed (vertex dlights on lightmapped walls)
[xonotic/darkplaces.git] / snd_dma.c
index 6de33897f78545c8aa9e768ec390b9a7c4d2903b..6be221abc0b89178702adcba44e22485de8a3abe 100644 (file)
--- a/snd_dma.c
+++ b/snd_dma.c
@@ -408,7 +408,7 @@ void SND_Spatialize(channel_t *ch, int isstatic)
                {
                        //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]);
                        VectorCopy(cl_entities[ch->entnum].state_current.origin, ch->origin);
-                       if (cl_entities[ch->entnum].state_current.modelindex && cl.model_precache[cl_entities[ch->entnum].state_current.modelindex]->type == mod_brush)
+                       if (cl_entities[ch->entnum].state_current.modelindex && cl.model_precache[cl_entities[ch->entnum].state_current.modelindex]->brush.TraceBox)
                                VectorMAMAM(1.0f, ch->origin, 0.5f, cl.model_precache[cl_entities[ch->entnum].state_current.modelindex]->normalmins, 0.5f, cl.model_precache[cl_entities[ch->entnum].state_current.modelindex]->normalmaxs, ch->origin);
                }
 
@@ -680,18 +680,20 @@ S_UpdateAmbientSounds
 */
 void S_UpdateAmbientSounds (void)
 {
-       mleaf_t         *l;
        float           vol;
        int                     ambient_channel;
        channel_t       *chan;
+       qbyte           ambientlevels[NUM_AMBIENTS];
 
        // LordHavoc: kill ambient sounds until proven otherwise
        for (ambient_channel = 0 ; ambient_channel < NUM_AMBIENTS;ambient_channel++)
                channels[ambient_channel].sfx = NULL;
 
-       if (!snd_ambient || ambient_level.value <= 0 || !cl.worldmodel || !cl.worldmodel->brushq1.PointInLeaf || (l = cl.worldmodel->brushq1.PointInLeaf(cl.worldmodel, listener_origin)) == NULL)
+       if (!snd_ambient || ambient_level.value <= 0 || !cl.worldmodel || !cl.worldmodel->brush.AmbientSoundLevelsForPoint)
                return;
 
+       cl.worldmodel->brush.AmbientSoundLevelsForPoint(cl.worldmodel, listener_origin, ambientlevels, sizeof(ambientlevels));
+
 // calc ambient sound levels
        for (ambient_channel = 0 ; ambient_channel< NUM_AMBIENTS ; ambient_channel++)
        {
@@ -701,7 +703,7 @@ void S_UpdateAmbientSounds (void)
                chan->forceloop = true;
                chan->sfx = ambient_sfx[ambient_channel];
 
-               vol = ambient_level.value * l->ambient_sound_level[ambient_channel];
+               vol = ambient_level.value * ambientlevels[ambient_channel];
                if (vol < 8)
                        vol = 0;