summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Howard2010-04-18 17:15:20 +0000
committerSimon Howard2010-04-18 17:15:20 +0000
commit38c31575d255e1b2ff71f9de2c4d16664e8fb1e9 (patch)
treed67692c26ff72ea638a02f280c59e1bef15c7b2b
parent8069d8a0fdf30516cb6eff6d6a9e2990061f95c1 (diff)
downloadchocolate-doom-38c31575d255e1b2ff71f9de2c4d16664e8fb1e9.tar.gz
chocolate-doom-38c31575d255e1b2ff71f9de2c4d16664e8fb1e9.tar.bz2
chocolate-doom-38c31575d255e1b2ff71f9de2c4d16664e8fb1e9.zip
Add WAD merging command line options to Heretic.
Subversion-branch: /branches/raven-branch Subversion-revision: 1903
-rw-r--r--src/heretic/d_main.c127
1 files changed, 127 insertions, 0 deletions
diff --git a/src/heretic/d_main.c b/src/heretic/d_main.c
index 52e4239f..5fa2d5f9 100644
--- a/src/heretic/d_main.c
+++ b/src/heretic/d_main.c
@@ -46,6 +46,7 @@
#include "m_controls.h"
#include "p_local.h"
#include "s_sound.h"
+#include "w_merge.h"
#include "v_video.h"
#define STARTUP_WINDOW_X 17
@@ -908,6 +909,132 @@ void D_DoomMain(void)
D_AddFile(iwadfile);
+#ifdef FEATURE_WAD_MERGE
+
+ // Merged PWADs are loaded first, because they are supposed to be
+ // modified IWADs.
+
+ //!
+ // @arg <files>
+ // @category mod
+ //
+ // Simulates the behavior of deutex's -merge option, merging a PWAD
+ // into the main IWAD. Multiple files may be specified.
+ //
+
+ p = M_CheckParm("-merge");
+
+ if (p > 0)
+ {
+ for (p = p + 1; p<myargc && myargv[p][0] != '-'; ++p)
+ {
+ char *filename;
+
+ filename = D_TryFindWADByName(myargv[p]);
+
+ printf(" merging %s\n", filename);
+ W_MergeFile(filename);
+ }
+ }
+
+ // NWT-style merging:
+
+ // NWT's -merge option:
+
+ //!
+ // @arg <files>
+ // @category mod
+ //
+ // Simulates the behavior of NWT's -merge option. Multiple files
+ // may be specified.
+
+ p = M_CheckParm("-nwtmerge");
+
+ if (p > 0)
+ {
+ for (p = p + 1; p<myargc && myargv[p][0] != '-'; ++p)
+ {
+ char *filename;
+
+ filename = D_TryFindWADByName(myargv[p]);
+
+ printf(" performing NWT-style merge of %s\n", filename);
+ W_NWTDashMerge(filename);
+ }
+ }
+
+ // Add flats
+
+ //!
+ // @arg <files>
+ // @category mod
+ //
+ // Simulates the behavior of NWT's -af option, merging flats into
+ // the main IWAD directory. Multiple files may be specified.
+ //
+
+ p = M_CheckParm("-af");
+
+ if (p > 0)
+ {
+ for (p = p + 1; p<myargc && myargv[p][0] != '-'; ++p)
+ {
+ char *filename;
+
+ filename = D_TryFindWADByName(myargv[p]);
+
+ printf(" merging flats from %s\n", filename);
+ W_NWTMergeFile(filename, W_NWT_MERGE_FLATS);
+ }
+ }
+
+ //!
+ // @arg <files>
+ // @category mod
+ //
+ // Simulates the behavior of NWT's -as option, merging sprites
+ // into the main IWAD directory. Multiple files may be specified.
+ //
+
+ p = M_CheckParm("-as");
+
+ if (p > 0)
+ {
+ for (p = p + 1; p<myargc && myargv[p][0] != '-'; ++p)
+ {
+ char *filename;
+
+ filename = D_TryFindWADByName(myargv[p]);
+
+ printf(" merging sprites from %s\n", filename);
+ W_NWTMergeFile(filename, W_NWT_MERGE_SPRITES);
+ }
+ }
+
+ //!
+ // @arg <files>
+ // @category mod
+ //
+ // Equivalent to "-af <files> -as <files>".
+ //
+
+ p = M_CheckParm("-aa");
+
+ if (p > 0)
+ {
+ for (p = p + 1; p<myargc && myargv[p][0] != '-'; ++p)
+ {
+ char *filename;
+
+ filename = D_TryFindWADByName(myargv[p]);
+
+ printf(" merging sprites and flats from %s\n", filename);
+ W_NWTMergeFile(filename, W_NWT_MERGE_SPRITES | W_NWT_MERGE_FLATS);
+ }
+ }
+
+#endif
+
// -FILE [filename] [filename] ...
// Add files to the wad list.
p = M_CheckParm("-file");