From 6d960880b995c1185d4b92e3076547f2dd5db781 Mon Sep 17 00:00:00 2001 From: divverent Date: Thu, 13 Dec 2007 15:23:14 +0000 Subject: [PATCH] minor improvement to modplug (now cd loop 1 also would load a mod/it/xm/s3m/... file named track001 (without extension). git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7790 d7cf8633-e32d-0410-b094-e92efae38249 --- cd_shared.c | 4 ++++ makefile.inc | 4 ++-- snd_mem.c | 33 +++++++++++++++++++++++++-------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/cd_shared.c b/cd_shared.c index e6c27a88..e56fa388 100644 --- a/cd_shared.c +++ b/cd_shared.c @@ -129,6 +129,10 @@ void CDAudio_Play_byName (const char *trackname, qboolean looping) sfx = S_PrecacheSound (va ("cdtracks/track%02u.wav", track), false, false); if (sfx == NULL || !S_IsSoundPrecached (sfx)) sfx = S_PrecacheSound (va ("cdtracks/track%03u.wav", track), false, false); + if (sfx == NULL || !S_IsSoundPrecached (sfx)) + sfx = S_PrecacheSound (va ("cdtracks/track%02u", track), false, false); + if (sfx == NULL || !S_IsSoundPrecached (sfx)) + sfx = S_PrecacheSound (va ("cdtracks/track%03u", track), false, false); } else { diff --git a/makefile.inc b/makefile.inc index 8e604f55..1d7ee8b9 100644 --- a/makefile.inc +++ b/makefile.inc @@ -173,9 +173,9 @@ OBJ_GLX= builddate.c sys_linux.o vid_glx.o $(OBJ_SOUND) $(OBJ_CD) $(OBJ_COMMON) LDFLAGS_UNIXCOMMON=-lm LDFLAGS_UNIXCL=-L$(UNIX_X11LIBPATH) -lX11 -lXpm -lXext -lXxf86dga -lXxf86vm $(LIB_SOUND) -LDFLAGS_UNIXCL_PRELOAD=-lz -ljpeg -lpng -lvorbis -lvorbisfile -lcurl +LDFLAGS_UNIXCL_PRELOAD=-lz -ljpeg -lpng -lvorbis -lvorbisfile -lcurl -lmodplug LDFLAGS_UNIXSV_PRELOAD=-lz -lcurl -LDFLAGS_UNIXSDL_PRELOAD=-lz -ljpeg -lpng -lvorbis -lvorbisfile -lcurl +LDFLAGS_UNIXSDL_PRELOAD=-lz -ljpeg -lpng -lvorbis -lvorbisfile -lcurl -lmodplug CFLAGS_UNIX_PRELOAD=-DPREFER_PRELOAD LDFLAGS_UNIXSDL=$(SDLCONFIG_LIBS) diff --git a/snd_mem.c b/snd_mem.c index 44e33d16..a6cb234e 100644 --- a/snd_mem.c +++ b/snd_mem.c @@ -333,15 +333,22 @@ qboolean S_LoadSound (sfx_t *sfx, qboolean complain) Con_DPrintf("S_LoadSound: name \"%s\" is too long\n", sfx->name); return false; } - if (S_LoadWavFile (namebuffer, sfx)) - return true; if (len >= 4 && !strcasecmp (namebuffer + len - 4, ".wav")) + { + if (S_LoadWavFile (namebuffer, sfx)) + return true; memcpy (namebuffer + len - 3, "ogg", 4); + } if (len >= 4 && !strcasecmp (namebuffer + len - 4, ".ogg")) + { if (OGG_LoadVorbisFile (namebuffer, sfx)) return true; - if (ModPlug_LoadModPlugFile (namebuffer, sfx)) - return true; + } + else + { + if (ModPlug_LoadModPlugFile (namebuffer, sfx)) + return true; + } } // LordHavoc: then try without the added sound/ as wav and ogg @@ -352,15 +359,25 @@ qboolean S_LoadSound (sfx_t *sfx, qboolean complain) Con_DPrintf("S_LoadSound: name \"%s\" is too long\n", sfx->name); return false; } - if (S_LoadWavFile (namebuffer, sfx)) - return true; + // request foo.wav: tries foo.wav, then foo.ogg + // request foo.ogg: tries foo.ogg only + // request foo.mod: tries foo.mod only if (len >= 4 && !strcasecmp (namebuffer + len - 4, ".wav")) + { + if (S_LoadWavFile (namebuffer, sfx)) + return true; memcpy (namebuffer + len - 3, "ogg", 4); + } if (len >= 4 && !strcasecmp (namebuffer + len - 4, ".ogg")) + { if (OGG_LoadVorbisFile (namebuffer, sfx)) return true; - if (ModPlug_LoadModPlugFile (namebuffer, sfx)) - return true; + } + else + { + if (ModPlug_LoadModPlugFile (namebuffer, sfx)) + return true; + } // Can't load the sound! sfx->flags |= SFXFLAG_FILEMISSING; -- 2.39.2