1
0
Fork 0

Mgflat, Mgv7: Fix noise crash on world exit.

Fix crash caused by destructor 'delete' on noise objects that are not
created due to mapgen options.
Crash was caused by commit 57eaf62c69
mutilcraft-mt53
paramat 2017-04-22 05:16:50 +01:00
parent f6d1b682d3
commit 4c03190ce8
2 changed files with 20 additions and 8 deletions

View File

@ -73,8 +73,10 @@ MapgenFlat::MapgenFlat(int mapgenid, MapgenFlatParams *params, EmergeManager *em
MapgenFlat::~MapgenFlat()
{
delete noise_terrain;
delete noise_filler_depth;
if ((spflags & MGFLAT_LAKES) || (spflags & MGFLAT_HILLS))
delete noise_terrain;
}

View File

@ -97,16 +97,26 @@ MapgenV7::MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
MapgenV7::~MapgenV7()
{
delete noise_terrain_base;
delete noise_terrain_alt;
delete noise_terrain_persist;
delete noise_height_select;
delete noise_terrain_alt;
delete noise_filler_depth;
delete noise_mount_height;
delete noise_ridge_uwater;
delete noise_floatland_base;
delete noise_float_base_height;
delete noise_mountain;
delete noise_ridge;
if (spflags & MGV7_MOUNTAINS)
delete noise_mount_height;
if (spflags & MGV7_FLOATLANDS) {
delete noise_floatland_base;
delete noise_float_base_height;
}
if (spflags & MGV7_RIDGES) {
delete noise_ridge_uwater;
delete noise_ridge;
}
if ((spflags & MGV7_MOUNTAINS) || (spflags & MGV7_FLOATLANDS))
delete noise_mountain;
}