diff --git a/engine/client/snd_mem.c b/engine/client/snd_mem.c index a47be41..377236f 100644 --- a/engine/client/snd_mem.c +++ b/engine/client/snd_mem.c @@ -1092,6 +1092,18 @@ static void S_LoadSoundWorker (void *ctx, void *ctxdata, size_t forcedecode, siz } } + // Q2 player-specific sounds fall back to the male sounds in pak0.pak. + // The packed path is sound/player/male/, not players/male/. + if (!data && !strncmp(name, "players/", 8)) + { + const char *modelend = strchr(name + 8, '/'); + if (modelend && modelend[1]) + { + Q_snprintfz(namebuffer, sizeof(namebuffer), "sound/player/male/%s", modelend + 1); + data = FS_LoadMallocFile(namebuffer, &filesize); + } + } + if (data && !Ruleset_FileLoaded(name, data, filesize)) { BZ_Free(data);