added program config file support for run-time special edition support
[rocksndiamonds.git] / src / libgame / system.c
index eec5d192960ac9e784d5232ad8e47ef5ccb90dc1..9a0bed5a93e27442626a319da746fe613b655475 100644 (file)
@@ -64,7 +64,7 @@ int                   FrameCounter = 0;
 /* init/close functions                                                      */
 /* ========================================================================= */
 
-void InitProgramInfo(char *argv0,
+void InitProgramInfo(char *argv0, char *config_filename,
                     char *userdata_subdir, char *userdata_subdir_unix,
                     char *program_title, char *icon_title,
                     char *sdl_icon_filename, char *cookie_prefix,
@@ -73,6 +73,8 @@ void InitProgramInfo(char *argv0,
   program.command_basepath = getBasePath(argv0);
   program.command_basename = getBaseName(argv0);
 
+  program.config_filename = config_filename;
+
   program.userdata_subdir = userdata_subdir;
   program.userdata_subdir_unix = userdata_subdir_unix;
   program.userdata_path = getUserGameDataDir();
@@ -247,6 +249,11 @@ void InitGfxCustomArtworkInfo()
   gfx.draw_init_text = TRUE;
 }
 
+void InitGfxOtherSettings()
+{
+  gfx.cursor_mode = CURSOR_DEFAULT;
+}
+
 void SetDrawDeactivationMask(int draw_deactivation_mask)
 {
   gfx.draw_deactivation_mask = draw_deactivation_mask;
@@ -356,6 +363,8 @@ void InitVideoBuffer(int width, int height, int depth, boolean fullscreen)
 
   SDLInitVideoBuffer(&backbuffer, &window, fullscreen);
 
+  video.initialized = TRUE;
+
   drawto = backbuffer;
 }
 
@@ -1262,6 +1271,8 @@ void SetMouseCursor(int mode)
                mode == CURSOR_PLAYFIELD ? cursor_playfield : NULL);
 
   SDLSetMouseCursor(cursor_new);
+
+  gfx.cursor_mode = mode;
 }