added warning only once per file when using fallback artwork
[rocksndiamonds.git] / src / libgame / text.c
index 17475e8c721247b0d92a51532229275e6676e78b..eb36ab2285a47c42e0f8394e49a4d7850d419cf2 100644 (file)
@@ -152,8 +152,8 @@ static void DrawInitTextExt(char *text, int ypos, int font_nr, boolean update)
     int width = video.width;
     int height = getFontHeight(font_nr);
 
-    ClearRectangle(drawto, 0, y, width, height);
-    DrawTextExt(drawto, x, y, text, font_nr, BLIT_OPAQUE);
+    ClearRectangleOnBackground(drawto, 0, y, width, height);
+    DrawTextExt(drawto, x, y, text, font_nr, BLIT_MASKED);
 
     if (update)
       BlitBitmap(drawto, window, 0, 0, video.width, video.height, 0, 0);
@@ -371,6 +371,15 @@ char *GetTextBufferFromFile(char *filename, int max_lines)
 
   closeFile(file);
 
+  if (getTextEncoding(buffer) == TEXT_ENCODING_UTF_8)
+  {
+    char *body_latin1 = getLatin1FromUTF8(buffer);
+
+    checked_free(buffer);
+
+    buffer = body_latin1;
+  }
+
   return buffer;
 }
 
@@ -646,6 +655,17 @@ int DrawTextBuffer(int x, int y, char *text_buffer, int font_nr,
   return current_line;
 }
 
+int DrawTextBufferS(int x, int y, char *text_buffer, int font_nr,
+                   int line_length, int cut_length, int max_lines,
+                   int line_spacing, int mask_mode, boolean autowrap,
+                   boolean centered, boolean parse_comments)
+{
+  return DrawTextBuffer(gfx.sx + x, gfx.sy + y, text_buffer, font_nr,
+                       line_length, cut_length, max_lines,
+                       line_spacing, mask_mode, autowrap,
+                       centered, parse_comments);
+}
+
 int DrawTextBufferVA(int x, int y, char *format, va_list ap, int font_nr,
                     int line_length, int cut_length, int max_lines,
                     int line_spacing, int mask_mode, boolean autowrap,