fixed bug with wrong high score list width when using font draw offsets
authorHolger Schemel <info@artsoft.org>
Fri, 3 Jun 2016 17:04:31 +0000 (19:04 +0200)
committerHolger Schemel <info@artsoft.org>
Fri, 3 Jun 2016 17:04:31 +0000 (19:04 +0200)
src/libgame/text.c
src/libgame/text.h
src/screens.c

index aa71f15b63c97e32ab155233db1ee5bce06d5ad7..eb755ba5f41fb55a9c079cbeb4b6dc23a536ef00 100644 (file)
@@ -59,6 +59,20 @@ int getFontHeight(int font_nr)
   return gfx.font_bitmap_info[font_bitmap_id].height;
 }
 
+int getFontDrawOffsetX(int font_nr)
+{
+  int font_bitmap_id = gfx.select_font_function(font_nr);
+
+  return gfx.font_bitmap_info[font_bitmap_id].draw_xoffset;
+}
+
+int getFontDrawOffsetY(int font_nr)
+{
+  int font_bitmap_id = gfx.select_font_function(font_nr);
+
+  return gfx.font_bitmap_info[font_bitmap_id].draw_yoffset;
+}
+
 int getTextWidth(char *text, int font_nr)
 {
   return (text != NULL ? strlen(text) * getFontWidth(font_nr) : 0);
index b4f37f45661da755cc765dd662c28e6665248a72..0a45204e1fc4fd441ca957d6c30f20daebf23437 100644 (file)
@@ -83,6 +83,8 @@ struct FontBitmapInfo *getFontBitmapInfo(int);
 
 int getFontWidth(int);
 int getFontHeight(int);
+int getFontDrawOffsetX(int);
+int getFontDrawOffsetY(int);
 int getTextWidth(char *, int);
 
 void getFontCharSource(int, char, Bitmap **, int *, int *);
index 12fa233140c51fff4c586e54ad711c3026f64661..4802015c8fe1519456267c76133a700c2cac65fb 100644 (file)
@@ -4186,9 +4186,10 @@ static void drawHallOfFameList(int first_entry, int highlight_position)
     int font_nr2 = (active ? FONT_TEXT_2_ACTIVE : FONT_TEXT_2);
     int font_nr3 = (active ? FONT_TEXT_3_ACTIVE : FONT_TEXT_3);
     int font_nr4 = (active ? FONT_TEXT_4_ACTIVE : FONT_TEXT_4);
+    int dxoff = getFontDrawOffsetX(font_nr1);
     int dx1 = 3 * getFontWidth(font_nr1);
     int dx2 = dx1 + getFontWidth(font_nr1);
-    int dx3 = SXSIZE - 2 * (mSX - SX) - 5 * getFontWidth(font_nr4);
+    int dx3 = SXSIZE - 2 * (mSX - SX + dxoff) - 5 * getFontWidth(font_nr4);
     int num_dots = (dx3 - dx2) / getFontWidth(font_nr3);
     int sy = mSY + 64 + i * 32;