MCPcopy Create free account
hub / github.com/DFHack/dfhack / CopyDesignation

Function CopyDesignation

plugins/remotefortressreader/remotefortressreader.cpp:1037–1155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1035}
1036
1037void 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:

Callers 1

GetBlockListFunction · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected