Added a check that avoids server crash (unhandled exception) when map generation is attempted near limit

This commit is contained in:
Perttu Ahola 2011-05-24 20:03:19 +03:00
parent e1a2b8f600
commit ab02f0aa1b
1 changed files with 12 additions and 1 deletions

View File

@ -3586,7 +3586,18 @@ void ServerMap::initChunkMake(ChunkMakeData &data, v2s16 chunkpos)
sectorpos_base - v2s16(1,1) * max_spread_amount_sectors;
s16 sectorpos_bigbase_size =
sectorpos_base_size + 2 * max_spread_amount_sectors;
// Check limits
const s16 limit = MAP_GENERATION_LIMIT / MAP_BLOCKSIZE;
if(sectorpos_bigbase.X < -limit
|| sectorpos_bigbase.X + sectorpos_bigbase_size >= limit
|| sectorpos_bigbase.Y < -limit
|| sectorpos_bigbase.Y + sectorpos_bigbase_size >= limit)
{
data.no_op = true;
return;
}
data.seed = m_seed;
data.chunkpos = chunkpos;
data.y_blocks_min = y_blocks_min;