added compatibility code for new score screens for "Snake Bite" graphics
authorHolger Schemel <info@artsoft.org>
Wed, 13 Apr 2022 18:14:25 +0000 (20:14 +0200)
committerHolger Schemel <info@artsoft.org>
Wed, 13 Apr 2022 18:15:09 +0000 (20:15 +0200)
src/init.c
src/screens.c

index b2b93715e3cee12b0aaac719781a5843af10ecfd..23d9b976b92607a97be80686fce6634369406d42 100644 (file)
@@ -1952,6 +1952,18 @@ static void InitGraphicCompatibilityInfo(void)
     }
   }
 
+  // special compatibility handling for "Snake Bite" graphics set
+  if (strPrefix(leveldir_current->identifier, "snake_bite"))
+  {
+    Bitmap *bitmap = graphic_info[IMG_BACKGROUND_SCORES].bitmap;
+
+    BlitBitmap(bitmap, bitmap, 18,  66, 32, 480, 50,  66);
+    BlitBitmap(bitmap, bitmap, 466, 66, 32, 480, 434, 66);
+
+    ClearRectangle(bitmap, 2,   66, 32, 480);
+    ClearRectangle(bitmap, 514, 66, 32, 480);
+  }
+
   InitGraphicCompatibilityInfo_Doors();
 }
 
index 5ffd3409e36d5c2251ae130c99cbc5c7c7042aea..2f2352cde7798033142a951dc9c2568d96352d8b 100644 (file)
@@ -1458,6 +1458,11 @@ static void clearMenuListArea(void)
   // clear menu list area, but not title or scrollbar
   DrawBackground(mSX, mSY + MENU_SCREEN_START_YPOS * 32,
                  scrollbar_xpos - mSX, NUM_MENU_ENTRIES_ON_SCREEN * 32);
+
+  // special compatibility handling for "Snake Bite" graphics set
+  if (strPrefix(leveldir_current->identifier, "snake_bite"))
+    ClearRectangle(drawto, mSX, mSY + MENU_SCREEN_START_YPOS * 32,
+                  scrollbar_xpos - mSX, NUM_MENU_ENTRIES_ON_SCREEN * 32);
 }
 
 static void drawCursorExt(int xpos, int ypos, boolean active, int graphic)
@@ -5541,6 +5546,11 @@ static void DrawScoreInfo(int entry_nr)
   SetMainBackgroundImage(IMG_BACKGROUND_SCORES);
   SetMainBackgroundImageIfDefined(IMG_BACKGROUND_SCOREINFO);
 
+  // special compatibility handling for "Snake Bite" graphics set
+  if (strPrefix(leveldir_current->identifier, "snake_bite"))
+    ClearRectangle(gfx.background_bitmap, gfx.real_sx, gfx.real_sy + 64,
+                  gfx.full_sxsize, gfx.full_sysize - 64);
+
   DrawScoreInfo_Content(entry_nr);
 
   // map gadgets for score info screen
@@ -9722,6 +9732,10 @@ static void CreateScreenMenubuttons(void)
       // if x/y set to -1, dynamically place buttons next to title text
       int title_width = getTextWidth(INFOTEXT_SCORE_ENTRY, FONT_TITLE_1);
 
+      // special compatibility handling for "Snake Bite" graphics set
+      if (strPrefix(leveldir_current->identifier, "snake_bite"))
+       title_width = strlen(INFOTEXT_SCORE_ENTRY) * 32;
+
       if (pos->x == -1)
        x = (id == SCREEN_CTRL_ID_PREV_LEVEL2 ?
             SX + (SXSIZE - title_width) / 2 - width * 3 / 2 :