From 856c3b06f4151c603bcfa30c0a5ada4ad73404f1 Mon Sep 17 00:00:00 2001 From: Japa Date: Tue, 19 Apr 2016 19:15:33 +0530 Subject: [PATCH] Added dig designations to remotefortressreader.cpp --- plugins/proto/RemoteFortressReader.proto | 18 ++++++++++++ plugins/remotefortressreader.cpp | 35 ++++++++++++++++++------ 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/plugins/proto/RemoteFortressReader.proto b/plugins/proto/RemoteFortressReader.proto index 7321be36c..a08e3f11e 100644 --- a/plugins/proto/RemoteFortressReader.proto +++ b/plugins/proto/RemoteFortressReader.proto @@ -100,6 +100,23 @@ enum BuildingDirection WEST = 3; } +enum TileDigDesignation +{ + /** + * no designation + */ + NO_DIG = 0; + /** + * dig walls, remove stairs and ramps, gather plants, fell trees + */ + DEFAULT_DIG = 1; + UP_DOWN_STAIR_DIG = 2; + CHANNEL_DIG = 3; + RAMP_DIG = 4; + DOWN_STAIR_DIG = 5; + UP_STAIR_DIG = 6; +} + message Tiletype { required int32 id = 1; @@ -168,6 +185,7 @@ message MapBlock repeated int32 tree_x = 21; repeated int32 tree_y = 22; repeated int32 tree_z = 23; + repeated TileDigDesignation tile_dig_designation = 24; } message MatPair { diff --git a/plugins/remotefortressreader.cpp b/plugins/remotefortressreader.cpp index 4116dfd33..317fe53bb 100644 --- a/plugins/remotefortressreader.cpp +++ b/plugins/remotefortressreader.cpp @@ -1149,8 +1149,6 @@ void CopyDesignation(df::map_block * DfBlock, RemoteFortressReader::MapBlock * N NetBlock->set_map_y(DfBlock->map_pos.y); NetBlock->set_map_z(DfBlock->map_pos.z); - bool hasBuilding = false; - for (int yy = 0; yy < 16; yy++) for (int xx = 0; xx < 16; xx++) { @@ -1170,12 +1168,33 @@ void CopyDesignation(df::map_block * DfBlock, RemoteFortressReader::MapBlock * N NetBlock->add_subterranean(designation.bits.subterranean); NetBlock->add_water_salt(designation.bits.water_salt); NetBlock->add_water_stagnant(designation.bits.water_stagnant); - } - - if(hasBuilding) - for (int i = 0; i < df::global::world->buildings.all.size(); i++) - { - + switch (designation.bits.dig) + { + case df::enums::tile_dig_designation::No: + NetBlock->add_tile_dig_designation(TileDigDesignation::NO_DIG); + break; + case df::enums::tile_dig_designation::Default: + NetBlock->add_tile_dig_designation(TileDigDesignation::DEFAULT_DIG); + break; + case df::enums::tile_dig_designation::UpDownStair: + NetBlock->add_tile_dig_designation(TileDigDesignation::UP_DOWN_STAIR_DIG); + break; + case df::enums::tile_dig_designation::Channel: + NetBlock->add_tile_dig_designation(TileDigDesignation::CHANNEL_DIG); + break; + case df::enums::tile_dig_designation::Ramp: + NetBlock->add_tile_dig_designation(TileDigDesignation::RAMP_DIG); + break; + case df::enums::tile_dig_designation::DownStair: + NetBlock->add_tile_dig_designation(TileDigDesignation::DOWN_STAIR_DIG); + break; + case df::enums::tile_dig_designation::UpStair: + NetBlock->add_tile_dig_designation(TileDigDesignation::UP_STAIR_DIG); + break; + default: + NetBlock->add_tile_dig_designation(TileDigDesignation::NO_DIG); + break; + } } }