void MapExtras::Block::ParseBasemats(TileInfo *tiles, BasematInfo *bmats) { BlockInfo info; info.prepare(this); COPY(bmats->layermat, info.basemats); for (int x = 0; x < 16; x++) { for (int y = 0; y < 16; y++) { using namespace df::enums::tiletype_material; auto tt = tiles->base_tiles[x][y]; auto mat = info.getBaseMaterial(tt, df::coord2d(x,y)); bmats->mattype[x][y] = mat.mat_type; bmats->matindex[x][y] = mat.mat_index; // Copy base info back to construction layer if (tiles->con_info && !tiles->con_info->constructed.getassignment(x,y)) { tiles->con_info->mattype[x][y] = mat.mat_type; tiles->con_info->matindex[x][y] = mat.mat_index; } } } }
void MapExtras::Block::ParseBasemats(TileInfo *tiles, BasematInfo *bmats) { BlockInfo info; info.prepare(this); COPY(bmats->veinmat, info.veinmats); for (int x = 0; x < 16; x++) { for (int y = 0; y < 16; y++) { using namespace df::enums::tiletype_material; auto tt = tiles->base_tiles[x][y]; auto mat = info.getBaseMaterial(tt, df::coord2d(x,y)); bmats->set_base_mat(tiles, df::coord2d(x,y), mat.mat_type, mat.mat_subtype); } } }