added total height of all lines to wrapped text structure
authorHolger Schemel <holger.schemel@virtion.de>
Mon, 14 Oct 2024 21:17:53 +0000 (23:17 +0200)
committerHolger Schemel <holger.schemel@virtion.de>
Mon, 14 Oct 2024 21:17:56 +0000 (23:17 +0200)
src/libgame/text.c
src/libgame/text.h

index 8cc7e1c257d2f83318c67e78a80c734953dc53d0..88a9c248e7d43c84297c47927ef95acaef8570e6 100644 (file)
@@ -529,6 +529,8 @@ static void AddLineToWrappedText(struct WrappedTextInfo *wrapped_text,
   wrapped_text->line[wrapped_text->num_lines].text = getStringCopy(buffer);
   wrapped_text->line[wrapped_text->num_lines].font_nr = font_nr;
   wrapped_text->line[wrapped_text->num_lines].centered = centered;
+
+  wrapped_text->total_height += getFontHeight(font_nr) + wrapped_text->line_spacing;
   wrapped_text->num_lines++;
 }
 
@@ -598,6 +600,7 @@ static struct WrappedTextInfo *GetWrappedText(char *text_buffer, int base_font_n
   wrapped_text->max_height = max_height;
   wrapped_text->line_spacing = line_spacing;
   wrapped_text->mask_mode = mask_mode;
+  wrapped_text->total_height = 0;
   wrapped_text->num_lines = 0;
 
   buffer[0] = '\0';
index 97613f48a22c39876db676dcb72d7929791bbc67..06b2a43916c7c99d6426f2ec2a506f4ee5cf124c 100644 (file)
@@ -105,6 +105,9 @@ struct WrappedTextInfo
   // number of wrapped lines
   int num_lines;
 
+  // total height of all lines
+  int total_height;
+
   // internal info for processing lines
   int line_width, cut_length, max_height;
   int line_spacing, mask_mode;