Clear all map elements beforing generating a new map, fixes #1762

This commit is contained in:
Gymnasiast 2015-08-31 12:42:46 +02:00
parent dd5d607724
commit 03034e7e2a
3 changed files with 17 additions and 0 deletions

View File

@ -3954,3 +3954,14 @@ bool map_surface_is_blocked(sint16 x, sint16 y){
return false;
}
/* Clears all map elements, to be used before generating a new map */
void map_clear_all_elements()
{
int mapMaxXY = RCT2_GLOBAL(RCT2_ADDRESS_MAP_MAX_XY, uint16);
for (int y = 0; y < (256 * 32); y += 32) {
for (int x = 0; x < (256 * 32); x += 32) {
sub_68AE2A(x, y);
}
}
}

View File

@ -370,4 +370,6 @@ void map_invalidate_element(int x, int y, rct_map_element *mapElement);
int map_get_tile_side(int mapX, int mapY);
int map_get_tile_quadrant(int mapX, int mapY);
void map_clear_all_elements();
#endif

View File

@ -105,6 +105,8 @@ void mapgen_generate_blank(mapgen_settings *settings)
int x, y;
rct_map_element *mapElement;
map_clear_all_elements();
map_init(settings->mapSize);
for (y = 1; y < settings->mapSize - 1; y++) {
for (x = 1; x < settings->mapSize - 1; x++) {
@ -149,6 +151,8 @@ void mapgen_generate(mapgen_settings *settings)
}
}
map_clear_all_elements();
// Initialise the base map
map_init(mapSize);
for (y = 1; y < mapSize - 1; y++) {