This commit is contained in:
Christoph Oelckers 2015-04-04 10:30:37 +02:00
commit 747e160c96
17 changed files with 1506 additions and 1340 deletions

View file

@ -253,7 +253,7 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize)
//==========================================================================
//
// Lool for IWAD definition lump
// Look for IWAD definition lump
//
//==========================================================================
@ -302,11 +302,11 @@ int FIWadManager::ScanIWAD (const char *iwad)
FResourceLump *lump = iwadfile->GetLump(ii);
CheckLumpName(lump->Name);
if (lump->FullName != NULL)
if (lump->FullName.IsNotEmpty())
{
if (strnicmp(lump->FullName, "maps/", 5) == 0)
{
FString mapname(lump->FullName+5, strcspn(lump->FullName+5, "."));
FString mapname(&lump->FullName[5], strcspn(&lump->FullName[5], "."));
CheckLumpName(mapname);
}
}

View file

@ -1992,6 +1992,9 @@ static void D_DoomInit()
static void AddAutoloadFiles(const char *group, const char *autoname)
{
LumpFilterGroup = group;
LumpFilterIWAD = autoname;
if (!(gameinfo.flags & GI_SHAREWARE) && !Args->CheckParm("-noautoload"))
{
FString file;

View file

@ -69,3 +69,4 @@ int SinglePlayerClass[MAXPLAYERS];
bool ToggleFullscreen;
int BorderTopRefresh;
FString LumpFilterGroup, LumpFilterIWAD;

View file

@ -250,4 +250,7 @@ EXTERN_CVAR (Int, compatflags);
EXTERN_CVAR (Int, compatflags2);
extern int i_compatflags, i_compatflags2, ii_compatflags, ii_compatflags2, ib_compatflags;
// Filters from AddAutoloadFiles(). Used to filter files from archives.
extern FString LumpFilterGroup, LumpFilterIWAD;
#endif

View file

@ -179,7 +179,7 @@ struct F7ZLump : public FResourceLump
//==========================================================================
//
// Zip file
// 7-zip file
//
//==========================================================================
@ -190,8 +190,6 @@ class F7ZFile : public FResourceFile
F7ZLump *Lumps;
C7zArchive *Archive;
static int STACK_ARGS lumpcmp(const void * a, const void * b);
public:
F7ZFile(const char * filename, FileReader *filer);
bool Open(bool quiet);
@ -201,15 +199,6 @@ public:
int STACK_ARGS F7ZFile::lumpcmp(const void * a, const void * b)
{
F7ZLump * rec1 = (F7ZLump *)a;
F7ZLump * rec2 = (F7ZLump *)b;
return stricmp(rec1->FullName, rec2->FullName);
}
//==========================================================================
//
// 7Z file
@ -328,8 +317,7 @@ bool F7ZFile::Open(bool quiet)
if (!quiet) Printf(", %d lumps\n", NumLumps);
// Entries in archives are sorted alphabetically
qsort(&Lumps[0], NumLumps, sizeof(F7ZLump), lumpcmp);
PostProcessArchive(&Lumps[0], sizeof(F7ZLump));
return true;
}

View file

@ -86,8 +86,6 @@ class FDirectory : public FResourceFile
{
TArray<FDirectoryLump> Lumps;
static int STACK_ARGS lumpcmp(const void * a, const void * b);
int AddDirectory(const char *dirpath);
void AddEntry(const char *fullpath, int size);
@ -113,29 +111,18 @@ FDirectory::FDirectory(const char * directory)
#ifdef _WIN32
directory = _fullpath(NULL, directory, _MAX_PATH);
#else
// Todo for Linux: Resolve the path befire using it
// Todo for Linux: Resolve the path before using it
#endif
dirname = directory;
#ifdef _WIN32
free((void *)directory);
#endif
dirname.ReplaceChars('\\', '/');
if (dirname[dirname.Len()-1] != '/') dirname += '/';
Filename = copystring(dirname);
}
//==========================================================================
//
//
//
//==========================================================================
int STACK_ARGS FDirectory::lumpcmp(const void * a, const void * b)
{
FDirectoryLump * rec1 = (FDirectoryLump *)a;
FDirectoryLump * rec2 = (FDirectoryLump *)b;
return stricmp(rec1->FullName, rec2->FullName);
}
#ifdef _WIN32
//==========================================================================
//
@ -299,8 +286,7 @@ bool FDirectory::Open(bool quiet)
{
NumLumps = AddDirectory(Filename);
if (!quiet) Printf(", %d lumps\n", NumLumps);
// Entries in Zips are sorted alphabetically.
qsort(&Lumps[0], NumLumps, sizeof(FDirectoryLump), lumpcmp);
PostProcessArchive(&Lumps[0], sizeof(FDirectoryLump));
return true;
}

View file

@ -138,8 +138,6 @@ class FZipFile : public FResourceFile
{
FZipLump *Lumps;
static int STACK_ARGS lumpcmp(const void * a, const void * b);
public:
FZipFile(const char * filename, FileReader *file);
virtual ~FZipFile();
@ -148,16 +146,6 @@ public:
};
int STACK_ARGS FZipFile::lumpcmp(const void * a, const void * b)
{
FZipLump * rec1 = (FZipLump *)a;
FZipLump * rec2 = (FZipLump *)b;
return stricmp(rec1->FullName, rec2->FullName);
}
//==========================================================================
//
// Zip file
@ -274,8 +262,7 @@ bool FZipFile::Open(bool quiet)
if (!quiet) Printf(", %d lumps\n", NumLumps);
// Entries in Zips are sorted alphabetically.
qsort(Lumps, NumLumps, sizeof(FZipLump), lumpcmp);
PostProcessArchive(&Lumps[0], sizeof(FZipLump));
return true;
}

View file

