X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=fee0b17c332b2860ef43fd5d955c0d698e410332;hb=92b6a44481d43254055576a02ce4e335eeab12e9;hp=9ac05663bfc373f59d4dd6d73756d65663a2a67c;hpb=273ed881a8affb54ee8e2bd7489eb3d898e11c23;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 9ac05663..fee0b17c 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -75,7 +75,11 @@ int FrameCounter = 0; void InitProgramInfo(char *argv0, char *userdata_subdir, char *userdata_subdir_unix, - char *program_title, char *window_title, char *icon_title, + char *program_title, +#if 0 + char *window_title, +#endif + char *icon_title, char *x11_icon_filename, char *x11_iconmask_filename, char *sdl_icon_filename, char *msdos_cursor_filename, char *cookie_prefix, char *filename_prefix, @@ -89,7 +93,11 @@ void InitProgramInfo(char *argv0, program.userdata_path = getUserGameDataDir(); program.program_title = program_title; +#if 1 + program.window_title = "(undefined)"; +#else program.window_title = window_title; +#endif program.icon_title = icon_title; program.x11_icon_filename = x11_icon_filename; @@ -108,6 +116,20 @@ void InitProgramInfo(char *argv0, program.error_file = stderr; } +void SetWindowTitle() +{ + program.window_title = program.window_title_function(); + +#if defined(TARGET_SDL) + SDLSetWindowTitle(); +#endif +} + +void InitWindowTitleFunction(char *(*window_title_function)(void)) +{ + program.window_title_function = window_title_function; +} + void InitExitMessageFunction(void (*exit_message_function)(char *, va_list)) { program.exit_message_function = exit_message_function; @@ -214,6 +236,14 @@ void InitGfxDoor2Info(int vx, int vy, int vxsize, int vysize) gfx.vysize = vysize; } +void InitGfxDoor3Info(int ex, int ey, int exsize, int eysize) +{ + gfx.ex = ex; + gfx.ey = ey; + gfx.exsize = exsize; + gfx.eysize = eysize; +} + void InitGfxWindowInfo(int win_xsize, int win_ysize) { gfx.win_xsize = win_xsize; @@ -563,6 +593,19 @@ inline static boolean CheckDrawingArea(int x, int y, int width, int height, if (draw_mask & REDRAW_ALL) return TRUE; +#if 1 + if ((draw_mask & REDRAW_FIELD) && IN_GFX_FIELD_FULL(x, y)) + return TRUE; + + if ((draw_mask & REDRAW_DOOR_1) && IN_GFX_DOOR_1(x, y)) + return TRUE; + + if ((draw_mask & REDRAW_DOOR_2) && IN_GFX_DOOR_2(x, y)) + return TRUE; + + if ((draw_mask & REDRAW_DOOR_3) && IN_GFX_DOOR_3(x, y)) + return TRUE; +#else if ((draw_mask & REDRAW_FIELD) && x >= gfx.real_sx && x < gfx.real_sx + gfx.full_sxsize) return TRUE; @@ -574,6 +617,7 @@ inline static boolean CheckDrawingArea(int x, int y, int width, int height, if ((draw_mask & REDRAW_DOOR_2) && x >= gfx.dx && y >= gfx.vy) return TRUE; +#endif return FALSE; }