From 06225dd896562901ecc275493aae81bda2e3c751 Mon Sep 17 00:00:00 2001 From: Japa Illo Date: Thu, 30 Mar 2017 16:23:14 +0530 Subject: [PATCH] Send building items and items kept in buildings separately. --- .../remotefortressreader.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/remotefortressreader/remotefortressreader.cpp b/plugins/remotefortressreader/remotefortressreader.cpp index 866dd8d42..507bd5349 100644 --- a/plugins/remotefortressreader/remotefortressreader.cpp +++ b/plugins/remotefortressreader/remotefortressreader.cpp @@ -1170,14 +1170,22 @@ void CopyBuildings(df::map_block * DfBlock, RemoteFortressReader::MapBlock * Net continue; auto out_bld = NetBlock->add_buildings(); CopyBuilding(i, out_bld); - df::building_actual* actualBuilding = strict_virtual_cast(bld); + df::building_actual* actualBuilding = virtual_cast(bld); if (actualBuilding) { for (int i = 0; i < actualBuilding->contained_items.size(); i++) { - auto buildingItem = out_bld->add_items(); - buildingItem->set_mode(actualBuilding->contained_items[i]->use_mode); - CopyItem(buildingItem->mutable_item(), actualBuilding->contained_items[i]->item); + if (actualBuilding->contained_items[i]->use_mode == 0) + { + if (isItemChanged(actualBuilding->contained_items[i]->item->id)) + CopyItem(NetBlock->add_items(), actualBuilding->contained_items[i]->item); + } + else + { + auto buildingItem = out_bld->add_items(); + buildingItem->set_mode(actualBuilding->contained_items[i]->use_mode); + CopyItem(buildingItem->mutable_item(), actualBuilding->contained_items[i]->item); + } } } }