(svn r6001) -Feature: when removing a farm, his farmland is removed too (over time) (based on peter1138's patch, FS#82)

To make this to work, in older games farmland is removed on load, and replanted
This commit is contained in:
truelight
2006-08-20 18:44:26 +00:00
parent e5fb66a23f
commit 9e755051a1
6 changed files with 75 additions and 22 deletions

View File

@@ -50,6 +50,7 @@
#include "settings.h"
#include "genworld.h"
#include "date.h"
#include "clear_map.h"
#include <stdarg.h>
@@ -1463,5 +1464,27 @@ bool AfterLoadGame(void)
}
}
/* From 32 on we save the industry who made the farmland.
* To give this prettyness to old savegames, we remove all farmfields and
* plant new ones. */
if (CheckSavegameVersion(32)) {
Industry *i;
BEGIN_TILE_LOOP(tile_cur, MapSizeX(), MapSizeY(), 0) {
if (IsTileType(tile_cur, MP_CLEAR) && IsClearGround(tile_cur, CLEAR_FIELDS)) {
MakeClear(tile_cur, CLEAR_GRASS, 3);
}
} END_TILE_LOOP(tile_cur, MapSizeX(), MapSizeY(), 0)
FOR_ALL_INDUSTRIES(i) {
uint j;
if (i->xy == 0) continue;
if (i->type == IT_FARM || i->type == IT_FARM_2) {
for (j = 0; j != 50; j++) PlantRandomFarmField(i);
}
}
}
return true;
}