+void InitGfxClipRegion(boolean enabled, int x, int y, int width, int height)
+{
+ gfx.clipping_enabled = enabled;
+ gfx.clip_x = x;
+ gfx.clip_y = y;
+ gfx.clip_width = width;
+ gfx.clip_height = height;
+}
+
+void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void))
+{
+ gfx.draw_busy_anim_function = draw_busy_anim_function;
+}
+
+void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int))
+{
+ gfx.draw_global_anim_function = draw_global_anim_function;
+}
+
+void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int))
+{
+ gfx.draw_global_border_function = draw_global_border_function;
+}
+
+void InitGfxCustomArtworkInfo()
+{
+ gfx.override_level_graphics = FALSE;
+ gfx.override_level_sounds = FALSE;
+ gfx.override_level_music = FALSE;
+
+ 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;
+}
+
+void SetDrawBackgroundMask(int draw_background_mask)
+{
+ gfx.draw_background_mask = draw_background_mask;
+}
+
+void SetBackgroundBitmap(Bitmap *background_bitmap_tile, int mask)
+{
+ if (background_bitmap_tile != NULL)
+ gfx.background_bitmap_mask |= mask;
+ else
+ gfx.background_bitmap_mask &= ~mask;
+
+ if (background_bitmap_tile == NULL) /* empty background requested */
+ return;
+
+ if (mask == REDRAW_ALL)
+ BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, 0, 0, 0, 0,
+ 0, 0, video.width, video.height);
+ else if (mask == REDRAW_FIELD)
+ BlitBitmapTiled(background_bitmap_tile, gfx.background_bitmap, 0, 0, 0, 0,
+ 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,
+ 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);
+}
+