X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=9a0bed5a93e27442626a319da746fe613b655475;hb=4e745044fe35b4b093b1490a6e3da0fe4ee512de;hp=25edb0effd65a959df172d43fa84f9c03d77ddcb;hpb=14d7691c65ca4a466ce9b9448153e8fbe8351a81;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 25edb0ef..9a0bed5a 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -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(); @@ -170,6 +172,8 @@ void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize, gfx.field_save_buffer = field_save_buffer; + gfx.drawing_area_changed = FALSE; + SetDrawDeactivationMask(REDRAW_NONE); /* do not deactivate drawing */ SetDrawBackgroundMask(REDRAW_NONE); /* deactivate masked drawing */ } @@ -245,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; @@ -354,6 +363,8 @@ void InitVideoBuffer(int width, int height, int depth, boolean fullscreen) SDLInitVideoBuffer(&backbuffer, &window, fullscreen); + video.initialized = TRUE; + drawto = backbuffer; } @@ -463,6 +474,16 @@ boolean DrawingOnBackground(int x, int y) CheckDrawingArea(x, y, 1, 1, gfx.draw_background_mask)); } +boolean DrawingAreaChanged() +{ + int drawing_area_changed = gfx.drawing_area_changed; + + // reset flag for change of drawing area after querying it + gfx.drawing_area_changed = FALSE; + + return drawing_area_changed; +} + static boolean InClippedRectangle(Bitmap *bitmap, int *x, int *y, int *width, int *height, boolean is_dest) { @@ -1250,6 +1271,8 @@ void SetMouseCursor(int mode) mode == CURSOR_PLAYFIELD ? cursor_playfield : NULL); SDLSetMouseCursor(cursor_new); + + gfx.cursor_mode = mode; }