@ -38,7 +38,8 @@
#include "cmdlib.h"
#include "w_wad.h"
#include "doomerrors.h"
#include "gi.h"
#include "doomstat.h"
//==========================================================================
@ -74,11 +75,6 @@ public:
FResourceLump::~FResourceLump()
{
if (FullName != NULL)
{
delete [] FullName;
FullName = NULL;
}
if (Cache != NULL && RefCount >= 0)
{
delete [] Cache;
@ -102,7 +98,7 @@ void FResourceLump::LumpNameSetup(const char *iname)
base = base.Left(base.LastIndexOf('.'));
uppercopy(Name, base);
Name[8] = 0;
FullName = copystring(iname);
FullName = iname;
// Map some directories to WAD namespaces.
// Note that some of these namespaces don't exist in WADS.
@ -321,6 +317,194 @@ FResourceFile::~FResourceFile()
delete Reader;
}
int STACK_ARGS lumpcmp(const void * a, const void * b)
{
FResourceLump * rec1 = (FResourceLump *)a;
FResourceLump * rec2 = (FResourceLump *)b;
return rec1->FullName.CompareNoCase(rec2->FullName);
}
//==========================================================================
//
// FResourceFile :: PostProcessArchive
//
// Sorts files by name.
// For files named "filter/<game>/*": Using the same filter rules as config
// autoloading, move them to the end and rename them without the "filter/"
// prefix. Filtered files that don't match are deleted.
//
//==========================================================================
void FResourceFile::PostProcessArchive(void *lumps, size_t lumpsize)
{
// Entries in archives are sorted alphabetically
qsort(lumps, NumLumps, lumpsize, lumpcmp);
// Filter out lumps using the same names as the Autoload.* sections
// in the ini file use. We reduce the maximum lump concidered after
// each one so that we don't risk refiltering already filtered lumps.
DWORD max = NumLumps;
max -= FilterLumps(gameinfo.ConfigName, lumps, lumpsize, max);
max -= FilterLumps(LumpFilterGroup, lumps, lumpsize, max);
max -= FilterLumps(LumpFilterIWAD, lumps, lumpsize, max);
JunkLeftoverFilters(lumps, lumpsize, max);
}
//==========================================================================
//
// FResourceFile :: FilterLumps
//
// Finds any lumps between [0,<max>) that match the pattern
// "filter/<filtername>/*" and moves them to the end of the lump list.
// Returns the number of lumps moved.
//
//==========================================================================
int FResourceFile::FilterLumps(FString filtername, void *lumps, size_t lumpsize, DWORD max)
{
FString filter;
DWORD start, end;
if (filtername.IsEmpty())
{
return 0;
}
filter << "filter/" << filtername << '/';
if (FindPrefixRange(filter, lumps, lumpsize, max, start, end))
{
void *from = (BYTE *)lumps + start * lumpsize;
// Remove filter prefix from every name
void *lump_p = from;
for (DWORD i = start; i < end; ++i, lump_p = (BYTE *)lump_p + lumpsize)
{
FResourceLump *lump = (FResourceLump *)lump_p;
assert(lump->FullName.CompareNoCase(filter, (int)filter.Len()) == 0);
lump->LumpNameSetup(&lump->FullName[filter.Len()]);
}
// Move filtered lumps to the end of the lump list.
size_t count = (end - start) * lumpsize;
void *to = (BYTE *)lumps + NumLumps * lumpsize - count;
assert (to >= from);
if (from != to)
{
// Copy filtered lumps to a temporary buffer.
BYTE *filteredlumps = new BYTE[count];
memcpy(filteredlumps, from, count);
// Shift lumps left to make room for the filtered ones at the end.
memmove(from, (BYTE *)from + count, (NumLumps - end) * lumpsize);
// Copy temporary buffer to newly freed space.
memcpy(to, filteredlumps, count);
delete[] filteredlumps;
}
}
return end - start;
}
//==========================================================================
//
// FResourceFile :: JunkLeftoverFilters
//
// Deletes any lumps beginning with "filter/" that were not matched.
//
//==========================================================================
void FResourceFile::JunkLeftoverFilters(void *lumps, size_t lumpsize, DWORD max)
{
DWORD start, end;
if (FindPrefixRange("filter/", lumps, lumpsize, max, start, end))
{
// Since the resource lumps may contain non-POD data besides the
// full name, we "delete" them by erasing their names so they
// can't be found.
void *stop = (BYTE *)lumps + end * lumpsize;
for (void *p = (BYTE *)lumps + start * lumpsize; p < stop; p = (BYTE *)p + lumpsize)
{
FResourceLump *lump = (FResourceLump *)p;
lump->FullName = 0;
lump->Name[0] = '\0';
lump->Namespace = ns_invalid;
}
}
}
//==========================================================================
//
// FResourceFile :: FindPrefixRange
//
// Finds a range of lumps that start with the prefix string. <start> is left
// indicating the first matching one. <end> is left at one plus the last
// matching one.
//
//==========================================================================
bool FResourceFile::FindPrefixRange(FString filter, void *lumps, size_t lumpsize, DWORD maxlump, DWORD &start, DWORD &end)
{
DWORD min, max, mid, inside;
FResourceLump *lump;
int cmp;
// Pretend that our range starts at 1 instead of 0 so that we can avoid
// unsigned overflow if the range starts at the first lump.
lumps = (BYTE *)lumps - lumpsize;
// Binary search to find any match at all.
min = 1, max = maxlump;
while (min <= max)
{
mid = min + (max - min) / 2;
lump = (FResourceLump *)((BYTE *)lumps + mid * lumpsize);
cmp = lump->FullName.CompareNoCase(filter, (int)filter.Len());
if (cmp == 0)
break;
else if (cmp < 0)
min = mid + 1;
else
max = mid - 1;
}
if (max < min)
{ // matched nothing
return false;
}
// Binary search to find first match.
inside = mid;
min = 1, max = mid;
while (min <= max)
{
mid = min + (max - min) / 2;
lump = (FResourceLump *)((BYTE *)lumps + mid * lumpsize);
cmp = lump->FullName.CompareNoCase(filter, (int)filter.Len());
// Go left on matches and right on misses.
if (cmp == 0)
max = mid - 1;
else
min = mid + 1;
}
start = mid + (cmp != 0) - 1;
// Binary search to find last match.
min = inside, max = maxlump;
while (min <= max)
{
mid = min + (max - min) / 2;
lump = (FResourceLump *)((BYTE *)lumps + mid * lumpsize);
cmp = lump->FullName.CompareNoCase(filter, (int)filter.Len());
// Go right on matches and left on misses.
if (cmp == 0)
min = mid + 1;
else
max = mid - 1;
}
end = mid - (cmp != 0);
return true;
}
//==========================================================================
//

View file

@ -13,7 +13,7 @@ struct FResourceLump
friend class FResourceFile;
int LumpSize;
char * FullName; // only valid for files loaded from a .zip file
FString FullName; // only valid for files loaded from a non-wad archive
union
{
char Name[9];
@ -30,7 +30,6 @@ struct FResourceLump
FResourceLump()
{
FullName = NULL;
Cache = NULL;
Owner = NULL;
Flags = 0;
@ -66,9 +65,16 @@ protected:
FResourceFile(const char *filename, FileReader *r);
// for archives that can contain directories
void PostProcessArchive(void *lumps, size_t lumpsize);
private:
DWORD FirstLump;
int FilterLumps(FString filtername, void *lumps, size_t lumpsize, DWORD max);
bool FindPrefixRange(FString filter, void *lumps, size_t lumpsize, DWORD max, DWORD &start, DWORD &end);
void JunkLeftoverFilters(void *lumps, size_t lumpsize, DWORD max);
public:
static FResourceFile *OpenResourceFile(const char *filename, FileReader *file, bool quiet = false);
static FResourceFile *OpenDirectory(const char *filename, bool quiet = false);

View file

@ -290,14 +290,9 @@ void FWadCollection::AddFile (const char *filename, FileReader *wadinfo)
FResourceLump *lump = resfile->GetLump(i);
if (lump->Flags & LUMPF_EMBEDDED)
{
char path[256];
mysnprintf(path, countof(path), "%s:", filename);
char *wadstr = path + strlen(path);
FString path;
path.Format("%s:%s", filename, lump->FullName.GetChars());
FileReader *embedded = lump->NewReader();
strcpy(wadstr, lump->FullName);
AddFile(path, embedded);
}
}
@ -345,7 +340,9 @@ void FWadCollection::AddFile (const char *filename, FileReader *wadinfo)
sprintf(cksumout + (j * 2), "%02X", cksum[j]);
}
fprintf(hashfile, "file: %s, lump: %s, hash: %s, size: %d\n", filename, lump->FullName ? lump->FullName : lump->Name, cksumout, lump->LumpSize);
fprintf(hashfile, "file: %s, lump: %s, hash: %s, size: %d\n", filename,
lump->FullName.IsNotEmpty() ? lump->FullName.GetChars() : lump->Name,
cksumout, lump->LumpSize);
delete reader;
}
@ -737,7 +734,7 @@ void FWadCollection::InitHashChains (void)
FirstLumpIndex[j] = i;
// Do the same for the full paths
if (LumpInfo[i].lump->FullName!=NULL)
if (LumpInfo[i].lump->FullName.IsNotEmpty())
{
j = MakeKey(LumpInfo[i].lump->FullName) % NumLumps;
NextLumpIndex_FullName[i] = FirstLumpIndex_FullName[j];
@ -1088,7 +1085,7 @@ const char *FWadCollection::GetLumpFullName (int lump) const
{
if ((size_t)lump >= NumLumps)
return NULL;
else if (LumpInfo[lump].lump->FullName != NULL)
else if (LumpInfo[lump].lump->FullName.IsNotEmpty())
return LumpInfo[lump].lump->FullName;
else
return LumpInfo[lump].lump->Name;
@ -1574,3 +1571,33 @@ static void PrintLastError ()
Printf (TEXTCOLOR_RED " %s\n", strerror(errno));
}
#endif
#ifdef _DEBUG
//==========================================================================
//
// CCMD LumpNum
//
//==========================================================================
CCMD(lumpnum)
{
for (int i = 1; i < argv.argc(); ++i)
{
Printf("%s: %d\n", argv[i], Wads.CheckNumForName(argv[i]));
}
}
//==========================================================================
//
// CCMD LumpNumFull
//
//==========================================================================
CCMD(lumpnumfull)
{
for (int i = 1; i < argv.argc(); ++i)
{
Printf("%s: %d\n", argv[i], Wads.CheckNumForFullName(argv[i]));
}
}
#endif

View file

@ -52,6 +52,8 @@ struct wadlump_t
// [RH] Namespaces from BOOM.
typedef enum {
ns_invalid = -1,
ns_global = 0,
ns_sprites,
ns_flats,

View file

@ -0,0 +1,451 @@
/****************************************************************************/
/* */
/* DOOM SOUNDS */
/* */
/****************************************************************************/
// BOOM has pitch shifting equivalent to a range of 4. I never got to hear
// Doom when it used pitch shifting, so I don't know if this is correct or not.
$pitchshiftrange 4
// This sound is never actually used. It's just defined here for
// compatibility with DeHackEd patches that reference dsskldth.
misc/unused dsskldth // Sounds just like dsoof
//===========================================================================
//
// Doom-specific player sounds
//
//===========================================================================
$playersound player male *death dspldeth
$playersound player male *xdeath dspdiehi
$playersound player male *gibbed dsslop
$playersound player male *pain100 dsplpain
$playersounddup player male *pain75 *pain100
$playersounddup player male *pain50 *pain100
$playersounddup player male *pain25 *pain100
$playersound player male *grunt dsoof
$playersounddup player male *land *grunt
$playersound player male *jump dsjump
$playersound player male *fist dspunch
$playersound player male *usefail dsnoway
$playersound player female *death dsfldeth
$playersound player female *xdeath dsfdiehi
$playersound player female *gibbed dsslop
$playersound player female *pain100 dsflpain
$playersounddup player female *pain75 *pain100
$playersounddup player female *pain50 *pain100
$playersounddup player female *pain25 *pain100
$playersound player female *grunt dsfoof
$playersounddup player female *land *grunt
$playersound player female *jump dsfjump
$playersound player female *fist dspunch
$playersound player female *usefail dsfnoway
$playersound player other *death dscldeth
$playersound player other *xdeath dscdiehi
$playersound player other *gibbed dsslop
$playersound player other *pain100 dsclpain
$playersounddup player other *pain75 *pain100
$playersounddup player other *pain50 *pain100
$playersounddup player other *pain25 *pain100
$playersound player other *grunt dscoof
$playersounddup player other *land *grunt
$playersound player other *jump dscjump
$playersound player other *fist dspunch
$playersound player other *usefail dscnoway
// Alternate names for some player sounds needed for ZDoom <= 1.22 compatibility
//
// If any sounds with these names are defined later, they will redefine
// the corresponding player sounds instead. Likewise, if they are played,
// they will play the corresponding player sound instead.
$playercompat player male *death player/male/death1
$playercompat player male *death player/male/death2
$playercompat player male *death player/male/death3
$playercompat player male *death player/male/death4
$playercompat player male *xdeath player/male/xdeath1
$playercompat player male *pain100 player/male/pain100_1
$playercompat player male *pain100 player/male/pain100_2
$playercompat player male *pain75 player/male/pain75_1
$playercompat player male *pain75 player/male/pain75_2
$playercompat player male *pain50 player/male/pain50_1
$playercompat player male *pain50 player/male/pain50_2
$playercompat player male *pain25 player/male/pain25_1
$playercompat player male *pain25 player/male/pain25_2
$playercompat player male *grunt player/male/grunt1
$playercompat player male *land player/male/land1
$playercompat player male *jump player/male/jump1
$playercompat player male *gibbed player/male/gibbed
$playercompat player male *fist player/male/fist
$playercompat player female *death player/female/death1
$playercompat player female *death player/female/death2
$playercompat player female *death player/female/death3
$playercompat player female *death player/female/death4
$playercompat player female *xdeath player/female/xdeath1
$playercompat player female *pain100 player/female/pain100_1
$playercompat player female *pain100 player/female/pain100_2
$playercompat player female *pain75 player/female/pain75_1
$playercompat player female *pain75 player/female/pain75_2
$playercompat player female *pain50 player/female/pain50_1
$playercompat player female *pain50 player/female/pain50_2
$playercompat player female *pain25 player/female/pain25_1
$playercompat player female *pain25 player/female/pain25_2
$playercompat player female *grunt player/female/grunt1
$playercompat player female *land player/female/land1
$playercompat player female *jump player/female/jump1
$playercompat player female *gibbed player/female/gibbed
$playercompat player female *fist player/female/fist
$playercompat player other *death player/cyborg/death1
$playercompat player other *death player/cyborg/death2
$playercompat player other *death player/cyborg/death3
$playercompat player other *death player/cyborg/death4
$playercompat player other *xdeath player/cyborg/xdeath1
$playercompat player other *pain100 player/cyborg/pain100_1
$playercompat player other *pain100 player/cyborg/pain100_2
$playercompat player other *pain75 player/cyborg/pain75_1
$playercompat player other *pain75 player/cyborg/pain75_2
$playercompat player other *pain50 player/cyborg/pain50_1
$playercompat player other *pain50 player/cyborg/pain50_2
$playercompat player other *pain25 player/cyborg/pain25_1
$playercompat player other *pain25 player/cyborg/pain25_2
$playercompat player other *grunt player/cyborg/grunt1
$playercompat player other *land player/cyborg/land1
$playercompat player other *jump player/cyborg/jump1
$playercompat player other *gibbed player/cyborg/gibbed
$playercompat player other *fist player/cyborg/fist
//
// Weapons
//
$pitchshiftrange 3
weapons/sawup dssawup
weapons/sawidle dssawidl
weapons/sawfull dssawful
weapons/sawhit dssawhit
$pitchshiftrange 4
weapons/pistol dspistol
weapons/shotgf dsshotgn
weapons/shotgr dssgcock
weapons/sshotf dsdshtgn
weapons/sshoto dsdbopn
weapons/sshotc dsdbcls
weapons/sshotl dsdbload
weapons/chngun dspistol
weapons/rocklx dsbarexp
weapons/rocklf dsrlaunc
weapons/plasmaf dsplasma
weapons/plasmax dsfirxpl
weapons/bfgf dsbfg
weapons/bfgx dsrxplod
weapons/railgf railgf1
weapons/grbnce dsbounce
weapons/grenlx dsgrnexp
weapons/grenlf dsglaunc
// Problem: weapons/rocklx needs to be unlimited but
// is also used for the MAP30 brain explosion.
// This alias remaps to the original but has its own limit
// attached so that it doesn't become too loud.
$alias misc/brainexplode weapons/rocklx
$limit misc/brainexplode 4
$limit weapons/plasmaf 0
$limit weapons/chngun 0
$limit weapons/rocklf 0 // because normal running is almost as fast as a rocket
$limit weapons/rocklx 0 // and the cyberdemon shoots 3 at once
//===========================================================================
//
// MONSTER SOUNDS
//
//===========================================================================
misc/gibbed dsslop
// Zombie man
$random grunt/sight { grunt/sight1 grunt/sight2 grunt/sight3 }
$random grunt/death { grunt/death1 grunt/death2 grunt/death3 }
grunt/sight1 dsposit1
grunt/sight2 dsposit2
grunt/sight3 dsposit3
grunt/active dsposact
grunt/pain dspopain
grunt/death1 dspodth1
grunt/death2 dspodth2
grunt/death3 dspodth3
grunt/attack dspistol
// Shotgun guy
$random shotguy/sight { shotguy/sight1 shotguy/sight2 shotguy/sight3 }
$random shotguy/death { shotguy/death1 shotguy/death2 shotguy/death3 }
shotguy/sight1 dsposit1
shotguy/sight2 dsposit2
shotguy/sight3 dsposit3
shotguy/active dsposact
shotguy/pain dspopain
shotguy/death1 dspodth1
shotguy/death2 dspodth2
shotguy/death3 dspodth3
shotguy/attack dsshotgn
// Archvile
vile/sight dsvilsit
vile/active dsvilact
vile/pain dsvipain
vile/death dsvildth
vile/raise dsslop
vile/start dsvilatk
vile/stop dsbarexp
vile/firestrt dsflamst
vile/firecrkl dsflame
// Revenant
skeleton/sight dsskesit
skeleton/active dsskeact
skeleton/pain dspopain
skeleton/melee dsskepch
skeleton/swing dsskeswg
skeleton/death dsskedth
skeleton/attack dsskeatk
skeleton/tracex dsbarexp
// Fatso
fatso/sight dsmansit
fatso/active dsposact
fatso/pain dsmnpain
fatso/raiseguns dsmanatk
fatso/death dsmandth
fatso/attack dsfirsht
fatso/shotx dsfirxpl
// Chainguy
$random chainguy/sight { chainguy/sight1 chainguy/sight2 chainguy/sight3 }
$random chainguy/death { chainguy/death1 chainguy/death2 chainguy/death3 }
chainguy/sight1 dsposit1
chainguy/sight2 dsposit2
chainguy/sight3 dsposit3
chainguy/active dsposact
chainguy/pain dspopain
chainguy/death1 dspodth1
chainguy/death2 dspodth2
chainguy/death3 dspodth3
chainguy/attack dsshotgn
$limit chainguy/attack 0
// Imp
$random imp/sight { imp/sight1 imp/sight2 }
$random imp/death { imp/death1 imp/death2 }
imp/sight1 dsbgsit1
imp/sight2 dsbgsit2
imp/active dsbgact
imp/pain dspopain
imp/melee dsclaw
imp/death1 dsbgdth1
imp/death2 dsbgdth2
imp/attack dsfirsht
imp/shotx dsfirxpl
$limit imp/active 6
// Demon
demon/sight dssgtsit
demon/active dsdmact
demon/pain dsdmpain
demon/melee dssgtatk
demon/death dssgtdth
$limit demon/melee 4
// Spectre
spectre/sight dssgtsit
spectre/active dsdmact
spectre/pain dsdmpain
spectre/melee dssgtatk
spectre/death dssgtdth
// Cacodemon
caco/sight dscacsit
caco/active dsdmact
caco/pain dsdmpain
caco/death dscacdth
caco/attack dsfirsht
caco/shotx dsfirxpl
// Baron of Hell
baron/sight dsbrssit
baron/active dsdmact
baron/pain dsdmpain
baron/melee dsclaw
baron/death dsbrsdth
baron/attack dsfirsht
baron/shotx dsfirxpl
// Hell Knight
knight/sight dskntsit
knight/active dsdmact
knight/pain dsdmpain
knight/death dskntdth
// Lost Soul
skull/active dsdmact
skull/pain dsdmpain
skull/melee dssklatk
skull/death dsfirxpl
// Spider Mastermind
spider/sight dsspisit
spider/active dsdmact
spider/pain dsdmpain
spider/attack dsshotgn
spider/death dsspidth
spider/walk dsmetal
// Arachnotron
baby/sight dsbspsit
baby/active dsbspact
baby/pain dsdmpain
baby/death dsbspdth
baby/walk dsbspwlk
baby/attack dsplasma
baby/shotx dsfirxpl
$limit baby/attack 0
// Cyber Demon
cyber/sight dscybsit
cyber/active dsdmact
cyber/pain dsdmpain
cyber/death dscybdth
cyber/hoof dshoof
// Pain Elemental
pain/sight dspesit
pain/active dsdmact
pain/pain dspepain
pain/death dspedth
// Wolfenstein SS
wolfss/sight dssssit
wolfss/active dsposact
wolfss/pain dspopain
wolfss/death dsssdth
wolfss/attack dsshotgn
// Commander Keen
keen/pain dskeenpn
keen/death dskeendt
// Boss Brain
brain/sight dsbossit
brain/pain dsbospn
brain/death dsbosdth
brain/spit dsbospit
brain/cube dsboscub
brain/cubeboom dsfirxpl
$alias brain/spawn misc/teleport
//============================================================================
//
// WORLD SOUNDS
//
//===========================================================================
world/barrelx dsbarexp
world/drip dsempty
world/watersplash dsempty
world/sludgegloop dsempty
world/lavasizzle dsempty
//
//
// Platform Sounds
//
plats/pt1_strt dspstart
plats/pt1_stop dspstop
plats/pt1_mid dsstnmov
//
// Door Sounds
//
doors/dr1_open dsdoropn
doors/dr1_clos dsdorcls
doors/dr2_open dsbdopn
doors/dr2_clos dsbdcls
//===========================================================================
//
// MISCELLANEOUS SOUNDS
//
//===========================================================================
misc/secret dssecret
misc/w_pkup dswpnup // Pickup weapon
misc/p_pkup dsgetpow // Pickup powerup
misc/i_pkup dsitemup // Pickup item
misc/k_pkup dsitemup // Pickup key
misc/spawn dsitmbk // Item respawn
misc/chat dsradio // Doom 2 chat sound
misc/chat2 dstink // Chat sound for everything else
$limit misc/i_pkup 1
$limit misc/k_pkup 1
$limit misc/w_pkup 1
$limit misc/p_pkup 1
$pitchshift misc/i_pkup 0
$pitchshift misc/k_pkup 0
$pitchshift misc/chat2 0
switches/normbutn dsswtchn
switches/exitbutn dsswtchx
misc/teleport dstelept
menu/activate dsswtchn // Activate a new menu
menu/backup dsswtchn // Backup to previous menu
menu/prompt dsswtchn // Activate a prompt "menu"
menu/cursor dspstop // Move cursor up/down
menu/change dsstnmov // Select new value for option
menu/invalid dsoof // Menu not available
menu/dismiss dsswtchx // Dismiss a prompt message
menu/choose dspistol // Choose a menu item
menu/clear dsswtchx // Close top menu
$random menu/quit1 { player/male/death1 demon/pain grunt/pain misc/gibbed misc/teleport grunt/sight1 grunt/sight3 demon/melee }
$random menu/quit2 { vile/active misc/p_pkup brain/cube misc/gibbed skeleton/swing knight/death baby/active demon/melee }
$alias intermission/tick weapons/pistol
$alias intermission/cooptotal *death
$alias intermission/nextstage weapons/rocklx
$alias intermission/paststats weapons/shotgr
$alias intermission/pastcoopstats weapons/shotgr
$alias intermission/pastdmstats *gibbed

View file

@ -0,0 +1,291 @@
/****************************************************************************/
/* */
/* HERETIC SOUNDS */
/* */
/****************************************************************************/
$rolloff * custom 0 1600
$pitchshiftrange 2
$playersound player male *wimpydeath plrwdth
$playersound player male *death plrdth
$playersound player male *crazydeath plrcdth
$playersound player male *gibbed gibdth
$playersound player male *pain100 plrpai
$playersounddup player male *pain75 *pain100
$playersounddup player male *pain50 *pain100
$playersounddup player male *pain25 *pain100
$playersound player male *weaponlaugh wpnup
$playersounddup player male *evillaugh *weaponlaugh
$playersound player male *grunt plroof
$playersounddup player male *usefail *grunt
$playersounddup player male *land *grunt
$playersound player male *jump plrjmp
$playersound player male *burndeath hedat1
$playeralias chicken male *usefail chicken/peck
$PlayerAlias Chicken Male *Grunt chicken/pain
$PlayerAlias Chicken Male *Land chicken/pain
$PlayerAlias Chicken Male *Jump chicken/active
$PlayerAlias Chicken Male *EvilLaugh chicken/active
chicken/sight chicpai
chicken/pain chicpai
chicken/death chicdth
chicken/attack chicatk
misc/burn hedat1
weapons/staffhit stfhit
weapons/staffpowerhit stfpow
weapons/staffcrackle stfcrk
weapons/wandhit gldhit
weapons/bowshoot bowsht
weapons/bowhit hrnhit
weapons/gauntletsactivate gntact
weapons/gauntletsuse gntuse
weapons/gauntletson gntful
weapons/gauntletshit gnthit
weapons/gauntletspowhit gntpow
weapons/maceshoot lobsht
weapons/macebounce bounce
weapons/macehit lobhit
weapons/macestop pstop
weapons/maceexplode phohit
weapons/blasterhit blshit
weapons/blasterpowhit hrnhit
weapons/blastershoot blssht
weapons/hornrodshoot hrnsht
weapons/hornrodhit hrnhit
weapons/hornrodpowshoot hrnpow
weapons/hornrodpowhit ramphit
weapons/phoenixshoot phosht
weapons/phoenixhit phohit
weapons/phoenixpowshoot phopow
$limit weapons/gauntletson 0
$limit weapons/gauntletshit 0
$limit weapons/gauntletspowhit 0
$limit weapons/gauntletsactivate 0
$limit weapons/gauntletsuse 0
$limit weapons/maceexplode 0
$limit weapons/phoenixhit 0
$limit weapons/phoenixpowshoot 1
// [RH] Heretic didn't have these limitless, but they can sound bad if they're not
$limit weapons/bowhit 0
$limit weapons/hornrodshoot 0
$limit weapons/hornrodhit 0
$limit weapons/maceshoot 0
himp/sight impsit
himp/attack impat1
himp/pain imppai
himp/death impdth
himp/active impsit
himp/leaderattack impat2
misc/invuse artiuse
$limit misc/invuse 1
world/podexplode podexp
world/podgrow newpod
world/wind wind
world/waterfall waterfl
$limit world/podexplode 0
$limit world/podgrow 0
$limit world/wind 1
misc/i_pkup itemup
misc/k_pkup keyup
misc/p_pkup artiup
$alias misc/w_pkup *weaponlaugh
misc/rain ramrain
misc/spawn respawn
$limit misc/spawn 1
//
// Minotaur sounds
//
minotaur/sight minsit
minotaur/melee stfpow
minotaur/attack1 minat1
minotaur/attack2 minat2
minotaur/attack3 minat3
minotaur/pain minpai
minotaur/death mindth
minotaur/active minact
minotaur/fx2hit phohit
minotaur/fx3hit phohit
//
// Wizard sounds
//
wizard/sight wizsit
wizard/attack wizatk
wizard/death wizdth
wizard/pain wizpai
wizard/active1 wizact
$random wizard/active { wizard/sight wizard/active1 }
//
// Switch sounds
//
switches/normbutn switch
$alias switches/exitbutn switches/normbutn // Heretic has no special exit button sound
//
//
// Platform Sounds
//
plats/pt1_strt pstart
plats/pt1_stop pstop
plats/pt1_mid dormov
//
// Door Sounds
//
doors/dr1_open doropn
doors/dr1_clos dorcls
doors/dr2_open doropn
doors/dr2_clos dorcls
//
// Ambient sounds
//
world/amb1 amb1
world/amb2 amb2
world/amb3 amb3
world/amb4 amb4
world/amb5 amb5
world/amb6 amb6
world/amb7 amb7
world/amb8 amb8
world/amb9 amb9
world/amb10 amb10
world/amb11 amb11
world/amb12 bstsit
$limit world/amb1 1
$limit world/amb2 1
$limit world/amb3 1
$limit world/amb4 1
$limit world/amb5 1
$limit world/amb6 1
$limit world/amb7 1
$limit world/amb8 1
$limit world/amb9 1
$limit world/amb10 1
$limit world/amb11 0
misc/chat chat
misc/teleport telept
misc/ripslop ripslop
$limit misc/chat 1
world/drip gloop
world/watersplash gloop
world/lavasizzle burn
world/sludgegloop dsempty
mummy/sight mumsit
mummy/attack1 mumat1
mummy/attack2 mumat2
mummy/pain mumpai
mummy/death mumdth
mummy/active mumsit
mummy/head mumhed
beast/sight bstsit
beast/attack bstatk
beast/pain bstpai
beast/death bstdth
beast/active bstact
snake/attack snkatk
snake/sight snksit
snake/pain snkpai
snake/death snkdth
snake/active snkact
clink/sight clksit
clink/attack clkatk
clink/pain clkpai
clink/death clkdth
clink/active clkact
hknight/sight kgtsit
hknight/attack kgtatk
hknight/melee kgtat2
hknight/pain kgtpai
hknight/death kgtdth
hknight/active kgtsit
hknight/hit hrnhit
hknight/axewhoosh kgtatk
misc/timebomb phohit
world/volcano/blast lobhit
world/volcano/shoot bstatk
ironlich/sight hedsit
ironlich/attack1 hedat1
ironlich/attack2 hedat2
ironlich/attack3 hedat3
ironlich/pain hedpai
ironlich/death heddth
ironlich/active hedact
dsparilserpent/sight bstsit
dsparilserpent/attack bstatk
dsparilserpent/pain sbtpai
dsparilserpent/death sbtdth
dsparilserpent/active sbtact
dsparil/sight sorsit
dsparil/attack soratk
dsparil/pain sorpai
dsparil/active soract
dsparil/rise sorrise
dsparil/zap sorzap
dsparil/scream sordsph
dsparil/explode sordexp
dsparil/bones sordbon
chicken/active chicact
chicken/attack chicatk
chicken/pain chicpai
chicken/death chicdth
chicken/peck1 chicpk1
chicken/peck2 chicpk2
chicken/peck3 chicpk3
$random chicken/peck { chicken/peck1 chicken/peck2 chicken/peck3 }
menu/activate dorcls
menu/backup switch
menu/prompt chat
menu/choose dorcls
menu/cursor switch
menu/change keyup
menu/invalid plroof
menu/dismiss dorcls
menu/clear dorcls
misc/secret dssecret
$alias intermission/cooptotal *death
$alias intermission/nextstage doors/dr1_clos
$alias intermission/paststats plats/pt1_stop
$alias intermission/pastcoopstats plats/pt1_stop
$alias intermission/pastdmstats *gibbed

View file

@ -0,0 +1,190 @@
/****************************************************************************/
/* */
/* HEXEN SOUNDS */
/* */
/****************************************************************************/
$rolloff * custom 0 2025
$pitchshiftrange 3
$random PlayerFighterExtremeDeathPicker { PlayerFighterExtreme1Death
PlayerFighterExtreme2Death
PlayerFighterExtreme3Death }
$playeralias fighter male *death PlayerFighterNormalDeath
$playeralias fighter male *crazydeath PlayerFighterCrazyDeath
$playeralias fighter male *burndeath PlayerFighterBurnDeath
$playeralias fighter male *xdeath PlayerFighterExtremeDeathPicker
$playeralias fighter male *pain100 PlayerFighterPain
$playersounddup fighter male *pain75 *pain100
$playersounddup fighter male *pain50 *pain100
$playersounddup fighter male *pain25 *pain100
$playeralias fighter male *grunt PlayerFighterGrunt
$playeralias fighter male *land PlayerLand
$playeralias fighter male *poison PlayerPoisonCough
$playeralias fighter male *falling PlayerFighterFallingScream
$playeralias fighter male *splat PlayerFallingSplat
$playeralias fighter male *usefail PlayerFighterFailedUse
$playeralias fighter male *puzzfail PuzzleFailFighter
$playersound fighter male *jump fgtjump
$playeralias fighter male *fistgrunt FighterGrunt
$random PlayerClericExtremeDeathPicker { PlayerClericExtreme1Death
PlayerClericExtreme2Death
PlayerClericExtreme3Death }
$playeralias cleric male *death PlayerClericNormalDeath
$playeralias cleric male *crazydeath PlayerClericCrazyDeath
$playeralias cleric male *burndeath PlayerClericBurnDeath
$playeralias cleric male *xdeath PlayerClericExtremeDeathPicker
$playeralias cleric male *pain100 PlayerClericPain
$playersounddup cleric male *pain75 *pain100
$playersounddup cleric male *pain50 *pain100
$playersounddup cleric male *pain25 *pain100
$playeralias cleric male *grunt PlayerClericGrunt
$playeralias cleric male *land PlayerLand
$playeralias cleric male *poison PlayerPoisonCough
$playeralias cleric male *falling PlayerClericFallingScream
$playeralias cleric male *splat PlayerFallingSplat
$playeralias cleric male *usefail PlayerClericFailedUse
$playeralias cleric male *puzzfail PuzzleFailCleric
$playersound cleric male *jump plrjump
$random PlayerMageExtremeDeathPicker { PlayerMageExtreme1Death
PlayerMageExtreme2Death
PlayerMageExtreme3Death }
$playeralias mage male *death PlayerMageNormalDeath
$playeralias mage male *crazydeath PlayerMageCrazyDeath
$playeralias mage male *burndeath PlayerMageBurnDeath
$playeralias mage male *xdeath PlayerMageExtremeDeathPicker
$playeralias mage male *pain100 PlayerMagePain
$playersounddup mage male *pain75 *pain100
$playersounddup mage male *pain50 *pain100
$playersounddup mage male *pain25 *pain100
$playeralias mage male *grunt PlayerMageGrunt
$playeralias mage male *land PlayerLand
$playeralias mage male *poison PlayerPoisonCough
$playeralias mage male *falling PlayerMageFallingScream
$playeralias mage male *splat PlayerFallingSplat
$playeralias mage male *usefail PlayerMageFailedUse
$playeralias mage male *puzzfail PuzzleFailMage
$playersound mage male *jump mgjump
$playeralias pig male *usefail PigActive1
$playeralias pig male *puzzfail PigActive2
$playeralias pig male *grunt PigActive1
$playeralias pig male *land PigActive2
$playeralias pig male *jump PigActive1
$playeralias pig male *poison PigActive2
$playeralias pig male *falling PigPain
$playeralias pig male *splat PigDeath
$alias world/drip Ambient10
$alias world/watersplash WaterSplash
$alias world/lavasizzle LavaSizzle
$alias world/sludgegloop SludgeGloop
$alias world/wind Wind
$alias world/quake Earthquake
$alias world/thunder ThunderCrash
$alias misc/w_pkup PickupWeapon
$alias misc/p_pkup PickupArtifact
$alias misc/k_pkup PickupKey
$alias misc/i_pkup PickupItem
$alias misc/spawn Respawn
$alias misc/teleport Teleport
$alias misc/keytry DoorLocked
$alias misc/invuse UseArtifact
$alias misc/freeze FreezeDeath
$alias misc/icebreak FreezeShatter
$alias misc/chat Chat
$alias misc/chat2 Chat
$alias misc/fallingsplat PlayerFallingSplat
$alias minotaur/sight MaulatorSight
$alias minotaur/pain MaulatorPain
$alias minotaur/death MaulatorDeath
$alias minotaur/active MaulatorActive
$alias minotaur/attack1 MaulatorHamHit
$alias minotaur/attack2 MaulatorHamSwing
$random BishopActiveSounds { BishopActive BishopSight }
$random PigActive { PigActive1 PigActive2 }
$limit PlayerFighterFailedUse 1
$limit PlayerClericFailedUse 1
$limit PlayerMageFailedUse 1
$limit SorcererBallWoosh 4
$limit SorcererBallBounce 3
$limit SorcererBallExplode 3
$limit SorcererBallPop 3
$limit SorcererBigBallExplode 3
$limit Ambient1 1
$limit Ambient2 1
$limit Ambient3 1
$limit Ambient4 1
$limit Ambient5 1
$limit Ambient6 1
$limit Ambient7 1
$limit Ambient8 1
$limit Ambient9 1
$limit Ambient10 1
$limit Ambient11 1
$limit Ambient12 1
$limit Ambient13 1
$limit Ambient14 1
$limit Ambient15 1
$limit MysticIncant 4
$pitchshift PlayerMageNormalDeath 0
$pitchshift PlayerMageCrazyDeath 0
$pitchshift PlayerMageExtreme1Death 0
$pitchshift PlayerMageExtreme2Death 0
$pitchshift PlayerMageExtreme3Death 0
$pitchshift PlayerMageBurnDeath 0
$pitchshift PlayerMagePain 0
$pitchshift PlayerMageGrunt 0
$pitchshift PlayerMageFallingScream 0
$pitchshift PlayerMageFailedUse 0
$pitchshift PickupWeapon 0
$pitchshift PickupPiece 0
$pitchshift WeaponBuild 0
$pitchshift BellRing 0
$alias menu/activate DoorCloseLight
$alias menu/backup PickupKey
$alias menu/prompt Chat
$alias menu/cursor FighterHammerHitWall
$alias menu/change PickupKey
$alias menu/invalid DoorCloseMetal // Hexen does not use this, but I do
$alias menu/dismiss PlatformStop
$alias menu/choose DoorCloseLight
$alias menu/clear PlatformStop
// Hexen does not have ripslop sound like Heretic
misc/ripslop dsempty
misc/netnotch blddrp1
$alias intermission/cooptotal *death
$alias intermission/nextstage DoorCloseLight
$alias intermission/paststats PlatformStop
$alias intermission/pastcoopstats PlatformStop
$alias intermission/pastdmstats *gibbed
$limit DoorCloseLight 4
$limit PuppyBeat 0
$limit CeantaurPain 0
$limit BishopPain 0
$limit SerpentPain 0
$limit DemonPain 0
$limit WraithPain 0
$limit MaulatorPain 0
$limit EttinPain 0
$limit FireDemonPain 0
$limit SorcererPain 0
$limit DragonPain 0

View file

@ -0,0 +1,314 @@
/****************************************************************************/
/* */
/* STRIFE SOUNDS */
/* */
/****************************************************************************/
$rolloff * 200 1200
$playersound player male *death dspldeth
$playersound player male *xdeath dspdiehi
$playersound player male *gibbed dsslop
$playersound player male *pain100 dsplpain
$playersounddup player male *pain75 *pain100
$playersounddup player male *pain50 *pain100
$playersounddup player male *pain25 *pain100
$playersound player male *grunt dsoof
$playersounddup player male *land *grunt
$playersound player male *jump dsjump
$playersound player male *fist dspunch
$playersound player male *usefail dsnoway
$playersound player female *death dsfldeth
$playersound player female *xdeath dsfdiehi
$playersound player female *gibbed dsslop
$playersound player female *pain100 dsflpain
$playersounddup player female *pain75 *pain100
$playersounddup player female *pain50 *pain100
$playersounddup player female *pain25 *pain100
$playersound player female *grunt dsfoof
$playersounddup player female *land *grunt
$playersound player female *jump dsfjump
$playersound player female *fist dspunch
$playersound player female *usefail dsfnoway
$playersound player other *death dscldeth
$playersound player other *xdeath dscdiehi
$playersound player other *gibbed dsslop
$playersound player other *pain100 dsclpain
$playersounddup player other *pain75 *pain100
$playersounddup player other *pain50 *pain100
$playersounddup player other *pain25 *pain100
$playersound player other *grunt dscoof
$playersounddup player other *land *grunt
$playersound player other *jump dscjump
$playersound player other *fist dspunch
$playersound player other *usefail dscnoway
weapons/xbowshoot dsxbow
weapons/xbowhit dsfirxpl
weapons/assaultgun dsrifle
weapons/minimissile dsrlaunc
weapons/minimissilehit dsmislht
weapons/flamethrower dsflburn
weapons/flameidle dsflidl
weapons/mauler1 dspgrdat
weapons/mauler2charge dsproton
weapons/mauler2fire dsprotfl
weapons/mauler2hit dsexplod
weapons/hegrenadeshoot dsphoot
weapons/hegrenadebang dsexplod
weapons/phgrenadeshoot dsphoot
weapons/phgrenadebang dsexplod
weapons/sigil dssigil
weapons/sigilhit dssglhit
weapons/sigilcharge dssiglup
monsters/rifle dsrifle
switches/normbutn dsswtchn
$alias switches/exitbutn switches/normbutn
switches/chain dspulchn
switches/knob dsswknob
switches/keycard dskeycrd
switches/stone dsswston
switches/bolt dsswbolt
switches/boltback dsempty
switches/scanner dsswscan
switches/fool dsdifool
switches/valve dsvalve
switches/sizzle dsfirxpl
world/glassbreak dsbglass
world/barrelx dsbarexp
world/smallfire dssmfire
world/largefire dslgfire
world/river dswriver
world/waterfall dswfall
world/waterdrip dswdrip
world/watersplash dswsplsh
$limit world/river 1
$limit world/waterfall 1
$limit world/waterdrip 1
world/drip dsempty // These four satisfy the Heretic/Hexen terrain definitions
world/sludgegloop dsempty
world/lavasizzle dsempty
world/lavasizzle dsempty
menu/activate dsswtchn // Activate a new menu
menu/backup dsswtchn // Backup to previous menu
menu/prompt dsswtchn // Activate a prompt "menu"
menu/cursor dspstop // Move cursor up/down
menu/change dsstnmov // Select new value for option
menu/invalid dsoof // Menu not available
menu/dismiss dsswish // Dismiss a prompt message
menu/choose dsrifl // Choose a menu item
menu/clear dsmtalht // Close top menu
misc/startupdone dspsdtha
misc/teleport dstelept
misc/swish dsswish
misc/meathit dsmeatht
misc/metalhit dsmtalht
misc/pcrush dspcrush
misc/gibbed dsslop
misc/explosion dsexplod
misc/reactor dsreactr
misc/missileinflight dsrflite
misc/static dsstatic
misc/chant dschant
misc/alarm dsalarm
misc/disruptordeath dsdsrptr
$singular misc/alarm
misc/secret dsyeah
misc/w_pkup dswpnup
misc/p_pkup dsyeah
misc/i_pkup dsitemup
misc/k_pkup dsitemup
misc/spawn dsitmbk
misc/chat dsradio
misc/invuse dsitemup
misc/mask dsmask
plats/pt1_strt dspstart
plats/pt1_stop dspstop
plats/pt1_mid dsstnmov
doors/dr2_open dsbdopn
doors/dr2_clos dsbdcls
doors/stone_open dsdrston
doors/stone_close dsdrston
doors/large_metal_open dsdrlmto
doors/large_metal_close dsdrlmtc
doors/small_metal_open dsdrsmto
doors/small_metal_close dsdrsmtc
doors/large_wood_open dsdrlwud
doors/large_wood_close dsdrlwud
doors/small_wood_open dsdrswud
doors/small_wood_close dsdrswud
doors/airlock_open dsairlck
doors/airlock_close dsairlck
doors/chain_open dsdrchno
doors/chain_close dsdrchnc
woodenbarrel/death dswbrldt
human/imonfire dsburnme
ambient/alien1 dsamaln1
ambient/alien2 dsamaln2
ambient/alien3 dsamaln3
ambient/alien4 dsamaln4
ambient/alien5 dsamaln5
ambient/alien6 dsamaln6
reaver/sight dsrevsee
reaver/pain dsreavpn
reaver/death dsrevdth
reaver/active dsrevact
reaver/attack dsreavat
reaver/blade dsrevbld
crusader/sight dsrb2see
crusader/pain dsrb2pn
crusader/death dsrb2dth
crusader/active dsrb2act
crusader/misl dsrlaunc
crusader/mislx dsmislht
bishop/sight dsrb2see
bishop/pain dsrb2pn
bishop/death dspgrdth
bishop/active dsrb2act
bishop/misl dsrlaunc
bishop/mislx dsmislht
sentinel/sight dssntsee
sentinel/death dssntdth
sentinel/active dssntact
sentinel/plasma dsplasma
$random peasant/pain { peasant/pain1 peasant/pain2 peasant/pain3 peasant/pain4 }
peasant/pain1 dspespna
peasant/pain2 dspespnb
peasant/pain3 dspespnc
peasant/pain4 dspespnd
//$random peasant/death { peasant/death1 peasant/death2 peasant/death3 }
$alias peasant/death peasant/death1
peasant/death1 dspsdtha
peasant/death2 dspsdthb
peasant/death3 dspsdthc
peasant/sight dsrebact
peasant/attack dsmeatht
peasant/active dsrebact
beggar/attack dsmeatht
$alias beggar/pain peasant/pain
$alias beggar/death peasant/death
rebel/sight dswpnup
$alias rebel/pain peasant/pain
rebel/death dsrebdth
rebel/active dsrebact
barkeep/pain dsambbar
barkeep/active dsambppl
$singular barkeep/pain
$singular barkeep/active
$alias smith/pain peasant/pain
$alias armorer/pain peasant/pain
$alias medic/pain peasant/pain
$alias zombie/death peasant/death
$alias becoming/death peasant/death
zombie/spawner dstelept
acolyte/sight dsagrsee
acolyte/pain dsagrdpn
acolyte/death dsagrdth
acolyte/rifle dsrifle
$random acolyte/active { acolyte/active1 acolyte/active2 acolyte/active3 acolyte/active4 }
acolyte/active1 dsagrac1
acolyte/active2 dsagrac2
acolyte/active3 dsagrac3
acolyte/active4 dsagrac4
macil/sight dsagrsee
$alias macil/pain peasant/pain
macil/active dsrebact
macil/slop dsslop
alienspectre/sight dsalnsee
alienspectre/blade dsrevbld
alienspectre/pain dsalnpn
alienspectre/death dsalndth
alienspectre/active dsalnact
turret/death dsmislht
ore/explode dsexplod
rat/sight dsratact
rat/death dsratact
rat/active dsratact
$singular rat/sight
loremaster/chain dschain
loremaster/swish dsswish
loremaster/sight dslorsee
loremaster/attack dsrevbld
loremaster/pain dslorpn
loremaster/death dsslop
loremaster/active dstend
stalker/sight dsspisit
stalker/attack dsspdatk
stalker/pain dsspdatk
stalker/death dsspidth
stalker/active dsspisit
stalker/walk dsspdwlk
templar/sight dspgrsee
templar/pain dspgrdpn
templar/death dspgrdth
templar/active dspgract
templar/shoot dspgrdat
inquisitor/sight dsinqsee
inquisitor/death dsinqdth
inquisitor/active dsinqact
inquisitor/walk dsinqact
inquisitor/jump dsinqjmp
inquisitor/attack dsphoot
inquisitor/atkexplode dsexplod
programmer/clank dsmtalht
programmer/attack dsrevbld // Unused?
programmer/pain dsprgpn
programmer/death dsrb2dth
programmer/active dsprogac
entity/sight dsmnalse
entity/melee dsrevbld
entity/pain dsalnpn
entity/death dsmnaldt
entity/active dsalnact
$alias intermission/tick weapons/assaultgun
$alias intermission/cooptotal *death
$alias intermission/nextstage misc/explosion
$alias intermission/paststats world/barrelx
$alias intermission/pastcoopstats world/barrelx
$alias intermission/pastdmstats *gibbed

File diff suppressed because it is too large Load diff

View file

@ -1942,6 +1942,10 @@
RelativePath=".\src\win32\fb_ddraw.cpp"
>
</File>
<File
RelativePath=".\src\g_doomedmap.cpp"
>
</File>
<File
RelativePath=".\src\win32\hardware.cpp"
>