@@ -2255,7 +2255,7 @@ bool ServerMap::initBlockMake(BlockMakeData *data, v3s16 blockpos)
2255
2255
// TimeTaker timer("initBlockMake() initialEmerge");
2256
2256
data->vmanip ->initialEmerge (bigarea_blocks_min, bigarea_blocks_max, false );
2257
2257
}
2258
-
2258
+
2259
2259
// Ensure none of the blocks to be generated were marked as containing CONTENT_IGNORE
2260
2260
/* for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) {
2261
2261
for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) {
@@ -2275,7 +2275,7 @@ bool ServerMap::initBlockMake(BlockMakeData *data, v3s16 blockpos)
2275
2275
return true ;
2276
2276
}
2277
2277
2278
- MapBlock* ServerMap::finishBlockMake (BlockMakeData *data,
2278
+ void ServerMap::finishBlockMake (BlockMakeData *data,
2279
2279
std::map<v3s16, MapBlock*> &changed_blocks)
2280
2280
{
2281
2281
v3s16 blockpos_min = data->blockpos_min ;
@@ -2369,7 +2369,9 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
2369
2369
y<=blockpos_max.Y +extra_borders.Y ; y++)
2370
2370
{
2371
2371
v3s16 p (x, y, z);
2372
- getBlockNoCreateNoEx (p)->setLightingExpired (false );
2372
+ MapBlock * block = getBlockNoCreateNoEx (p);
2373
+ if (block != NULL )
2374
+ block->setLightingExpired (false );
2373
2375
}
2374
2376
2375
2377
#if 0
@@ -2385,7 +2387,8 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
2385
2387
i != changed_blocks.end (); ++i)
2386
2388
{
2387
2389
MapBlock *block = i->second ;
2388
- assert (block);
2390
+ if (!block)
2391
+ continue ;
2389
2392
/*
2390
2393
Update day/night difference cache of the MapBlocks
2391
2394
*/
@@ -2406,7 +2409,8 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
2406
2409
{
2407
2410
v3s16 p (x, y, z);
2408
2411
MapBlock *block = getBlockNoCreateNoEx (p);
2409
- assert (block);
2412
+ if (!block)
2413
+ continue ;
2410
2414
block->setGenerated (true );
2411
2415
}
2412
2416
@@ -2419,8 +2423,8 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
2419
2423
/* infostream<<"finishBlockMake() done for ("<<blockpos_requested.X
2420
2424
<<","<<blockpos_requested.Y<<","
2421
2425
<<blockpos_requested.Z<<")"<<std::endl;*/
2422
-
2423
-
2426
+
2427
+
2424
2428
#if 0
2425
2429
if(enable_mapgen_debug_info)
2426
2430
{
@@ -2444,10 +2448,7 @@ MapBlock* ServerMap::finishBlockMake(BlockMakeData *data,
2444
2448
}
2445
2449
#endif
2446
2450
2447
- MapBlock *block = getBlockNoCreateNoEx (blockpos_requested);
2448
- assert (block);
2449
-
2450
- return block;
2451
+ getBlockNoCreateNoEx (blockpos_requested);
2451
2452
}
2452
2453
2453
2454
ServerMapSector * ServerMap::createSector (v2s16 p2d)
@@ -3068,7 +3069,7 @@ void ServerMap::loadMapMeta()
3068
3069
break ;
3069
3070
params.parseConfigLine (line);
3070
3071
}
3071
-
3072
+
3072
3073
m_emerge->loadParamsFromSettings (¶ms);
3073
3074
3074
3075
verbosestream<<" ServerMap::loadMapMeta(): seed="
@@ -3710,7 +3711,7 @@ void ManualMapVoxelManipulator::initialEmerge(v3s16 blockpos_min,
3710
3711
3711
3712
if (block_data_inexistent)
3712
3713
{
3713
-
3714
+
3714
3715
if (load_if_inexistent) {
3715
3716
ServerMap *svrmap = (ServerMap *)m_map;
3716
3717
block = svrmap->emergeBlock (p, false );
@@ -3720,7 +3721,7 @@ void ManualMapVoxelManipulator::initialEmerge(v3s16 blockpos_min,
3720
3721
block->copyTo (*this );
3721
3722
} else {
3722
3723
flags |= VMANIP_BLOCK_DATA_INEXIST;
3723
-
3724
+
3724
3725
/*
3725
3726
Mark area inexistent
3726
3727
*/
@@ -3760,7 +3761,7 @@ void ManualMapVoxelManipulator::blitBackAll(
3760
3761
v3s16 p = i->first ;
3761
3762
MapBlock *block = m_map->getBlockNoCreateNoEx (p);
3762
3763
bool existed = !(i->second & VMANIP_BLOCK_DATA_INEXIST);
3763
- if (existed == false )
3764
+ if (( existed == false ) || (block == NULL ) )
3764
3765
{
3765
3766
continue ;
3766
3767
}
0 commit comments