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 c7d8499b42f12d25949562d0c2d0a13af2ceb347..0974481a785548081f20af77278c0e45ffc3fb03 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 0a45204e1fc4fd441ca957d6c30f20daebf23437..cfc9e3f19f8c4feb78c50866b0d568a7f8278157 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 a49d312f928244787c273c0528ee7e8e25f611cc..f89b2b250eeebc8a7d087043e05e344ce6fc2f0c 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;