added support for background image for loading screen
[rocksndiamonds.git] / src / libgame / text.c
index 3fb6ab0613ad00e76e21736cfea595c7944e60e0..36096240203880ba31d6744f0c9bab2d9cc05eb0 100644 (file)
@@ -136,7 +136,7 @@ int maxWordLengthInRequestString(char *text)
 // simple text drawing functions
 // ============================================================================
 
-void DrawInitText(char *text, int ypos, int font_nr)
+static void DrawInitTextExt(char *text, int ypos, int font_nr, boolean update)
 {
   LimitScreenUpdates(TRUE);
 
@@ -152,21 +152,27 @@ void DrawInitText(char *text, int ypos, int font_nr)
     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);
 
-    BlitBitmap(drawto, window, 0, 0, video.width, video.height, 0, 0);
+    if (update)
+      BlitBitmap(drawto, window, 0, 0, video.width, video.height, 0, 0);
   }
 }
 
+void DrawInitText(char *text, int ypos, int font_nr)
+{
+  DrawInitTextExt(text, ypos, font_nr, FALSE);
+}
+
 void DrawInitTextHead(char *text)
 {
-  DrawInitText(text, 120, FC_GREEN);
+  DrawInitTextExt(text, 120, FC_GREEN, FALSE);
 }
 
 void DrawInitTextItem(char *text)
 {
-  DrawInitText(text, 150, FC_YELLOW);
+  DrawInitTextExt(text, 150, FC_YELLOW, TRUE);
 }
 
 void DrawTextF(int x, int y, int font_nr, char *format, ...)
@@ -640,6 +646,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,