rnd-20061020-2-src
authorHolger Schemel <info@artsoft.org>
Fri, 20 Oct 2006 18:26:53 +0000 (20:26 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:53:28 +0000 (10:53 +0200)
* fixed bug with background not drawn in Hall of Fame after game was won

ChangeLog
src/conftime.h
src/screens.c
src/tools.c

index 2613fd7fb863bdb21e47bb967b8b6198d1c39c94..e71951168431f234349ff4166bed67ac2a6f63cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@
          - "titlescreen_{1-5}.anim_mode: {fade,crossfade}
          default is using normal fading for menues and initial title screens,
          while using cross-fading for level set title screens
+       * fixed bug with background not drawn in Hall of Fame after game was won
 
 2006-10-18
        * added configuration directives for the remaining main menu items
index 98686142f8375f908ef52ad92a4506f59db19e50..2fd0b54bd47018cdf1cee145ba2d83a17a86ccc1 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2006-10-20 19:44]"
+#define COMPILE_DATE_STRING "[2006-10-20 20:24]"
index dcfd35b891704ee818f77a0e6c35ceabdcebb9e9..484d113b3046329fb83ce3250e67261ac1a22a4e 100644 (file)
@@ -2848,6 +2848,15 @@ void DrawHallOfFame(int highlight_position)
 {
   UnmapAllGadgets();
   FadeSoundsAndMusic();
+
+  /* (this is needed when called from GameEnd() after winning a game) */
+  KeyboardAutoRepeatOn();
+  ActivateJoystick();
+
+  /* (this is needed when called from GameEnd() after winning a game) */
+  SetDrawDeactivationMask(REDRAW_NONE);
+  SetDrawBackgroundMask(REDRAW_FIELD);
+
   CloseDoor(DOOR_CLOSE_2);
 
   if (highlight_position < 0) 
index e46b0a6dd34c564336ed8a5dd9b5fe761dddebe8..3228959755cc0ea844df4885eb485e2e62e244c8 100644 (file)
@@ -629,7 +629,9 @@ void SetPanelBackground()
 
 void DrawBackground(int dst_x, int dst_y, int width, int height)
 {
-#if 1
+  /* !!! "drawto" might still point to playfield buffer here (see below) !!! */
+  /* (when entering hall of fame after playing) */
+#if 0
   ClearRectangleOnBackground(drawto, dst_x, dst_y, width, height);
 #else
   ClearRectangleOnBackground(backbuffer, dst_x, dst_y, width, height);
@@ -640,8 +642,11 @@ void DrawBackground(int dst_x, int dst_y, int width, int height)
 
 void ClearWindow()
 {
+  /* !!! "drawto" might still point to playfield buffer here (see above) !!! */
+  /* (when entering hall of fame after playing) */
   DrawBackground(REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE);
 
+  /* !!! maybe this should be done before clearing the background !!! */
   if (setup.soft_scrolling && game_status == GAME_MODE_PLAYING)
   {
     ClearRectangle(fieldbuffer, 0, 0, FXSIZE, FYSIZE);