mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-12-16 07:10:53 +00:00
Simplify some branching
This commit is contained in:
parent
7f3be7bf14
commit
6e64545725
1 changed files with 18 additions and 33 deletions
|
@ -1312,51 +1312,36 @@ sfxinfo_t *S_LoadSound(sfxinfo_t *sfx)
|
||||||
int size = Wads.LumpLength(sfx->lumpnum);
|
int size = Wads.LumpLength(sfx->lumpnum);
|
||||||
if (size > 0)
|
if (size > 0)
|
||||||
{
|
{
|
||||||
BYTE *sfxdata;
|
|
||||||
BYTE *sfxstart;
|
|
||||||
FWadLump wlump = Wads.OpenLumpNum(sfx->lumpnum);
|
FWadLump wlump = Wads.OpenLumpNum(sfx->lumpnum);
|
||||||
sfxstart = sfxdata = new BYTE[size];
|
BYTE *sfxdata = new BYTE[size];
|
||||||
wlump.Read(sfxdata, size);
|
wlump.Read(sfxdata, size);
|
||||||
SDWORD len = LittleLong(((SDWORD *)sfxdata)[1]);
|
SDWORD dmxlen = LittleLong(((SDWORD *)sfxdata)[1]);
|
||||||
|
|
||||||
// If the sound is voc, use the custom loader.
|
// If the sound is voc, use the custom loader.
|
||||||
if (strncmp ((const char *)sfxstart, "Creative Voice File", 19) == 0)
|
|
||||||
{
|
|
||||||
sfx->data = GSnd->LoadSoundVoc(sfxstart, size);
|
|
||||||
}
|
|
||||||
// If the sound is raw, just load it as such.
|
// If the sound is raw, just load it as such.
|
||||||
// Otherwise, try the sound as DMX format.
|
// Otherwise, try the sound as DMX format.
|
||||||
// If that fails, let the sound system try and figure it out.
|
// If that fails, let the sound system try and figure it out.
|
||||||
else if (sfx->bLoadRAW ||
|
if (strncmp ((const char *)sfxdata, "Creative Voice File", 19) == 0)
|
||||||
(((BYTE *)sfxdata)[0] == 3 && ((BYTE *)sfxdata)[1] == 0 && len <= size - 8))
|
|
||||||
{
|
{
|
||||||
int frequency;
|
sfx->data = GSnd->LoadSoundVoc(sfxdata, size);
|
||||||
|
}
|
||||||
if (sfx->bLoadRAW)
|
else if (sfx->bLoadRAW)
|
||||||
{
|
{
|
||||||
len = Wads.LumpLength (sfx->lumpnum);
|
int frequency = (sfx->bForce22050 ? 22050 : 11025);
|
||||||
frequency = (sfx->bForce22050 ? 22050 : 11025);
|
sfx->data = GSnd->LoadSoundRaw(sfxdata, size, frequency, 1, 8, sfx->LoopStart);
|
||||||
}
|
}
|
||||||
else
|
else if (((BYTE *)sfxdata)[0] == 3 && ((BYTE *)sfxdata)[1] == 0 && dmxlen <= size - 8)
|
||||||
{
|
{
|
||||||
frequency = LittleShort(((WORD *)sfxdata)[1]);
|
int frequency = LittleShort(((WORD *)sfxdata)[1]);
|
||||||
if (frequency == 0)
|
if (frequency == 0) frequency = 11025;
|
||||||
{
|
sfx->data = GSnd->LoadSoundRaw(sfxdata+8, dmxlen, frequency, 1, 8, sfx->LoopStart);
|
||||||
frequency = 11025;
|
|
||||||
}
|
|
||||||
sfxstart = sfxdata + 8;
|
|
||||||
}
|
|
||||||
sfx->data = GSnd->LoadSoundRaw(sfxstart, len, frequency, 1, 8, sfx->LoopStart);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sfx->data = GSnd->LoadSound(sfxstart, size);
|
sfx->data = GSnd->LoadSound(sfxdata, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sfxdata != NULL)
|
delete[] sfxdata;
|
||||||
{
|
|
||||||
delete[] sfxdata;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sfx->data.isValid())
|
if (!sfx->data.isValid())
|
||||||
|
|
Loading…
Reference in a new issue