projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed showing special toolbox buttons for empty space elements in editor
[rocksndiamonds.git]
/
src
/
libgame
/
text.c
diff --git
a/src/libgame/text.c
b/src/libgame/text.c
index ce855daf9604496ddc89287ae8cade95676f37b7..84996db221fe529899a5c36ff463eb00ff9b4823 100644
(file)
--- a/
src/libgame/text.c
+++ b/
src/libgame/text.c
@@
-16,18
+16,37
@@
#include "misc.h"
#include "misc.h"
+// ============================================================================
+// static font variables
+// ============================================================================
+
+boolean text_drawing_enabled = TRUE;
+
+
// ============================================================================
// font functions
// ============================================================================
// ============================================================================
// 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),
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.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)
}
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();
UPDATE_BUSY_STATE();
+ if (!text_drawing_enabled)
+ return;
+
if (window != NULL &&
gfx.draw_init_text &&
gfx.num_fonts > 0 &&
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;
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;
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;
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++;
// skip leading whitespaces
while (*text_ptr == ' ' || *text_ptr == '\t')
text_ptr++;