Index: code/client/snd_codec.c =================================================================== --- code/client/snd_codec.c (revision 1106) +++ code/client/snd_codec.c (working copy) @@ -128,6 +128,69 @@ codecs = codec; } + +// STOLEN FROM IOSTVOY by thilo!!!! HA HA HA but it works :( +qboolean S_TheCheckExtension(char *filename) +{ + fileHandle_t hnd; + char fn[MAX_QPATH]; + int stringlen = strlen(filename); + char *extptr; + + strncpy(fn, filename, stringlen+1); + extptr = strrchr(fn, '.'); + + if(!extptr) + { + extptr = &fn[stringlen]; + + extptr[0] = '.'; + extptr[1] = 'w'; + extptr[2] = 'a'; + extptr[3] = 'v'; + extptr[4] = '\0'; + + stringlen += 4; + } + + FS_FOpenFileRead(fn, &hnd, qtrue); + + if(!hnd) + { + if(!strcmp(++extptr, "wav")) + { + extptr[0] = 'o'; + extptr[1] = 'g'; + extptr[2] = 'g'; + + FS_FOpenFileRead(fn, &hnd, qtrue); + + if(!hnd) + return qfalse; + } + else + return qfalse; + } + + FS_FCloseFile(hnd); + strcpy(filename, fn); + + return qtrue; +} + +qboolean S_TheGetFileName(char *filename) +{ + char fn[MAX_QPATH]; +// qboolean dschoermen = qfalse; + + strncpy(fn, filename, sizeof(fn) - 10); + + if(S_TheCheckExtension(filename)) + return qtrue; + + return qfalse; +} + /* ================= S_CodecLoad @@ -138,16 +201,23 @@ snd_codec_t *codec; char fn[MAX_QPATH]; - codec = S_FindCodecForFile(filename); + // GO LOAD IT + strncpy(fn, filename, sizeof(fn)); + if(!S_TheGetFileName(fn)) + return NULL; + codec = S_FindCodecForFile(fn); + // codec = S_FindCodecForFile(filename); if(!codec) { Com_Printf("Unknown extension for %s\n", filename); return NULL; } - strncpy(fn, filename, sizeof(fn)); - COM_DefaultExtension(fn, sizeof(fn), codec->ext); +// strncpy(fn, filename, sizeof(fn)); +// COM_DefaultExtension(fn, sizeof(fn), codec->ext); + + return codec->load(fn, info); }