(svn r26310) -Codechange: clean up some caches during town generation to keep memory usage significantly lower (MJP)

This commit is contained in:
rubidium 2014-02-06 20:55:49 +00:00
parent f99d380583
commit fcb122124b

View File

@ -46,6 +46,7 @@
#include "object_base.h"
#include "ai/ai.hpp"
#include "game/game.hpp"
#include "gfx_layout.h"
#include "table/strings.h"
#include "table/town_land.h"
@ -1889,6 +1890,14 @@ bool GenerateTowns(TownLayout layout)
* Note that this is really a suggested value, not a required one.
* We would not like the system to lock up just because the user wanted 100 cities on a 64*64 map, would we? */
do {
if (total % 512 == 0) {
/* Clear the caches regularly, otherwise it will only be done
* at the end of the whole cycle when OpenTTD has allocated
* lots and lots of memory for these essentially caches. */
ClearPersistentStorageChanges(true);
Layouter::ReduceLineCache();
}
bool city = (_settings_game.economy.larger_towns != 0 && Chance16(1, _settings_game.economy.larger_towns));
IncreaseGeneratingWorldProgress(GWP_TOWN);
/* Get a unique name for the town. */