From 8c7078eca9a086f50002d5b84a0b8e80a9d36070 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Thu, 31 Jul 2008 20:06:42 +0000 Subject: Automatically load chex.deh on startup if playing in chex mode. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1165 --- src/d_main.c | 17 +++++++++++++++++ src/deh_main.c | 13 ++++++++----- src/deh_main.h | 1 + src/i_system.c | 2 +- 4 files changed, 27 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/d_main.c b/src/d_main.c index 6b90d57e..9aa85f9c 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -770,6 +770,22 @@ void PrintGameVersion(void) } } +// 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 @@ void D_DoomMain (void) D_IdentifyVersion(); InitGameVersion(); + LoadChexDeh(); D_SetGameDescription(); D_SetSaveGameDir(); diff --git a/src/deh_main.c b/src/deh_main.c index 3ace70e5..b70a3384 100644 --- a/src/deh_main.c +++ b/src/deh_main.c @@ -351,21 +351,25 @@ static void DEH_ParseContext(deh_context_t *context) // 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 @@ void DEH_Init(void) while (p < myargc && myargv[p][0] != '-') { filename = D_TryFindWADByName(myargv[p]); - printf(" loading %s\n", filename); - DEH_ParseFile(filename); + DEH_LoadFile(filename); ++p; } } diff --git a/src/deh_main.h b/src/deh_main.h index 01f82b83..388c56de 100644 --- 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); diff --git a/src/i_system.c b/src/i_system.c index 09e211fd..fe596a60 100644 --- a/src/i_system.c +++ b/src/i_system.c @@ -225,7 +225,7 @@ void I_Error (char *error, ...) // Message first. va_start(argptr, error); - fprintf(stderr, "Error: "); + fprintf(stderr, "\nError: "); vfprintf(stderr, error, argptr); fprintf(stderr, "\n"); va_end(argptr); -- cgit v1.2.3