* Fix a bug with sounds overlapping.

* Make sounds with identical names (as opposed to just identical sfx's) stack together.
* Corrected a few names.
This commit is contained in:
toasterbabe 2017-04-17 02:03:44 +01:00
parent 3e29ee3f01
commit db282caefe
2 changed files with 25 additions and 4 deletions

View File

@ -36,6 +36,7 @@ extern INT32 msg_id;
#include "d_main.h"
#include "r_sky.h" // skyflatnum
#include "p_local.h" // camera info
#include "fastcmp.h"
#ifdef HW3SOUND
// 3D Sound Interface
@ -592,17 +593,21 @@ dontplay:
// Handle closed caption input.
if (cv_closedcaptioning.value && sfx->caption[0] != '/')
{
UINT8 i, set = 7;
UINT8 i, set = 7, moveup = 255;
for (i = 0; i < set; i++)
{
if ((sfx == closedcaptions[i].s)
boolean same = ((sfx == closedcaptions[i].s) || (closedcaptions[i].s && fastcmp(sfx->caption, closedcaptions[i].s->caption)));
if (same
|| !(closedcaptions[i].c || closedcaptions[i].s) || (sfx->priority >= closedcaptions[i].s->priority))
{
set = i;
if (closedcaptions[i].s && !same && (sfx->priority >= closedcaptions[i].s->priority))
moveup = i;
break;
}
}
if (sfx != closedcaptions[set].s)
{
for (i = 7; i > set; i--)
@ -615,6 +620,22 @@ dontplay:
}
}
}
if (moveup != 255)
{
for (i = moveup; i < 7; i++)
{
if (!(closedcaptions[i].c || closedcaptions[i].s))
break;
}
for (; i > set; i--)
{
closedcaptions[i].c = closedcaptions[i-1].c;
closedcaptions[i].s = closedcaptions[i-1].s;
closedcaptions[i].t = closedcaptions[i-1].t;
}
}
closedcaptions[set].c = &channels[cnum];
closedcaptions[set].s = sfx;
closedcaptions[set].t = TICRATE+2;

View File

@ -377,10 +377,10 @@ sfxinfo_t S_sfx[NUMSFX] =
{"s3k97", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Wind"},
{"s3k98", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Falling spike"},
{"s3k99", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Bounce"},
{"s3k9a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""},
{"s3k9a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Click"},
{"s3k9b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Crusher stomp"},
{"s3k9c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Got Super Emerald"},
{"s3k9d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Targetting"},
{"s3k9d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Targeting"},
{"s3k9e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Metallic clink"},
{"s3k9f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Super transformation"},
{"s3ka0", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Launch"},