| 1035 | } |
| 1036 | |
| 1037 | void CopyDesignation(df::map_block * DfBlock, RemoteFortressReader::MapBlock * NetBlock, MapExtras::MapCache * MC, DFCoord pos) |
| 1038 | { |
| 1039 | NetBlock->set_map_x(DfBlock->map_pos.x); |
| 1040 | NetBlock->set_map_y(DfBlock->map_pos.y); |
| 1041 | NetBlock->set_map_z(DfBlock->map_pos.z); |
| 1042 | |
| 1043 | for (int yy = 0; yy < 16; yy++) |
| 1044 | for (int xx = 0; xx < 16; xx++) |
| 1045 | { |
| 1046 | df::tile_designation designation = DfBlock->designation[xx][yy]; |
| 1047 | df::tile_occupancy occupancy = DfBlock->occupancy[xx][yy]; |
| 1048 | int lava = 0; |
| 1049 | int water = 0; |
| 1050 | if (designation.bits.liquid_type == df::enums::tile_liquid::Magma) |
| 1051 | lava = designation.bits.flow_size; |
| 1052 | else |
| 1053 | water = designation.bits.flow_size; |
| 1054 | NetBlock->add_magma(lava); |
| 1055 | NetBlock->add_water(water); |
| 1056 | NetBlock->add_aquifer(designation.bits.water_table); |
| 1057 | NetBlock->add_light(designation.bits.light); |
| 1058 | NetBlock->add_outside(designation.bits.outside); |
| 1059 | NetBlock->add_subterranean(designation.bits.subterranean); |
| 1060 | NetBlock->add_water_salt(designation.bits.water_salt); |
| 1061 | NetBlock->add_water_stagnant(designation.bits.water_stagnant); |
| 1062 | if (gamemode && (*gamemode == game_mode::ADVENTURE)) |
| 1063 | { |
| 1064 | // auto fog_of_war = DfBlock->fog_of_war[xx][yy]; |
| 1065 | NetBlock->add_hidden((TileDigDesignation)designation.bits.dig == TileDigDesignation::NO_DIG || designation.bits.hidden); |
| 1066 | NetBlock->add_tile_dig_designation(TileDigDesignation::NO_DIG); |
| 1067 | NetBlock->add_tile_dig_designation_marker(false); |
| 1068 | NetBlock->add_tile_dig_designation_auto(false); |
| 1069 | } |
| 1070 | else |
| 1071 | { |
| 1072 | NetBlock->add_hidden(designation.bits.hidden); |
| 1073 | #if DF_VERSION_INT > 34011 |
| 1074 | NetBlock->add_tile_dig_designation_marker(occupancy.bits.dig_marked); |
| 1075 | NetBlock->add_tile_dig_designation_auto(occupancy.bits.dig_auto); |
| 1076 | #endif |
| 1077 | switch (designation.bits.dig) |
| 1078 | { |
| 1079 | case df::enums::tile_dig_designation::No: |
| 1080 | NetBlock->add_tile_dig_designation(TileDigDesignation::NO_DIG); |
| 1081 | break; |
| 1082 | case df::enums::tile_dig_designation::Default: |
| 1083 | NetBlock->add_tile_dig_designation(TileDigDesignation::DEFAULT_DIG); |
| 1084 | break; |
| 1085 | case df::enums::tile_dig_designation::UpDownStair: |
| 1086 | NetBlock->add_tile_dig_designation(TileDigDesignation::UP_DOWN_STAIR_DIG); |
| 1087 | break; |
| 1088 | case df::enums::tile_dig_designation::Channel: |
| 1089 | NetBlock->add_tile_dig_designation(TileDigDesignation::CHANNEL_DIG); |
| 1090 | break; |
| 1091 | case df::enums::tile_dig_designation::Ramp: |
| 1092 | NetBlock->add_tile_dig_designation(TileDigDesignation::RAMP_DIG); |
| 1093 | break; |
| 1094 | case df::enums::tile_dig_designation::DownStair: |