summaryrefslogtreecommitdiff
path: root/src/strife
diff options
context:
space:
mode:
authorSimon Howard2014-03-30 00:24:49 -0400
committerSimon Howard2014-03-30 00:24:49 -0400
commitfb00bf8354efee1847cbec3370f7a34eef745d3a (patch)
treeb2ea3af9d5f714baf141dd8fdb0a65973cc0f31c /src/strife
parent59a80b5a902d51d03fb079b0ec5560d450f92731 (diff)
downloadchocolate-doom-fb00bf8354efee1847cbec3370f7a34eef745d3a.tar.gz
chocolate-doom-fb00bf8354efee1847cbec3370f7a34eef745d3a.tar.bz2
chocolate-doom-fb00bf8354efee1847cbec3370f7a34eef745d3a.zip
hexen: Make -playdemo cope with paths.
Vanilla Hexen makes you specify the demo name to play by giving the plain lump name, eg. heretic -playdemo mydemo to load mydemo.lmp. It doesn't work if you specify the extension or the full file path. As a convenience and to match the behavior of Chocolate Doom, allow paths and extensions. Also rework the code for other games so that they're slightly more consistent. This fixes #301.
Diffstat (limited to 'src/strife')
-rw-r--r--src/strife/d_main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/strife/d_main.c b/src/strife/d_main.c
index edd01f87..5d8399eb 100644
--- a/src/strife/d_main.c
+++ b/src/strife/d_main.c
@@ -1606,21 +1606,21 @@ void D_DoomMain (void)
if (p)
{
- if (!strcasecmp(myargv[p+1] + strlen(myargv[p+1]) - 4, ".lmp"))
+ // With Vanilla you have to specify the file without extension,
+ // but make that optional.
+ if (M_StringEndsWith(myargv[p + 1], ".lmp"))
{
M_StringCopy(file, myargv[p + 1], sizeof(file));
}
else
{
- snprintf(file, sizeof(file), "%s.lmp", myargv[p+1]);
+ DEH_snprintf(file, sizeof(file), "%s.lmp", myargv[p+1]);
}
if (D_AddFile (file))
{
M_StringCopy(demolumpname, lumpinfo[numlumps - 1].name,
sizeof(demolumpname));
-
- printf("Playing demo %s.\n", file);
}
else
{
@@ -1631,6 +1631,7 @@ void D_DoomMain (void)
M_StringCopy(demolumpname, myargv[p + 1], sizeof(demolumpname));
}
+ printf("Playing demo %s.\n", file);
}
I_AtExit((atexit_func_t) G_CheckDemoStatus, true);