ref: 8c7078eca9a086f50002d5b84a0b8e80a9d36070
parent: ec5ca368b7dfa19a485f75a60cc6b0377882562d
author: Simon Howard <fraggle@gmail.com>
date: Thu Jul 31 16:06:42 EDT 2008
Automatically load chex.deh on startup if playing in chex mode. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1165
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -770,6 +770,22 @@
}
}
+// Load the Chex Quest dehacked file, if we are in Chex mode.
+
+static void LoadChexDeh(void)
+{
+ if (gameversion == exe_chex)
+ {
+ if (!DEH_LoadFile("chex.deh"))
+ {
+ I_Error("Unable to find Chex Quest dehacked file (chex.deh).\n"
+ "The dehacked file is required in order to emulate\n"
+ "chex.exe correctly. Please download it from the\n"
+ "/idgames repository.");
+ }
+ }
+}
+
//
// D_DoomMain
//
@@ -1200,6 +1216,7 @@
D_IdentifyVersion();
InitGameVersion();
+ LoadChexDeh();
D_SetGameDescription();
D_SetSaveGameDir();
--- a/src/deh_main.c
+++ b/src/deh_main.c
@@ -351,21 +351,25 @@
// Parses a dehacked file
-static void DEH_ParseFile(char *filename)
+int DEH_LoadFile(char *filename)
{
deh_context_t *context;
+ printf(" loading %s\n", filename);
+
context = DEH_OpenFile(filename);
if (context == NULL)
{
- fprintf(stderr, "DEH_ParseFile: Unable to open %s\n", filename);
- return;
+ fprintf(stderr, "DEH_LoadFile: Unable to open %s\n", filename);
+ return 0;
}
DEH_ParseContext(context);
DEH_CloseFile(context);
+
+ return 1;
}
// Checks the command line for -deh argument
@@ -393,8 +397,7 @@
while (p < myargc && myargv[p][0] != '-')
{
filename = D_TryFindWADByName(myargv[p]);
- printf(" loading %s\n", filename);
- DEH_ParseFile(filename);
+ DEH_LoadFile(filename);
++p;
}
}
--- a/src/deh_main.h
+++ b/src/deh_main.h
@@ -39,6 +39,7 @@
#define DEH_VANILLA_NUMSFX 107
void DEH_Init(void);
+int DEH_LoadFile(char *filename);
boolean DEH_ParseAssignment(char *line, char **variable_name, char **value);
--- a/src/i_system.c
+++ b/src/i_system.c
@@ -225,7 +225,7 @@
// Message first.
va_start(argptr, error);
- fprintf(stderr, "Error: ");
+ fprintf(stderr, "\nError: ");
vfprintf(stderr, error, argptr);
fprintf(stderr, "\n");
va_end(argptr);