diff --git a/newgrf.c b/newgrf.c index 2805531e63..6f16c9e3b5 100644 --- a/newgrf.c +++ b/newgrf.c @@ -3068,6 +3068,21 @@ static void ResetCustomStations(void) } } +static void ResetNewGRF(void) +{ + GRFFile *f, *next; + + for (f = _first_grffile; f != NULL; f = next) { + next = f->next; + + free(f->filename); + free(f); + } + + _first_grffile = NULL; + _cur_grffile = NULL; +} + /** * Reset all NewGRF loaded data * TODO @@ -3118,6 +3133,9 @@ static void ResetNewGRFData(void) ResetStationClasses(); ResetCustomStations(); + /* Reset NewGRF files */ + ResetNewGRF(); + // Add engine type to engine data. This is needed for the refit precalculation. AddTypeToEngines();