removed variables
[rocksndiamonds.git] / src / libgame / text.c
index ce855daf9604496ddc89287ae8cade95676f37b7..84996db221fe529899a5c36ff463eb00ff9b4823 100644 (file)
 #include "misc.h"
 
 
+// ============================================================================
+// static font variables
+// ============================================================================
+
+boolean text_drawing_enabled = TRUE;
+
+
 // ============================================================================
 // font functions
 // ============================================================================
 
+void EnableDrawingText(void)
+{
+  text_drawing_enabled = TRUE;
+}
+
+void DisableDrawingText(void)
+{
+  text_drawing_enabled = FALSE;
+}
+
 void InitFontInfo(struct FontBitmapInfo *font_bitmap_info, int num_fonts,
                  int (*select_font_function)(int),
-                 int (*get_font_from_token_function)(char *))
+                 int (*get_font_from_token_function)(char *),
+                 char * (*get_token_from_font_function)(int))
 {
   gfx.num_fonts = num_fonts;
   gfx.font_bitmap_info = font_bitmap_info;
   gfx.select_font_function = select_font_function;
   gfx.get_font_from_token_function = get_font_from_token_function;
+  gfx.get_token_from_font_function = get_token_from_font_function;
 }
 
 void FreeFontInfo(struct FontBitmapInfo *font_bitmap_info)
@@ -142,6 +161,9 @@ static void DrawInitTextExt(char *text, int ypos, int font_nr, boolean update)
 
   UPDATE_BUSY_STATE();
 
+  if (!text_drawing_enabled)
+    return;
+
   if (window != NULL &&
       gfx.draw_init_text &&
       gfx.num_fonts > 0 &&
@@ -254,6 +276,14 @@ void DrawTextExt(DrawBuffer *dst_bitmap, int dst_x, int dst_y, char *text,
   int src_x, src_y;
   char *text_ptr = text;
 
+  if (!text_drawing_enabled)
+    return;
+
+#if DEBUG
+  Debug("font:token", "'%s' / '%s'",
+        gfx.get_token_from_font_function(font_nr), text);
+#endif
+
   if (font->bitmap == NULL)
     return;
 
@@ -404,6 +434,9 @@ static boolean RenderLineToBuffer(char **src_buffer_ptr, char *dst_buffer,
     char *word_ptr;
     int word_len;
 
+    if (strEqual(text_ptr, "  "))      // special case: force line break
+      buffer_filled = TRUE;
+
     // skip leading whitespaces
     while (*text_ptr == ' ' || *text_ptr == '\t')
       text_ptr++;