texteff.c
changeset 2424 b7ac446f38f7
parent 2373 f06403621870
child 2455 8d6d990d55f8
--- a/texteff.c	Tue Sep 13 13:30:18 2005 +0000
+++ b/texteff.c	Wed Sep 14 17:21:30 2005 +0000
@@ -55,25 +55,21 @@
 // Duration is in game-days
 void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ...)
 {
-	int i;
-	char buf[1024];
-	char buf2[MAX_TEXTMESSAGE_LENGTH];
+	char buf[MAX_TEXTMESSAGE_LENGTH], buf2[MAX_TEXTMESSAGE_LENGTH];
 	va_list va;
-	int length;
+	int i, length;
 
 	va_start(va, message);
 	vsnprintf(buf, lengthof(buf), message, va);
 	va_end(va);
 
 	/* Special color magic */
-	if ((color & 0xFF) == 0xC9)
-		color = 0x1CA;
+	if ((color & 0xFF) == 0xC9) color = 0x1CA;
 
 	/* Cut the message till it fits inside the chatbox */
-	length = strlen(buf) + 1;
-	snprintf(buf2, length, "%s", buf);
-	while (GetStringWidth(buf2) > _textmessage_width - 9)
-		snprintf(buf2, --length, "%s", buf);
+	snprintf(buf2, lengthof(buf2), "%s", buf); // remove any formatting
+	length = strlen(buf2);
+	while (GetStringWidth(buf2) > _textmessage_width - 9) buf2[--length] = '\0';
 
 	/* Find an empty spot and put the message there */
 	for (i = 0; i < MAX_CHAT_MESSAGES; i++) {