From 5f1ae3f4c6932112a7e9f3f9acd6ce7329971b56 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 21 Apr 2006 06:55:47 +0000 Subject: [PATCH] (svn r4494) - NewGRF: Clean up and reset custom texts --- newgrf_text.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/newgrf_text.c b/newgrf_text.c index 7a6121a3b9..ccdb06ab49 100644 --- a/newgrf_text.c +++ b/newgrf_text.c @@ -236,15 +236,24 @@ void SetCurrentGrfLangID( const char *iso_name ) /** * House cleaning. - * TODO : Have to be written. + * Remove all strings and reset the text counter. */ void CleanUpStrings(void) { uint id; - GRFText *text_to_clear; - for (id = 0; id < _num_grf_texts; id++) { - text_to_clear = _grf_text[id].textholder; + GRFText *grftext = _grf_text[id].textholder; + while (grftext != NULL) { + GRFText *grftext2 = grftext->next; + free(grftext->text); + free(grftext); + grftext = grftext2; + } + _grf_text[id].grfid = 0; + _grf_text[id].stringid = 0; + _grf_text[id].textholder = NULL; } + + _num_grf_texts = 0; }