X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=5a63172f72421e6c0fe58095bce1864945d636cb;hb=71cea4c5471c3924c9b40e314d38fc209a48a499;hp=fcde13d3200773d3f4b151b0dc8dcbae745e5522;hpb=cb0ddc73cbd791f57009f4b2e9037069fb6cdff0;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index fcde13d3..5a63172f 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -69,22 +69,23 @@ int FrameCounter = 0; // init/close functions // ============================================================================ -void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir, - char *program_title, char *icon_title, +void InitProgramInfo(char *command_filename, + char *config_filename, char *userdata_subdir, + char *program_basename, char *program_title, char *icon_filename, char *cookie_prefix, char *program_version_string, int program_version) { - program.command_basepath = getBasePath(argv0); - program.command_basename = getBaseName(argv0); + program.command_basepath = getBasePath(command_filename); + program.command_basename = getBaseName(command_filename); program.config_filename = config_filename; program.userdata_subdir = userdata_subdir; program.userdata_path = getMainUserGameDataDir(); + program.program_basename = program_basename; program.program_title = program_title; program.window_title = "(undefined)"; - program.icon_title = icon_title; program.icon_filename = icon_filename; @@ -98,10 +99,8 @@ void InitProgramInfo(char *argv0, char *config_filename, char *userdata_subdir, program.version_string = program_version_string; - program.log_filename[LOG_OUT_ID] = getLogFilename(LOG_OUT_BASENAME); - program.log_filename[LOG_ERR_ID] = getLogFilename(LOG_ERR_BASENAME); - program.log_file[LOG_OUT_ID] = program.log_file_default[LOG_OUT_ID] = stdout; - program.log_file[LOG_ERR_ID] = program.log_file_default[LOG_ERR_ID] = stderr; + program.log_filename = getLogFilename(getLogBasename(program_basename)); + program.log_file = program.log_file_default = stdout; program.api_thread_count = 0; @@ -169,7 +168,7 @@ void InitPlatformDependentStuff(void) // this is initialized in GetOptions(), but may already be used before options.verbose = TRUE; - OpenLogFiles(); + OpenLogFile(); int sdl_init_flags = SDL_INIT_EVENTS | SDL_INIT_NOPARACHUTE; @@ -181,7 +180,7 @@ void InitPlatformDependentStuff(void) void ClosePlatformDependentStuff(void) { - CloseLogFiles(); + CloseLogFile(); } void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize, @@ -449,7 +448,8 @@ void SetDrawBackgroundMask(int draw_background_mask) gfx.draw_background_mask = draw_background_mask; } -static void SetBackgroundBitmap(Bitmap *background_bitmap_tile, int mask) +void SetBackgroundBitmap(Bitmap *background_bitmap_tile, int mask, + int x, int y, int width, int height) { if (background_bitmap_tile != NULL) gfx.background_bitmap_mask |= mask; @@ -460,40 +460,19 @@ static void SetBackgroundBitmap(Bitmap *background_bitmap_tile, int mask) return; if (mask == REDRAW_ALL) - BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, 0, 0, 0, 0, + BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, + x, y, width, height, 0, 0, video.width, video.height); else if (mask == REDRAW_FIELD) - BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, 0, 0, 0, 0, + BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, + x, y, width, height, gfx.real_sx, gfx.real_sy, gfx.full_sxsize, gfx.full_sysize); else if (mask == REDRAW_DOOR_1) - BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, 0, 0, 0, 0, + BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, + x, y, width, height, gfx.dx, gfx.dy, gfx.dxsize, gfx.dysize); } -void SetWindowBackgroundBitmap(Bitmap *background_bitmap_tile) -{ - // remove every mask before setting mask for window - // (!!! TO BE FIXED: The whole REDRAW_* system really sucks! !!!) - SetBackgroundBitmap(NULL, 0xffff); // !!! FIX THIS !!! - SetBackgroundBitmap(background_bitmap_tile, REDRAW_ALL); -} - -void SetMainBackgroundBitmap(Bitmap *background_bitmap_tile) -{ - // remove window area mask before setting mask for main area - // (!!! TO BE FIXED: The whole REDRAW_* system really sucks! !!!) - SetBackgroundBitmap(NULL, REDRAW_ALL); // !!! FIX THIS !!! - SetBackgroundBitmap(background_bitmap_tile, REDRAW_FIELD); -} - -void SetDoorBackgroundBitmap(Bitmap *background_bitmap_tile) -{ - // remove window area mask before setting mask for door area - // (!!! TO BE FIXED: The whole REDRAW_* system really sucks! !!!) - SetBackgroundBitmap(NULL, REDRAW_ALL); // !!! FIX THIS !!! - SetBackgroundBitmap(background_bitmap_tile, REDRAW_DOOR_1); -} - // ============================================================================ // video functions @@ -1717,7 +1696,7 @@ void CheckQuitEvent(void) program.exit_function(0); } -Key GetEventKey(KeyEvent *event, boolean with_modifiers) +Key GetEventKey(KeyEvent *event) { // key up/down events in SDL2 do not return text characters anymore return event->keysym.sym;