-void map_add_block(Map *map, MapBlock *block)
-{
- MapSector *sector = map_get_sector(map, (v2s32) {block->pos.x, block->pos.z}, true);
- BinsearchResult res = binsearch(&block->pos.y, sector->blocks.ptr, sector->blocks.siz, &block_compare);
- if (res.success) {
- MapBlock **ptr = get_block_ptr(sector, res.index);
- map_free_block(*ptr);
- *ptr = block;
- } else {
- array_insert(§or->blocks, &block, res.index);
- }
- if (map->on_block_add)
- map->on_block_add(block);