// opening and closing streams
-static void StripExtension(char *in, char *out)
-{
- char *dot, *c;
- dot = NULL;
- for (c = in;*c;c++)
- {
- if (*c == ':' || *c == '\\' || *c == '/')
- dot = NULL;
- if (*c == '.')
- dot = c;
- }
- if (dot == NULL)
- {
- // nothing to remove
- strcpy(out, in);
- return;
- }
- else
- {
- memcpy(out, in, dot - in);
- out[dot - in] = 0;
- }
-}
-
// opens a stream
void *dpvsimpledecode_open(char *filename, char **errorstring)
{
if (s->videopixels != NULL)
{
size_t namelen;
-
+
namelen = strlen(filename) + 10;
wavename = (char *)Z_Malloc(namelen);
if (wavename)
{
sfx_t* sfx;
- StripExtension(filename, wavename);
+ FS_StripExtension(filename, wavename, namelen);
strlcat(wavename, ".wav", namelen);
sfx = S_PrecacheSound (wavename, false, false);
if (sfx != NULL)
if (s->videopixels)
Z_Free(s->videopixels);
if (s->sndchan != -1)
- S_StopChannel (s->sndchan);
+ S_StopChannel (s->sndchan, true);
if (s->framedatablocks)
hz_bitstream_read_blocks_free(s->framedatablocks);
if (s->bitstream)