rnd-20030104-2-src
[rocksndiamonds.git] / src / libgame / text.c
index 231fab1968c8c3488b36003f1003422f585e7c70..2a70134b44a43601fe87763c5907920423faacbf 100644 (file)
@@ -167,23 +167,23 @@ void DrawTextExt(DrawBuffer *bitmap, int x, int y, char *text,
     else if (c == '\\')                        /* bad luck ... */
       c = '/';
 
-    if ((c >= 32 && c <= 95) || c == '°' || c == '´')
+    if ((c >= 32 && c <= 95) || c == '°' || c == '´' || c == '|')
     {
       int src_x = ((c - 32) % FONT_CHARS_PER_LINE) * font_width;
       int src_y = ((c - 32) / FONT_CHARS_PER_LINE) * font_height + font_starty;
       int dest_x = x, dest_y = y;
 
-      if (c == '°' || c == '´')                /* map '°' and 'TM' signs */
+      if (c == '°' || c == '´' || c == '|')    /* map '°' and 'TM' signs */
       {
        if (font_type == FC_SPECIAL2)
        {
-         src_x = (c == '°' ? 1 : 2) * font_width;
+         src_x = (c == '°' ? 1 : c == '´' ? 2 : 3) * font_width;
          src_y = 4 * font_height;
        }
        else
        {
          src_x = FONT_CHARS_PER_LINE * font_width;
-         src_y = (c == '°' ? 1 : 2) * font_height + font_starty;
+         src_y = (c == '°' ? 1 : c == '´' ? 2 : 3) * font_height +font_starty;
        }
       }
 
@@ -200,8 +200,17 @@ void DrawTextExt(DrawBuffer *bitmap, int x, int y, char *text,
                         0, 0, font_width, font_height, dest_x, dest_y);
       }
       else
-       BlitBitmap(font_bitmap, bitmap,
-                  src_x, src_y, font_width, font_height, dest_x, dest_y);
+      {
+#if 1
+       BlitBitmap(font_bitmap, bitmap, src_x, src_y,
+                  font_width, font_height, dest_x, dest_y);
+#else
+       SetClipOrigin(font_bitmap, font_bitmap->stored_clip_gc,
+                     dest_x - src_x, dest_y - src_y);
+       BlitBitmapMasked(font_bitmap, bitmap, src_x, src_y,
+                        font_width, font_height, dest_x, dest_y);
+#endif
+      }
     }
 
     x += font_width;