diff --git a/docs/rh-log.txt b/docs/rh-log.txt
index 0b98788713..52c7ead59f 100644
--- a/docs/rh-log.txt
+++ b/docs/rh-log.txt
@@ -1,3 +1,12 @@
+April 29, 2006 (Changes by Graf Zahl)
+- ZDoom now loads zdoom.pk3 instead of zdoom.wad.
+- Fixed: StreamSong::SetVolume should check the m_stream pointer. This can
+ happen when a TimiditySong doesn't use FMOD and outputs the sound itself.
+- Fixed: 'use' sector actions were using the incorrect sector on several
+ occasions.
+- Added a wi_noautostartmap CVAR and a noautostartmap intermission option
+ that force the user to manually end the 'entering level' page.
+
April 23, 2006 (Changes by Graf Zahl)
- Added a clipmidtextures level flag which exposes the ML_CLIP_MIDTEX
feature globally per level. Also moved the setting of this flag for Strife
diff --git a/src/d_main.cpp b/src/d_main.cpp
index a35c9f7b97..503d091449 100644
--- a/src/d_main.cpp
+++ b/src/d_main.cpp
@@ -1921,14 +1921,14 @@ void D_DoomMain (void)
M_FindResponseFile ();
M_LoadDefaults (); // load before initing other systems
- // [RH] Make sure zdoom.wad is always loaded,
+ // [RH] Make sure zdoom.pk3 is always loaded,
// as it contains magic stuff we need.
- wad = BaseFileSearch ("zdoom.wad", NULL, true);
+ wad = BaseFileSearch ("zdoom.pk3", NULL, true);
if (wad)
D_AddFile (wad);
else
- I_FatalError ("Cannot find zdoom.wad");
+ I_FatalError ("Cannot find zdoom.pk3");
I_SetTitleString (IWADTypeNames[IdentifyVersion ()]);
GameConfig->DoGameSetup (GameNames[gameinfo.gametype]);
diff --git a/src/g_doom/a_doomweaps.cpp b/src/g_doom/a_doomweaps.cpp
index e0c80b26a6..3d3394aea8 100644
--- a/src/g_doom/a_doomweaps.cpp
+++ b/src/g_doom/a_doomweaps.cpp
@@ -11,6 +11,7 @@
#include "p_effect.h"
#include "gi.h"
#include "templates.h"
+#include "thingdef.h"
static FRandom pr_punch ("Punch");
static FRandom pr_saw ("Saw");
@@ -1337,7 +1338,6 @@ void A_FireBFG (AActor *actor)
player->userinfo.aimdist = storedaimdist;
}
-int EvalExpressionI (int id, AActor *self);
//
// A_BFGSpray
// Spawn a BFG explosion on every monster in view
diff --git a/src/p_map.cpp b/src/p_map.cpp
index 51d8bc3518..bced2ff87b 100644
--- a/src/p_map.cpp
+++ b/src/p_map.cpp
@@ -2243,7 +2243,7 @@ bool P_CheckSlopeWalk (AActor *actor, fixed_t &xmove, fixed_t &ymove)
{
// this additional check prevents sliding on sloped dropoffs
if (planezhere>actor->floorz+4*FRACUNIT)
- return false;
+ return false;
}
if (actor->z - planezhere > FRACUNIT)
@@ -3186,10 +3186,26 @@ blocked:
(in->d.line->special != 0 && (compatflags & COMPATF_USEBLOCKING)))
{
// [RH] Give sector a chance to intercept the use
- sector_t *sec = in->d.line->frontsector;
- if ((!sec->SecActTarget ||
- !sec->SecActTarget->TriggerAction (usething, SECSPAC_Use|SECSPAC_UseWall))
- && usething->player)
+
+ sector_t * sec;
+
+ sec = usething->Sector;
+
+ if (sec->SecActTarget && sec->SecActTarget->TriggerAction (usething, SECSPAC_Use))
+ {
+ return false;
+ }
+
+ sec = P_PointOnLineSide(usething->x, usething->y, in->d.line) == 0?
+ in->d.line->frontsector : in->d.line->backsector;
+
+ if (sec != NULL && sec->SecActTarget &&
+ sec->SecActTarget->TriggerAction (usething, SECSPAC_UseWall))
+ {
+ return false;
+ }
+
+ if (usething->player)
{
S_Sound (usething, CHAN_VOICE, "*usefail", 1, ATTN_IDLE);
}
@@ -3202,7 +3218,7 @@ blocked:
if (P_PointOnLineSide (usething->x, usething->y, in->d.line) == 1)
// [RH] continue traversal for two-sided lines
//return in->d.line->backsector != NULL; // don't use back side
- goto blocked; // do a proper check for back sides of triggers!
+ goto blocked; // do a proper check for back sides of triggers
P_ActivateLine (in->d.line, usething, 0, SPAC_USE);
diff --git a/src/p_setup.cpp b/src/p_setup.cpp
index 0706142618..a19a247053 100644
--- a/src/p_setup.cpp
+++ b/src/p_setup.cpp
@@ -1477,7 +1477,7 @@ void P_LoadLineDefs (int lump)
P_AdjustLine (ld);
P_SaveLineSpecial (ld);
- if (level.flags&LEVEL_CLIPMIDTEX) ld.flags|=ML_CLIP_MIDTEX;
+ if (level.flags&LEVEL_CLIPMIDTEX) ld->flags|=ML_CLIP_MIDTEX;
}
}
@@ -1548,7 +1548,7 @@ void P_LoadLineDefs2 (int lump)
P_AdjustLine (ld);
P_SaveLineSpecial (ld);
- if (level.flags&LEVEL_CLIPMIDTEX) ld.flags|=ML_CLIP_MIDTEX;
+ if (level.flags&LEVEL_CLIPMIDTEX) ld->flags|=ML_CLIP_MIDTEX;
}
}
diff --git a/src/sdl/i_main.cpp b/src/sdl/i_main.cpp
index fe346c65ec..a767c5df09 100644
--- a/src/sdl/i_main.cpp
+++ b/src/sdl/i_main.cpp
@@ -147,7 +147,7 @@ int main (int argc, char **argv)
}
atterm (SDL_Quit);
- SDL_WM_SetCaption ("ZDOOM " DOTVERSIONSTR " (" __DATE__ ")", NULL);
+ SDL_WM_SetCaption (GAMESIG " " DOTVERSIONSTR " (" __DATE__ ")", NULL);
try
{
diff --git a/src/sound/music_stream.cpp b/src/sound/music_stream.cpp
index 5ff42e8ce2..edbf8d58b3 100644
--- a/src/sound/music_stream.cpp
+++ b/src/sound/music_stream.cpp
@@ -2,7 +2,7 @@
void StreamSong::SetVolume (float volume)
{
- m_Stream->SetVolume (volume);
+ if (m_Stream!=NULL) m_Stream->SetVolume (volume);
}
void StreamSong::Play (bool looping)
diff --git a/src/wi_stuff.cpp b/src/wi_stuff.cpp
index 4630d0f4a6..6a09891da0 100644
--- a/src/wi_stuff.cpp
+++ b/src/wi_stuff.cpp
@@ -57,6 +57,7 @@ typedef enum
CVAR (Bool, wi_percents, true, CVAR_ARCHIVE)
CVAR (Bool, wi_showtotaltime, true, CVAR_ARCHIVE)
+CVAR (Bool, wi_noautostartmap, false, CVAR_ARCHIVE)
void WI_loadData ();
@@ -200,6 +201,7 @@ static int cnt_time;
static int cnt_total_time;
static int cnt_par;
static int cnt_pause;
+static bool noautostartmap;
//
// GRAPHICS
@@ -262,7 +264,9 @@ static const char *WI_Cmd[]={
"Animation",
"Pic",
-
+
+ "NoAutostartMap",
+
NULL
};
@@ -482,6 +486,10 @@ void WI_LoadBackground(bool isenterpic)
SC_MustGetString();
caseval=SC_MustMatchString(WI_Cmd);
+ case 14: // NoAutostartMap
+ noautostartmap=true;
+ break;
+
default:
switch (caseval)
{
@@ -1052,7 +1060,11 @@ void WI_updateNoState ()
{
WI_updateAnimatedBack();
- if (!--cnt)
+
+ if (!wi_noautostartmap && !noautostartmap) cnt--;
+ if (acceleratestage) cnt=0;
+
+ if (cnt==0)
{
WI_End();
G_WorldDone();
@@ -2070,6 +2082,7 @@ void WI_initVariables (wbstartstruct_t *wbstartstruct)
void WI_Start (wbstartstruct_t *wbstartstruct)
{
+ noautostartmap = false;
V_SetBlend (0,0,0,0);
WI_initVariables (wbstartstruct);
WI_loadData ();
diff --git a/src/win32/i_main.cpp b/src/win32/i_main.cpp
index f992964dc4..02be9cab1c 100644
--- a/src/win32/i_main.cpp
+++ b/src/win32/i_main.cpp
@@ -308,7 +308,7 @@ void DoMain (HINSTANCE hInstance)
/* create window */
Window = CreateWindow((LPCTSTR)WinClassName,
- (LPCTSTR) "ZDOOM " DOTVERSIONSTR " (" __DATE__ ")",
+ (LPCTSTR) GAMESIG " " DOTVERSIONSTR " (" __DATE__ ")",
WS_OVERLAPPEDWINDOW,
0/*CW_USEDEFAULT*/, 1/*CW_USEDEFAULT*/, width, height,
(HWND) NULL,
diff --git a/wadsrc/Makefile b/wadsrc/Makefile
index 2e4be401fb..f760361a5f 100644
--- a/wadsrc/Makefile
+++ b/wadsrc/Makefile
@@ -19,13 +19,13 @@ wadmake: zdoom.lst
$(MAKEWAD) -make wadmake zdoom.lst
clean:
- $(RM) wadmake zdoom.wad xlat/*.x dehsupp.lmp
+ $(RM) wadmake zdoom.pk3 xlat/*.x dehsupp.lmp
# This target is for Visual C++'s Rebuild All command
nrebuild: clean
$(MAKE) NOLOGO=$(NOLOGO) MAKEWAD=$(MAKEWAD) XLATCC=$(XLATCC) DEHSUPP=$(DEHSUPP)
- copy zdoom.wad ..\..
+ copy zdoom.pk3 ..\..
# Copy the wad to my testing area
andcopy: makethewad
- copy zdoom.wad ..\..
+ copy zdoom.pk3 ..\..
diff --git a/wadsrc/Makefile.mgw b/wadsrc/Makefile.mgw
index 4f64338bfb..00c5cf5e1e 100644
--- a/wadsrc/Makefile.mgw
+++ b/wadsrc/Makefile.mgw
@@ -10,7 +10,7 @@ wadmake: zdoom.lst $(MAKEWAD).exe $(XLATCC).exe $(DEHSUPP).exe
$(MAKEWAD) -make wadmake zdoom.lst
clean:
- del /q /f wadmake zdoom.wad xlat\*.x dehsupp.lmp 2>nul
+ del /q /f wadmake zdoom.pk3 xlat\*.x dehsupp.lmp 2>nul
../tools/makewad/makewad.exe:
$(MAKE) -C ../tools/makewad -f Makefile.mgw
diff --git a/wadsrc/in_htc1.txt b/wadsrc/in_htc1.txt
index 808e665907..1ca298d673 100644
--- a/wadsrc/in_htc1.txt
+++ b/wadsrc/in_htc1.txt
@@ -1,3 +1,4 @@
+NoAutostartMap
Background mape1
Splat in_x
Pointer in_yah
diff --git a/wadsrc/in_htc2.txt b/wadsrc/in_htc2.txt
index d44a91b654..548e68171e 100644
--- a/wadsrc/in_htc2.txt
+++ b/wadsrc/in_htc2.txt
@@ -1,3 +1,4 @@
+NoAutostartMap
Background mape2
Splat in_x
Pointer in_yah
diff --git a/wadsrc/in_htc3.txt b/wadsrc/in_htc3.txt
index 7e85977beb..3dd5597c18 100644
--- a/wadsrc/in_htc3.txt
+++ b/wadsrc/in_htc3.txt
@@ -1,3 +1,4 @@
+NoAutostartMap
Background mape3
Splat in_x
Pointer in_yah
diff --git a/wadsrc/wadsrc.vcproj b/wadsrc/wadsrc.vcproj
index 4a893f619b..ebca61755f 100644
--- a/wadsrc/wadsrc.vcproj
+++ b/wadsrc/wadsrc.vcproj
@@ -19,8 +19,8 @@
Name="VCNMakeTool"
BuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp NOLOGO=/nologo andcopy"
ReBuildCommandLine="nmake /nologo MAKEWAD=..\tools\makewad\makewad NOLOGO=/nologo XLATCC=..\tools\xlatcc\xlatcc DEHSUPP=..\tools\dehsupp\dehsupp nrebuild"
- CleanCommandLine="del wadmake zdoom.wad"
- Output="zdoom.wad"/>
+ CleanCommandLine="del wadmake zdoom.pk3"
+ Output="zdoom.pk3"/>
+ CleanCommandLine="del wadmake zdoom.pk3"
+ Output="zdoom.pk3"/>
diff --git a/wadsrc/zdoom.lst b/wadsrc/zdoom.lst
index 75972307bd..f297d19307 100644
--- a/wadsrc/zdoom.lst
+++ b/wadsrc/zdoom.lst
@@ -1,183 +1,178 @@
# The big list of all things zdoom.wad.
-@zdoom.wad
+@zdoom.pk3
-invgemr2 invgemr2.lmp
-invgemr1 invgemr1.lmp
-invgeml2 invgeml2.lmp
-invgeml1 invgeml1.lmp
-artibox artibox.png
-selectbo selectbo.png
-fiteface fiteface.lmp
-mageface mageface.lmp
-clerface clerface.lmp
-hamoback hamoback.png
+graphics/invgemr2.lmp invgemr2.lmp
+graphics/invgemr1.lmp invgemr1.lmp
+graphics/invgeml2.lmp invgeml2.lmp
+graphics/invgeml1.lmp invgeml1.lmp
+graphics/artibox.png artibox.png
+graphics/selectbo.png selectbo.png
+graphics/fiteface.lmp fiteface.lmp
+graphics/mageface.lmp mageface.lmp
+graphics/clerface.lmp clerface.lmp
+graphics/hamoback.png hamoback.png
======== # Decals
-decaldef decals/decaldef.txt
+decaldef.txt decals/decaldef.txt
--------
-blast1 decals/blast1.png
-cbalscr1 decals/cbalscr1.png
-cbalscr2 decals/cbalscr2.png
-bal7scr1 decals/bal7scr1.png
-bal7scr2 decals/bal7scr2.png
-bfglite1 decals/bfglite1.png
-bfglite2 decals/bfglite2.png
-bfgscrc1 decals/bfgscrc1.png
-bfgscrc2 decals/bfgscrc2.png
-plasma1 decals/plasma1.png
-plasma2 decals/plasma2.png
-scorch1 decals/scorch1.png
-bsplat1 decals/bsplat1.png
-bsplat2 decals/bsplat2.png
-bsplat3 decals/bsplat3.png
-bsplat4 decals/bsplat4.png
-bsplat5 decals/bsplat5.png
-bsplat6 decals/bsplat6.png
-bsplat7 decals/bsplat7.png
-bsmear1 decals/bsmear1.png
-bsmear2 decals/bsmear2.png
-chip1 decals/chip1.png
-chip2 decals/chip2.png
-chip3 decals/chip3.png
-chip4 decals/chip4.png
-chip5 decals/chip5.png
-cbowmark decals/cbowmark.png
+graphics/blast1.png decals/blast1.png
+graphics/cbalscr1.png decals/cbalscr1.png
+graphics/cbalscr2.png decals/cbalscr2.png
+graphics/bal7scr1.png decals/bal7scr1.png
+graphics/bal7scr2.png decals/bal7scr2.png
+graphics/bfglite1.png decals/bfglite1.png
+graphics/bfglite2.png decals/bfglite2.png
+graphics/bfgscrc1.png decals/bfgscrc1.png
+graphics/bfgscrc2.png decals/bfgscrc2.png
+graphics/plasma1.png decals/plasma1.png
+graphics/plasma2.png decals/plasma2.png
+graphics/scorch1.png decals/scorch1.png
+graphics/bsplat1.png decals/bsplat1.png
+graphics/bsplat2.png decals/bsplat2.png
+graphics/bsplat3.png decals/bsplat3.png
+graphics/bsplat4.png decals/bsplat4.png
+graphics/bsplat5.png decals/bsplat5.png
+graphics/bsplat6.png decals/bsplat6.png
+graphics/bsplat7.png decals/bsplat7.png
+graphics/bsmear1.png decals/bsmear1.png
+graphics/bsmear2.png decals/bsmear2.png
+graphics/chip1.png decals/chip1.png
+graphics/chip2.png decals/chip2.png
+graphics/chip3.png decals/chip3.png
+graphics/chip4.png decals/chip4.png
+graphics/chip5.png decals/chip5.png
+graphics/cbowmark.png decals/cbowmark.png
========
# Definition lumps
-animdefs animdefs.txt
-terrain terrain.txt
-in_epi1 in_epi1.txt
-in_epi2 in_epi2.txt
-in_epi3 in_epi3.txt
-in_htc1 in_htc1.txt
-in_htc2 in_htc2.txt
-in_htc3 in_htc3.txt
-lockdefs lockdefs.txt
+animdefs.txt animdefs.txt
+terrain.txt terrain.txt
+in_epi1.txt in_epi1.txt
+in_epi2.txt in_epi2.txt
+in_epi3.txt in_epi3.txt
+in_htc1.txt in_htc1.txt
+in_htc2.txt in_htc2.txt
+in_htc3.txt in_htc3.txt
+lockdefs.txt lockdefs.txt
========
# Support lumps
-dehsupp dehsupp.lmp
+dehsupp.lmp dehsupp.lmp
-doomx xlat/doom.x
-hereticx xlat/heretic.x
-strifex xlat/strife.x
+doomx.lmp xlat/doom.x
+hereticx.lmp xlat/heretic.x
+strifex.lmp xlat/strife.x
-animated animated.lmp
-spaldoom spaldoom.lmp
-spalhtic spalhtic.lmp
+animated.lmp animated.lmp
+spaldoom.lmp spaldoom.lmp
+spalhtic.lmp spalhtic.lmp
========
# Language lumps
-language languages/english-us.txt
-language languages/french.txt
-language languages/italian.txt
+language.en languages/english-us.txt
+language.fr languages/french.txt
+language.it languages/italian.txt
========
-x11r6rgb x11r6rgb.txt
-stkeys6 stkeys6.lmp
-stkeys7 stkeys7.lmp
-stkeys8 stkeys8.lmp
-dbigfont dbigfont.lmp # The big Doom font
-sbigfont sbigfont.lmp # The big Strife font
-confont confont.lmp
-fonta60 fonta60.lmp
-fonta61 fonta61.lmp
-fonta62 fonta62.lmp
-fonta63 fonta63.lmp
-fonta164 fonta164.lmp
-fonta165 fonta165.lmp
-fonta182 fonta182.lmp
-fonta188 fonta188.lmp
-fonta191 fonta191.lmp
-stcfn223 stcfn223.lmp
-stcfn220 stcfn220.lmp
-stcfn214 stcfn214.lmp
-stcfn197 stcfn197.lmp
-stcfn196 stcfn196.lmp
-stpbany stpbany.lmp
-stfbany stfbany.lmp
+x11r6rgb.txt x11r6rgb.txt
+graphics/stkeys6.lmp stkeys6.lmp
+graphics/stkeys7.lmp stkeys7.lmp
+graphics/stkeys8.lmp stkeys8.lmp
+dbigfont.lmp dbigfont.lmp # The big Doom font
+sbigfont.lmp sbigfont.lmp # The big Strife font
+confont.lmp confont.lmp
+graphics/fonta60.lmp fonta60.lmp
+graphics/fonta61.lmp fonta61.lmp
+graphics/fonta62.lmp fonta62.lmp
+graphics/fonta63.lmp fonta63.lmp
+graphics/fonta164.lmp fonta164.lmp
+graphics/fonta165.lmp fonta165.lmp
+graphics/fonta182.lmp fonta182.lmp
+graphics/fonta188.lmp fonta188.lmp
+graphics/fonta191.lmp fonta191.lmp
+graphics/stcfn223.lmp stcfn223.lmp
+graphics/stcfn220.lmp stcfn220.lmp
+graphics/stcfn214.lmp stcfn214.lmp
+graphics/stcfn197.lmp stcfn197.lmp
+graphics/stcfn196.lmp stcfn196.lmp
+graphics/stpbany.lmp stpbany.lmp
+graphics/stfbany.lmp stfbany.lmp
========
# Crosshairs
-xhairs1 xhairs1.imgz
-xhairs2 xhairs2.imgz
-xhairs3 xhairs3.imgz
-xhairs4 xhairs4.imgz
-xhairs5 xhairs5.imgz
-xhairs6 xhairs6.imgz
-xhairs7 xhairs7.imgz
+graphics/xhairs1.imgz xhairs1.imgz
+graphics/xhairs2.imgz xhairs2.imgz
+graphics/xhairs3.imgz xhairs3.imgz
+graphics/xhairs4.imgz xhairs4.imgz
+graphics/xhairs5.imgz xhairs5.imgz
+graphics/xhairs6.imgz xhairs6.imgz
+graphics/xhairs7.imgz xhairs7.imgz
-xhairb1 xhairb1.imgz
-xhairb2 xhairb2.png
-xhairb3 xhairb3.imgz
-xhairb4 xhairb4.imgz
-xhairb5 xhairb5.imgz
-xhairb6 xhairb6.imgz
-xhairb7 xhairb7.imgz
+graphics/xhairb1.imgz xhairb1.imgz
+graphics/xhairb2.imgz xhairb2.png
+graphics/xhairb3.imgz xhairb3.imgz
+graphics/xhairb4.imgz xhairb4.imgz
+graphics/xhairb5.imgz xhairb5.imgz
+graphics/xhairb6.imgz xhairb6.imgz
+graphics/xhairb7.imgz xhairb7.imgz
-S_START # Now some sprites
-tnt1a0 tnt1a0.png
-unkna0 unkna0.png
-tlgla0 tlgl.png
-tlglb0 tlgl.png
-tlglc0 tlgl.png
-tlgld0 tlgl.png
-tlgle0 tlgl.png
-iceca0 iceca0.png
-icecb0 icecb0.png
-icecc0 icecc0.png
-icecd0 icecd0.png
+# Now some sprites
+sprites/tnt1a0.png tnt1a0.png
+sprites/unkna0.png unkna0.png
+sprites/tlgla0.png tlgl.png
+sprites/tlglb0.png tlgl.png
+sprites/tlglc0.png tlgl.png
+sprites/tlgld0.png tlgl.png
+sprites/tlgle0.png tlgl.png
+sprites/iceca0.png iceca0.png
+sprites/icecb0.png icecb0.png
+sprites/icecc0.png icecc0.png
+sprites/icecd0.png icecd0.png
S_END
# The patch substituted when a corrupt patch is detected
--badpatc badpatch.lmp
+graphics/-badpatc.lmp badpatch.lmp
# The texture substituted when an unknown texture is encountered
-TX_START
--noflat- noflat.png
-TX_END
+textures/-noflat-.png noflat.png
========
# Sounds
-sndinfo sndinfo.txt
-sndseq sndseq.txt
-sndeax sndeax.txt
+sndinfo.txt sndinfo.txt
+sndseq.txt sndseq.txt
+sndeax.txt sndeax.txt
--------
-icedth1 icedeath.flac
-icebrk1a icebreak.flac
+sounds/icedth1.flac icedeath.flac
+sounds/icebrk1a.flac icebreak.flac
-dsquake quake.flac
-dsempty dsempty.lmp
-dssecret secret.flac
-spark1 spark1.flac
-spark2 spark2.flac
-spark3 spark3.flac
-railgf1 railgunfire.flac
+sounds/dsquake.flac quake.flac
+sounds/dsempty.lmp dsempty.lmp
+sounds/dssecret.flac secret.flac
+sounds/spark1.flac spark1.flac
+sounds/spark2.flac spark2.flac
+sounds/spark3.flac spark3.flac
+sounds/railgf1.flac railgunfire.flac
========
# Mapinfos
-d1info mapinfo/doom1.txt
-d2info mapinfo/doom2.txt
-plutinfo mapinfo/plutonia.txt
-tntinfo mapinfo/tnt.txt
-herinfo mapinfo/heretic.txt
-hexninfo mapinfo/hexen.txt
-strfinfo mapinfo/strife.txt
+d1info.txt mapinfo/doom1.txt
+d2info.txt mapinfo/doom2.txt
+plutinfo.txt mapinfo/plutonia.txt
+tntinfo.txt mapinfo/tnt.txt
+herinfo.txt mapinfo/heretic.txt
+hexninfo.txt mapinfo/hexen.txt
+strfinfo.txt mapinfo/strife.txt
========
# Strife's helper script
-
-A_START
-strfhelp strfhelp.o
-A_END
+acs/strfhelp.o strfhelp.o