fixed problem when determining maximum word length in request text
authorHolger Schemel <info@artsoft.org>
Wed, 3 Oct 2018 22:34:49 +0000 (00:34 +0200)
committerHolger Schemel <info@artsoft.org>
Wed, 3 Oct 2018 22:34:49 +0000 (00:34 +0200)
src/libgame/text.c
src/libgame/text.h
src/tools.c

index c7d8499..0974481 100644 (file)
@@ -114,14 +114,16 @@ void getFontCharSource(int font_nr, char c, Bitmap **bitmap, int *x, int *y)
 /* text string helper functions                                              */
 /* ========================================================================= */
 
-int maxWordLengthInString(char *text)
+int maxWordLengthInRequestString(char *text)
 {
   char *text_ptr;
   int word_len = 0, max_word_len = 0;
 
   for (text_ptr = text; *text_ptr; text_ptr++)
   {
-    word_len = (*text_ptr != ' ' ? word_len + 1 : 0);
+    word_len = (*text_ptr != ' ' &&
+               *text_ptr != '?' &&
+               *text_ptr != '!' ? word_len + 1 : 0);
 
     max_word_len = MAX(word_len, max_word_len);
   }
index 0a45204..cfc9e3f 100644 (file)
@@ -89,7 +89,7 @@ int getTextWidth(char *, int);
 
 void getFontCharSource(int, char, Bitmap **, int *, int *);
 
-int maxWordLengthInString(char *);
+int maxWordLengthInRequestString(char *);
 
 void DrawInitText(char *, int, int);
 
index a49d312..f89b2b2 100644 (file)
@@ -4555,7 +4555,7 @@ static boolean RequestDoor(char *text, unsigned int req_state)
   int result;
   int ty;
 
-  if (maxWordLengthInString(text) > MAX_REQUEST_LINE_FONT1_LEN)
+  if (maxWordLengthInRequestString(text) > MAX_REQUEST_LINE_FONT1_LEN)
   {
     max_request_line_len = MAX_REQUEST_LINE_FONT2_LEN;
     font_nr = FONT_TEXT_1;