mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
Fix issue with sounds being expired from cache
git-svn-id: https://svn.eduke32.com/eduke32@7874 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
1a0c56f0f1
commit
2a3c80f95d
2 changed files with 19 additions and 3 deletions
|
@ -191,7 +191,7 @@ int32_t cacheFindBlock(int32_t newbytes, int32_t *besto, int32_t *bestz)
|
|||
|
||||
for (native_t i=o1, zz=z; i<o2; i+=cac[zz++].leng)
|
||||
{
|
||||
if (*cac[zz].lock == 0)
|
||||
if (*cac[zz].lock == 0 || *cac[zz].lock == 255)
|
||||
continue;
|
||||
else if (*cac[zz].lock >= 200)
|
||||
{
|
||||
|
@ -317,7 +317,7 @@ void cacheAgeEntries(void)
|
|||
{
|
||||
if ((((*cac[agecount].lock)-2)&255) < 198)
|
||||
(*cac[agecount].lock)--;
|
||||
else if (*cac[agecount].lock >= 200)
|
||||
else if (*cac[agecount].lock == 255)
|
||||
cnt++;
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,9 @@ void S_SoundStartup(void)
|
|||
voice.clock = 0;
|
||||
}
|
||||
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
g_soundlocks[i] = 199;
|
||||
#endif
|
||||
}
|
||||
|
||||
cacheAllSounds();
|
||||
|
@ -448,7 +450,7 @@ int32_t S_LoadSound(int num)
|
|||
}
|
||||
|
||||
int32_t l = kfilelength(fp);
|
||||
g_soundlocks[num] = 200;
|
||||
g_soundlocks[num] = 255;
|
||||
snd.siz = l;
|
||||
cacheAllocateBlock((intptr_t *)&snd.ptr, l, (char *)&g_soundlocks[num]);
|
||||
l = kread(fp, snd.ptr, l);
|
||||
|
@ -705,14 +707,18 @@ int S_PlaySound3D(int num, int spriteNum, const vec3_t *pos)
|
|||
if (snd.num > 0 && PN(spriteNum) != MUSICANDSFX)
|
||||
S_StopEnvSound(sndNum, spriteNum);
|
||||
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
if (++g_soundlocks[sndNum] < 200)
|
||||
g_soundlocks[sndNum] = 200;
|
||||
#endif
|
||||
|
||||
int const sndSlot = S_GetSlot(sndNum);
|
||||
|
||||
if (sndSlot >= MAXSOUNDINSTANCES)
|
||||
{
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
g_soundlocks[sndNum]--;
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -720,7 +726,9 @@ int S_PlaySound3D(int num, int spriteNum, const vec3_t *pos)
|
|||
|
||||
if (repeatp && (snd.m & SF_ONEINST_INTERNAL) && snd.num > 0)
|
||||
{
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
g_soundlocks[sndNum]--;
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -729,7 +737,9 @@ int S_PlaySound3D(int num, int spriteNum, const vec3_t *pos)
|
|||
|
||||
if (voice <= FX_Ok)
|
||||
{
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
g_soundlocks[sndNum]--;
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -764,14 +774,18 @@ int S_PlaySound(int num)
|
|||
|
||||
int const pitch = S_GetPitch(num);
|
||||
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
if (++g_soundlocks[num] < 200)
|
||||
g_soundlocks[num] = 200;
|
||||
#endif
|
||||
|
||||
sndnum = S_GetSlot(num);
|
||||
|
||||
if (sndnum >= MAXSOUNDINSTANCES)
|
||||
{
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
g_soundlocks[num]--;
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -782,7 +796,9 @@ int S_PlaySound(int num)
|
|||
|
||||
if (voice <= FX_Ok)
|
||||
{
|
||||
#ifdef CACHING_DOESNT_SUCK
|
||||
g_soundlocks[num]--;
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue