/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back! *
+* Artsoft Retro-Game Library *
*----------------------------------------------------------*
-* (c) 1995-98 Artsoft Entertainment *
-* Holger Schemel *
-* Oststrasse 11a *
-* 33604 Bielefeld *
-* phone: ++49 +521 290471 *
-* email: aeglos@valinor.owl.de *
+* (c) 1994-2001 Artsoft Entertainment *
+* Holger Schemel *
+* Detmolder Strasse 189 *
+* 33604 Bielefeld *
+* Germany *
+* e-mail: info@artsoft.org *
*----------------------------------------------------------*
-* text.c *
+* text.c *
***********************************************************/
+#include <stdio.h>
#include <stdarg.h>
-#include "libgame.h"
-
-#if 1
-#include "main_TMP.h"
-#endif
+#include "text.h"
/* ========================================================================= */
/* font functions */
/* ========================================================================= */
-void InitFontInfo(Bitmap bitmap_big, Bitmap bitmap_medium,
- Bitmap bitmap_small)
+void InitFontInfo(Bitmap *bitmap_big, Bitmap *bitmap_medium,
+ Bitmap *bitmap_small)
{
font.bitmap_big = bitmap_big;
font.bitmap_medium = bitmap_medium;
vsprintf(buffer, format, ap);
va_end(ap);
- DrawText(playfield.sx + (playfield.sxsize - strlen(buffer) * font_width) / 2,
- playfield.sy + y, buffer, FS_SMALL, font_type);
+ DrawText(gfx.sx + (gfx.sxsize - strlen(buffer) * font_width) / 2,
+ gfx.sy + y, buffer, FS_SMALL, font_type);
}
void DrawTextF(int x, int y, int font_type, char *format, ...)
vsprintf(buffer, format, ap);
va_end(ap);
- DrawText(playfield.sx + x, playfield.sy + y, buffer, FS_SMALL, font_type);
+ DrawText(gfx.sx + x, gfx.sy + y, buffer, FS_SMALL, font_type);
}
void DrawText(int x, int y, char *text, int font_size, int font_type)
{
DrawTextExt(drawto, x, y, text, font_size, font_type);
- if (x < playfield.dx)
+ if (x < gfx.dx)
redraw_mask |= REDRAW_FIELD;
- else if (y < playfield.vy)
+ else if (y < gfx.vy || gfx.vy == 0)
redraw_mask |= REDRAW_DOOR_1;
}
-void DrawTextExt(DrawBuffer bitmap, int x, int y,
+void DrawTextExt(DrawBuffer *bitmap, int x, int y,
char *text, int font_size, int font_type)
{
- Bitmap font_bitmap;
+ Bitmap *font_bitmap;
int font_width, font_height, font_start;
boolean print_inverse = FALSE;
c = 92;
else if (c == 'ü' || c == 'Ü')
c = 93;
+ else if (c == '[' || c == ']') /* map to normal braces */
+ c = (c == '[' ? '(' : ')');
+ else if (c == '\\') /* bad luck ... */
+ c = '/';
- if (c >= 32 && c <= 95)
+ if ((c >= 32 && c <= 95) || c == '°')
{
int src_x = ((c - 32) % FONT_CHARS_PER_LINE) * font_width;
int src_y = ((c - 32) / FONT_CHARS_PER_LINE) * font_height + font_start;
int dest_x = x, dest_y = y;
+ if (c == '°')
+ {
+ src_x = (FONT_CHARS_PER_LINE + 1) * font_width;
+ src_y = 3 * font_height + font_start;
+ }
+
if (print_inverse)
{
BlitBitmap(font_bitmap, bitmap,