X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Ftext.c;h=924381178be53926c7bd25bb112706ef304e310c;hb=681721dddc91bcdaef50002d1e861cc8d484e938;hp=513166fdc5d7b0aeb635745c24aa312dc2ea647c;hpb=621b6a2c4781c9c3e2f5849f9c184a906e0ce5b6;p=rocksndiamonds.git diff --git a/src/libgame/text.c b/src/libgame/text.c index 513166fd..92438117 100644 --- a/src/libgame/text.c +++ b/src/libgame/text.c @@ -1,23 +1,20 @@ /*********************************************************** -* 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 #include -#include "libgame.h" - -#if 1 -#include "main_TMP.h" -#endif +#include "text.h" /* ========================================================================= */ @@ -31,8 +28,8 @@ struct FontInfo font; /* 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; @@ -80,8 +77,8 @@ void DrawTextFCentered(int y, int font_type, char *format, ...) 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, ...) @@ -93,23 +90,23 @@ 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; @@ -151,12 +148,18 @@ void DrawTextExt(DrawBuffer bitmap, int x, int y, else if (c == 'ü' || c == 'Ü') c = 93; - 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,