Replace many includes with forward declarations in modules/Maps.h

develop
lethosor 2016-08-13 21:44:01 -04:00
parent 576174ea0b
commit e965f5318f
28 changed files with 390 additions and 317 deletions

@ -89,6 +89,7 @@ distribution.
#include "df/proj_itemst.h" #include "df/proj_itemst.h"
#include "df/itemdef.h" #include "df/itemdef.h"
#include "df/enabler.h" #include "df/enabler.h"
#include "df/feature_init.h"
#include <lua.h> #include <lua.h>
#include <lauxlib.h> #include <lauxlib.h>

@ -26,19 +26,20 @@ distribution.
#include "Export.h" #include "Export.h"
#include "DataDefs.h" #include "DataDefs.h"
#include "Types.h" #include "Types.h"
#include "modules/Items.h"
#include "modules/Maps.h"
#include "df/building.h" #include "df/building.h"
#include "df/building_stockpilest.h" #include "df/building_stockpilest.h"
#include "df/building_type.h" #include "df/building_type.h"
#include "df/civzone_type.h" #include "df/civzone_type.h"
#include "df/construction_type.h"
#include "df/furnace_type.h" #include "df/furnace_type.h"
#include "df/item.h" #include "df/item.h"
#include "df/workshop_type.h"
#include "df/construction_type.h"
#include "df/shop_type.h" #include "df/shop_type.h"
#include "df/siegeengine_type.h" #include "df/siegeengine_type.h"
#include "df/trap_type.h" #include "df/trap_type.h"
#include "modules/Items.h" #include "df/workshop_type.h"
#include "modules/Maps.h"
namespace df namespace df
{ {
@ -220,55 +221,7 @@ public:
item = NULL; item = NULL;
} }
StockpileIterator& operator++() { StockpileIterator& operator++();
while (stockpile) {
if (block) {
// Check the next item in the current block.
++current;
} else {
// Start with the top-left block covering the stockpile.
block = Maps::getTileBlock(stockpile->x1, stockpile->y1, stockpile->z);
current = 0;
}
while (current >= block->items.size()) {
// Out of items in this block; find the next block to search.
if (block->map_pos.x + 16 < stockpile->x2) {
block = Maps::getTileBlock(block->map_pos.x + 16, block->map_pos.y, stockpile->z);
current = 0;
} else if (block->map_pos.y + 16 < stockpile->y2) {
block = Maps::getTileBlock(stockpile->x1, block->map_pos.y + 16, stockpile->z);
current = 0;
} else {
// All items in all blocks have been checked.
block = NULL;
item = NULL;
return *this;
}
}
// If the current item isn't properly stored, move on to the next.
item = df::item::find(block->items[current]);
if (!item->flags.bits.on_ground) {
continue;
}
if (!Buildings::containsTile(stockpile, item->pos, false)) {
continue;
}
// Ignore empty bins, barrels, and wheelbarrows assigned here.
if (item->isAssignedToThisStockpile(stockpile->id)) {
auto ref = Items::getGeneralRef(item, df::general_ref_type::CONTAINS_ITEM);
if (!ref) continue;
}
// Found a valid item; yield it.
break;
}
return *this;
}
void begin(df::building_stockpilest* sp) { void begin(df::building_stockpilest* sp) {
stockpile = sp; stockpile = sp;

@ -36,22 +36,33 @@ distribution.
#include "BitArray.h" #include "BitArray.h"
#include "modules/Materials.h" #include "modules/Materials.h"
#include "df/world.h" #include "df/block_flags.h"
#include "df/world_data.h" #include "df/feature_type.h"
#include "df/map_block.h" #include "df/flow_type.h"
#include "df/block_square_event.h"
#include "df/block_square_event_mineralst.h"
#include "df/block_square_event_frozen_liquidst.h"
#include "df/block_square_event_world_constructionst.h"
#include "df/block_square_event_material_spatterst.h"
#include "df/block_square_event_grassst.h"
#include "df/block_square_event_spoorst.h"
#include "df/block_square_event_item_spatterst.h"
#include "df/tile_liquid.h"
#include "df/tile_dig_designation.h" #include "df/tile_dig_designation.h"
#include "df/tile_liquid.h"
#include "df/tile_traffic.h" #include "df/tile_traffic.h"
#include "df/feature_init.h" #include "df/tiletype.h"
#include "df/flow_type.h"
namespace df {
struct block_square_event;
struct block_square_event_frozen_liquidst;
struct block_square_event_grassst;
struct block_square_event_item_spatterst;
struct block_square_event_material_spatterst;
struct block_square_event_mineralst;
struct block_square_event_spoorst;
struct block_square_event_world_constructionst;
struct feature_init;
struct map_block;
struct map_block_column;
struct region_map_entry;
struct world;
struct world_data;
struct world_geo_biome;
union tile_designation;
union tile_occupancy;
}
/** /**
* \defgroup grp_maps Maps module and its types * \defgroup grp_maps Maps module and its types

@ -49,6 +49,7 @@ using namespace std;
using namespace DFHack; using namespace DFHack;
#include "DataDefs.h" #include "DataDefs.h"
#include "df/building_axle_horizontalst.h" #include "df/building_axle_horizontalst.h"
#include "df/building_bars_floorst.h" #include "df/building_bars_floorst.h"
#include "df/building_bars_verticalst.h" #include "df/building_bars_verticalst.h"
@ -74,6 +75,8 @@ using namespace DFHack;
#include "df/item.h" #include "df/item.h"
#include "df/job.h" #include "df/job.h"
#include "df/job_item.h" #include "df/job_item.h"
#include "df/map_block.h"
#include "df/tile_occupancy.h"
#include "df/ui.h" #include "df/ui.h"
#include "df/ui_look_list.h" #include "df/ui_look_list.h"
#include "df/unit.h" #include "df/unit.h"
@ -1290,3 +1293,55 @@ df::building* Buildings::findPenPitAt(df::coord coord)
} }
return NULL; return NULL;
} }
using Buildings::StockpileIterator;
StockpileIterator& StockpileIterator::operator++() {
while (stockpile) {
if (block) {
// Check the next item in the current block.
++current;
} else {
// Start with the top-left block covering the stockpile.
block = Maps::getTileBlock(stockpile->x1, stockpile->y1, stockpile->z);
current = 0;
}
while (current >= block->items.size()) {
// Out of items in this block; find the next block to search.
if (block->map_pos.x + 16 < stockpile->x2) {
block = Maps::getTileBlock(block->map_pos.x + 16, block->map_pos.y, stockpile->z);
current = 0;
} else if (block->map_pos.y + 16 < stockpile->y2) {
block = Maps::getTileBlock(stockpile->x1, block->map_pos.y + 16, stockpile->z);
current = 0;
} else {
// All items in all blocks have been checked.
block = NULL;
item = NULL;
return *this;
}
}
// If the current item isn't properly stored, move on to the next.
item = df::item::find(block->items[current]);
if (!item->flags.bits.on_ground) {
continue;
}
if (!Buildings::containsTile(stockpile, item->pos, false)) {
continue;
}
// Ignore empty bins, barrels, and wheelbarrows assigned here.
if (item->isAssignedToThisStockpile(stockpile->id)) {
auto ref = Items::getGeneralRef(item, df::general_ref_type::CONTAINS_ITEM);
if (!ref) continue;
}
// Found a valid item; yield it.
break;
}
return *this;
}

@ -29,20 +29,21 @@ distribution.
#include <cstdlib> #include <cstdlib>
using namespace std; using namespace std;
#include "Error.h"
#include "Core.h" #include "Core.h"
#include "DataDefs.h"
#include "Error.h"
#include "MiscUtils.h"
#include "modules/Burrows.h" #include "modules/Burrows.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "modules/Units.h" #include "modules/Units.h"
#include "MiscUtils.h"
#include "DataDefs.h"
#include "df/ui.h"
#include "df/burrow.h"
#include "df/block_burrow.h" #include "df/block_burrow.h"
#include "df/block_burrow_link.h" #include "df/block_burrow_link.h"
#include "df/burrow.h"
#include "df/map_block.h"
#include "df/ui.h"
#include "df/world.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -31,21 +31,21 @@ distribution.
using namespace std; using namespace std;
#include "VersionInfo.h" #include "Core.h"
#include "MemAccess.h" #include "MemAccess.h"
#include "TileTypes.h"
#include "Types.h" #include "Types.h"
#include "Core.h" #include "VersionInfo.h"
#include "modules/Constructions.h"
#include "modules/Buildings.h" #include "modules/Buildings.h"
#include "modules/Constructions.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "TileTypes.h"
#include "df/world.h"
#include "df/job_item.h"
#include "df/building_type.h"
#include "df/building_constructionst.h" #include "df/building_constructionst.h"
#include "df/building_type.h"
#include "df/job_item.h"
#include "df/map_block.h"
#include "df/world.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -33,39 +33,41 @@ distribution.
#include <iostream> #include <iostream>
using namespace std; using namespace std;
#include "modules/Maps.h"
#include "modules/MapCache.h"
#include "ColorText.h" #include "ColorText.h"
#include "Core.h"
#include "DataDefs.h"
#include "Error.h" #include "Error.h"
#include "VersionInfo.h"
#include "MemAccess.h" #include "MemAccess.h"
#include "ModuleFactory.h"
#include "Core.h"
#include "MiscUtils.h" #include "MiscUtils.h"
#include "ModuleFactory.h"
#include "VersionInfo.h"
#include "modules/Buildings.h" #include "modules/Buildings.h"
#include "modules/MapCache.h"
#include "modules/Maps.h"
#include "modules/Materials.h" #include "modules/Materials.h"
#include "DataDefs.h"
#include "df/world_data.h"
#include "df/world_underground_region.h"
#include "df/world_geo_biome.h"
#include "df/world_geo_layer.h"
#include "df/feature_init.h"
#include "df/world_data.h"
#include "df/burrow.h"
#include "df/block_burrow.h" #include "df/block_burrow.h"
#include "df/block_burrow_link.h" #include "df/block_burrow_link.h"
#include "df/world_region_details.h"
#include "df/builtin_mats.h"
#include "df/block_square_event_grassst.h" #include "df/block_square_event_grassst.h"
#include "df/z_level_flags.h" #include "df/block_square_event_frozen_liquidst.h"
#include "df/region_map_entry.h" #include "df/building_type.h"
#include "df/builtin_mats.h"
#include "df/burrow.h"
#include "df/feature_init.h"
#include "df/flow_info.h" #include "df/flow_info.h"
#include "df/plant.h" #include "df/plant.h"
#include "df/plant_tree_info.h" #include "df/plant_tree_info.h"
#include "df/plant_tree_tile.h" #include "df/plant_tree_tile.h"
#include "df/building_type.h" #include "df/region_map_entry.h"
#include "df/world.h"
#include "df/world_data.h"
#include "df/world_data.h"
#include "df/world_geo_biome.h"
#include "df/world_geo_layer.h"
#include "df/world_region_details.h"
#include "df/world_underground_region.h"
#include "df/z_level_flags.h"
using namespace DFHack; using namespace DFHack;
using namespace MapExtras; using namespace MapExtras;

@ -33,36 +33,37 @@ distribution.
#include <iostream> #include <iostream>
using namespace std; using namespace std;
#include "modules/Maps.h"
#include "modules/MapCache.h"
#include "ColorText.h" #include "ColorText.h"
#include "Core.h"
#include "DataDefs.h"
#include "Error.h" #include "Error.h"
#include "VersionInfo.h"
#include "MemAccess.h" #include "MemAccess.h"
#include "ModuleFactory.h"
#include "Core.h"
#include "MiscUtils.h" #include "MiscUtils.h"
#include "ModuleFactory.h"
#include "VersionInfo.h"
#include "modules/Buildings.h" #include "modules/Buildings.h"
#include "modules/MapCache.h"
#include "modules/Maps.h"
#include "DataDefs.h"
#include "df/world_data.h"
#include "df/world_underground_region.h"
#include "df/world_geo_biome.h"
#include "df/world_geo_layer.h"
#include "df/feature_init.h"
#include "df/world_data.h"
#include "df/burrow.h"
#include "df/block_burrow.h" #include "df/block_burrow.h"
#include "df/block_burrow_link.h" #include "df/block_burrow_link.h"
#include "df/world_region_details.h"
#include "df/builtin_mats.h"
#include "df/block_square_event_grassst.h" #include "df/block_square_event_grassst.h"
#include "df/z_level_flags.h"
#include "df/region_map_entry.h"
#include "df/flow_info.h"
#include "df/building_type.h" #include "df/building_type.h"
#include "df/builtin_mats.h"
#include "df/burrow.h"
#include "df/feature_init.h"
#include "df/flow_info.h"
#include "df/plant.h" #include "df/plant.h"
#include "df/region_map_entry.h"
#include "df/world.h"
#include "df/world_data.h"
#include "df/world_data.h"
#include "df/world_geo_biome.h"
#include "df/world_geo_layer.h"
#include "df/world_region_details.h"
#include "df/world_underground_region.h"
#include "df/z_level_flags.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -1,25 +1,24 @@
// changelayer plugin // changelayer plugin
// allows changing the material type of geological layers // allows changing the material type of geological layers
// some headers required for a plugin. Nothing special, just the basics. #include "Console.h"
#include "Core.h" #include "Core.h"
#include <Console.h>
#include <Export.h>
#include <PluginManager.h>
// DF data structure definition headers
#include "DataDefs.h" #include "DataDefs.h"
#include "Export.h"
#include "PluginManager.h"
#include "TileTypes.h"
#include "modules/Gui.h"
#include "modules/MapCache.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "modules/Materials.h" #include "modules/Materials.h"
#include "modules/MapCache.h"
#include "modules/Gui.h"
#include "TileTypes.h"
// DF data structure definition headers
#include "df/region_map_entry.h"
#include "df/world.h"
#include "df/world_data.h" #include "df/world_data.h"
#include "df/world_geo_biome.h" #include "df/world_geo_biome.h"
#include "df/world_geo_layer.h" #include "df/world_geo_layer.h"
#include "df/region_map_entry.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;
@ -394,4 +393,4 @@ bool conversionAllowed(color_ostream &out, MaterialInfo mat_new, MaterialInfo ma
warned = true; warned = true;
} }
return allowed; return allowed;
} }

@ -10,6 +10,10 @@
#include "modules/Materials.h" #include "modules/Materials.h"
#include "TileTypes.h" #include "TileTypes.h"
#include "df/block_square_event.h"
#include "df/block_square_event_mineralst.h"
#include "df/map_block.h"
using std::vector; using std::vector;
using std::string; using std::string;
using namespace DFHack; using namespace DFHack;

@ -1,17 +1,22 @@
#include "Core.h" #include "Core.h"
#include "Console.h" #include "Console.h"
#include "DataDefs.h"
#include "Export.h" #include "Export.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "DataDefs.h" #include "df/block_square_event.h"
#include "df/block_square_event_material_spatterst.h"
#include "df/builtin_mats.h"
#include "df/global_objects.h"
#include "df/item_actual.h" #include "df/item_actual.h"
#include "df/unit.h" #include "df/map_block.h"
#include "df/spatter.h"
#include "df/matter_state.h" #include "df/matter_state.h"
#include "df/global_objects.h"
#include "df/builtin_mats.h"
#include "df/plant.h" #include "df/plant.h"
#include "df/spatter.h"
#include "df/unit.h"
#include "df/world.h"
using std::vector; using std::vector;
using std::string; using std::string;

@ -9,6 +9,9 @@
#include "modules/Maps.h" #include "modules/Maps.h"
#include "TileTypes.h" #include "TileTypes.h"
#include "df/map_block.h"
#include "df/world.h"
using std::vector; using std::vector;
using std::string; using std::string;
using namespace DFHack; using namespace DFHack;

@ -1,11 +1,15 @@
#include "Core.h" #include "Core.h"
#include "Console.h" #include "Console.h"
#include "DataDefs.h"
#include "Export.h" #include "Export.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "DataDefs.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "df/block_square_event_frozen_liquidst.h"
#include "df/map_block.h"
#include "df/world.h"
using std::vector; using std::vector;
using std::string; using std::string;
using namespace DFHack; using namespace DFHack;

@ -1,16 +1,19 @@
#include "Core.h" #include <vector>
#include <string>
#include "Console.h" #include "Console.h"
#include "Core.h"
#include "Export.h" #include "Export.h"
#include "PluginManager.h"
#include "MiscUtils.h" #include "MiscUtils.h"
#include <vector> #include "PluginManager.h"
#include <string>
#include "modules/Maps.h" #include "modules/Gui.h"
#include "modules/Items.h" #include "modules/Items.h"
#include <modules/Gui.h> #include "modules/Maps.h"
#include <llimits.h>
#include <df/caste_raw.h> #include "df/caste_raw.h"
#include <df/creature_raw.h> #include "df/creature_raw.h"
#include "df/world.h"
using std::vector; using std::vector;
using std::string; using std::string;

@ -9,6 +9,7 @@
// DF data structure definition headers // DF data structure definition headers
#include "DataDefs.h" #include "DataDefs.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "df/map_block.h"
#include "df/world.h" #include "df/world.h"
#include "TileTypes.h" #include "TileTypes.h"

@ -14,6 +14,11 @@
#include "modules/Maps.h" #include "modules/Maps.h"
#include "TileTypes.h" #include "TileTypes.h"
#include "df/block_square_event.h"
#include "df/block_square_event_mineralst.h"
#include "df/map_block.h"
#include "df/world.h"
using std::vector; using std::vector;
using std::string; using std::string;
using namespace DFHack; using namespace DFHack;

@ -1,17 +1,19 @@
// Make the camera follow the selected unit // Make the camera follow the selected unit
#include "Console.h"
#include "Core.h" #include "Core.h"
#include <Console.h>
#include <Export.h>
#include <PluginManager.h>
#include "DFHack.h"
#include "DataDefs.h" #include "DataDefs.h"
#include "DFHack.h"
#include "Export.h"
#include "PluginManager.h"
#include "modules/Gui.h" #include "modules/Gui.h"
#include "modules/World.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include <df/unit.h> #include "modules/World.h"
#include <df/creature_raw.h>
#include "df/creature_raw.h"
#include "df/unit.h"
#include "df/world.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -10,6 +10,9 @@
#include "modules/World.h" #include "modules/World.h"
#include "modules/MapCache.h" #include "modules/MapCache.h"
#include "modules/Gui.h" #include "modules/Gui.h"
#include "df/world.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -20,29 +20,34 @@
// - grab the code from digcircle to get a circle brush - could be nice when painting with obsidian // - grab the code from digcircle to get a circle brush - could be nice when painting with obsidian
// - maybe store the last parameters in a file to make them persistent after dfhack is closed? // - maybe store the last parameters in a file to make them persistent after dfhack is closed?
#include <cstdlib>
#include <iostream> #include <iostream>
#include <vector>
#include <stack>
#include <map> #include <map>
#include <memory>
#include <set> #include <set>
#include <cstdlib>
#include <sstream> #include <sstream>
#include <memory> #include <stack>
#include <vector>
using std::vector; using std::vector;
using std::string; using std::string;
using std::endl; using std::endl;
using std::set; using std::set;
#include "Core.h"
#include "Console.h" #include "Console.h"
#include "Core.h"
#include "Export.h" #include "Export.h"
#include "LuaTools.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "modules/Maps.h"
#include "modules/Gui.h"
#include "TileTypes.h" #include "TileTypes.h"
#include "modules/Gui.h"
#include "modules/MapCache.h" #include "modules/MapCache.h"
#include "LuaTools.h" #include "modules/Maps.h"
#include "df/world.h"
#include "Brushes.h" #include "Brushes.h"
using namespace MapExtras; using namespace MapExtras;
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -13,7 +13,9 @@
#include "modules/Gui.h" #include "modules/Gui.h"
#include "TileTypes.h" #include "TileTypes.h"
#include "modules/MapCache.h" #include "modules/MapCache.h"
#include "df/plant.h" #include "df/plant.h"
#include "df/world.h"
using std::vector; using std::vector;
using std::string; using std::string;

@ -1,13 +1,3 @@
#include "Core.h"
#include <Console.h>
#include <Export.h>
#include <Error.h>
#include <PluginManager.h>
#include <modules/Gui.h>
#include <modules/Screen.h>
#include <modules/Maps.h>
#include <modules/World.h>
#include <TileTypes.h>
#include <vector> #include <vector>
#include <cstdio> #include <cstdio>
#include <stack> #include <stack>
@ -15,22 +5,34 @@
#include <cmath> #include <cmath>
#include <string.h> #include <string.h>
#include <VTableInterpose.h> #include "Console.h"
#include "df/graphic.h" #include "Core.h"
#include "Error.h"
#include "Export.h"
#include "MiscUtils.h"
#include "PluginManager.h"
#include "TileTypes.h"
#include "VTableInterpose.h"
#include "modules/Gui.h"
#include "modules/Maps.h"
#include "modules/Screen.h"
#include "modules/World.h"
#include "df/building_drawbuffer.h"
#include "df/building_trapst.h" #include "df/building_trapst.h"
#include "df/builtin_mats.h"
#include "df/world.h"
#include "df/buildings_other_id.h" #include "df/buildings_other_id.h"
#include "df/builtin_mats.h"
#include "df/flow_info.h"
#include "df/graphic.h"
#include "df/machine.h" #include "df/machine.h"
#include "df/machine_info.h" #include "df/machine_info.h"
#include "df/building_drawbuffer.h" #include "df/report.h"
#include "df/tile_designation.h"
#include "df/ui.h" #include "df/ui.h"
#include "df/viewscreen_dwarfmodest.h"
#include "df/ui_build_selector.h" #include "df/ui_build_selector.h"
#include "df/flow_info.h" #include "df/viewscreen_dwarfmodest.h"
#include "df/report.h" #include "df/world.h"
#include "MiscUtils.h"
using std::vector; using std::vector;
using std::string; using std::string;

@ -1,33 +1,37 @@
// Just show some position data // Just show some position data
#include <iostream>
#include <iomanip>
#include <climits> #include <climits>
#include <vector>
#include <string>
#include <sstream>
#include <ctime>
#include <cstdio> #include <cstdio>
#include <ctime>
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std; using namespace std;
#include "Core.h"
#include "Console.h" #include "Console.h"
#include "Core.h"
#include "Export.h" #include "Export.h"
#include "MiscUtils.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "modules/Units.h"
#include "df/unit_inventory_item.h" #include "modules/Buildings.h"
#include "df/building_nest_boxst.h"
#include "modules/Maps.h"
#include "modules/Gui.h" #include "modules/Gui.h"
#include "modules/Materials.h"
#include "modules/MapCache.h" #include "modules/MapCache.h"
#include "modules/Buildings.h" #include "modules/Maps.h"
#include "MiscUtils.h" #include "modules/Materials.h"
#include "modules/Units.h"
#include "df/world.h" #include "df/block_square_event_grassst.h"
#include "df/world_raws.h" #include "df/block_square_event_world_constructionst.h"
#include "df/building_def.h" #include "df/building_def.h"
#include "df/building_nest_boxst.h"
#include "df/region_map_entry.h" #include "df/region_map_entry.h"
#include "df/unit_inventory_item.h"
#include "df/world.h"
#include "df/world_data.h"
#include "df/world_raws.h"
using std::vector; using std::vector;
using std::string; using std::string;
@ -303,7 +307,7 @@ command_result df_probe (color_ostream &out, vector <string> & parameters)
out << "salty" << endl; out << "salty" << endl;
if(des.bits.water_stagnant) if(des.bits.water_stagnant)
out << "stagnant" << endl; out << "stagnant" << endl;
out.print("%-16s= %s\n", "dig", ENUM_KEY_STR(tile_dig_designation, des.bits.dig).c_str()); out.print("%-16s= %s\n", "dig", ENUM_KEY_STR(tile_dig_designation, des.bits.dig).c_str());
out.print("%-16s= %s\n", "traffic", ENUM_KEY_STR(tile_traffic, des.bits.traffic).c_str()); out.print("%-16s= %s\n", "traffic", ENUM_KEY_STR(tile_traffic, des.bits.traffic).c_str());

@ -1,101 +1,96 @@
#define DF_VERSION 42004 #define DF_VERSION 42004
#include <vector>
#include <time.h>
#include <cstdio>
// some headers required for a plugin. Nothing special, just the basics. // some headers required for a plugin. Nothing special, just the basics.
#include "Console.h"
#include "Core.h" #include "Core.h"
#include <Console.h> #include "DataDefs.h"
#include <Export.h> #include "Export.h"
#include <PluginManager.h> #include "Hooks.h"
#include "MiscUtils.h"
#include "PluginManager.h"
#include "RemoteServer.h"
#include "TileTypes.h"
#include "SDL_events.h"
#include "SDL_keyboard.h"
//DFhack specific headers
#include "modules/Buildings.h"
#include "modules/Gui.h"
#include "modules/Items.h"
#include "modules/MapCache.h"
#include "modules/Maps.h"
#include "modules/Materials.h"
#include "modules/Translation.h"
#include "modules/Units.h"
#include "modules/World.h"
// DF data structure definition headers // DF data structure definition headers
#include "DataDefs.h" #include "df/army.h"
#include "df/world.h" #include "df/army_flags.h"
#include "df/ui.h" #include "df/body_appearance_modifier.h"
#include "df/item.h" #include "df/body_part_layer_raw.h"
#include "df/creature_raw.h"
#include "df/caste_raw.h"
#include "df/body_part_raw.h" #include "df/body_part_raw.h"
#include "df/bp_appearance_modifier.h"
#include "df/building_axle_horizontalst.h"
#include "df/building_bridgest.h"
#include "df/building_def_furnacest.h"
#include "df/building_def_workshopst.h"
#include "df/building_rollersst.h"
#include "df/building_screw_pumpst.h"
#include "df/building_siegeenginest.h"
#include "df/building_water_wheelst.h"
#include "df/building_wellst.h"
#include "df/building_windmillst.h"
#include "df/builtin_mats.h"
#include "df/caste_raw.h"
#include "df/caste_raw.h"
#include "df/color_modifier_raw.h"
#include "df/creature_raw.h"
#include "df/creature_raw.h"
#include "df/descriptor_color.h"
#include "df/descriptor_color.h"
#include "df/descriptor_pattern.h"
#include "df/descriptor_pattern.h"
#include "df/descriptor_shape.h"
#include "df/dfhack_material_category.h"
#include "df/enabler.h"
#include "df/graphic.h"
#include "df/historical_figure.h" #include "df/historical_figure.h"
#include "df/item.h"
#include "df/itemdef.h"
#include "df/job_item.h" #include "df/job_item.h"
#include "df/job_material_category.h" #include "df/job_material_category.h"
#include "df/dfhack_material_category.h"
#include "df/matter_state.h"
#include "df/material_vec_ref.h"
#include "df/builtin_mats.h"
#include "df/map_block_column.h" #include "df/map_block_column.h"
#include "df/material_vec_ref.h"
#include "df/matter_state.h"
#include "df/mental_attribute_type.h"
#include "df/physical_attribute_type.h"
#include "df/plant.h" #include "df/plant.h"
#include "df/plant_raw_flags.h" #include "df/plant_raw_flags.h"
#include "df/region_map_entry.h"
#include "df/tissue.h"
#include "df/ui.h"
#include "df/unit.h"
#include "df/viewscreen_choose_start_sitest.h"
#include "df/world.h"
#include "df/world_data.h"
#include "df/world_region.h"
#include "df/world_region_details.h"
#if DF_VERSION > 40001 #if DF_VERSION > 40001
#include "df/plant_tree_info.h" #include "df/plant_tree_info.h"
#include "df/plant_tree_tile.h" #include "df/plant_tree_tile.h"
#include "df/plant_growth.h" #include "df/plant_growth.h"
#include "df/plant_growth_print.h" #include "df/plant_growth_print.h"
#endif #endif
#include "df/itemdef.h"
#include "df/building_def_workshopst.h"
#include "df/building_def_furnacest.h"
#include "df/building_wellst.h"
#include "df/building_water_wheelst.h"
#include "df/building_screw_pumpst.h"
#include "df/building_axle_horizontalst.h"
#include "df/building_windmillst.h"
#include "df/building_siegeenginest.h"
#include "df/building_rollersst.h"
#include "df/building_bridgest.h"
#include "df/descriptor_color.h"
#include "df/descriptor_pattern.h"
#include "df/descriptor_shape.h"
#include "df/physical_attribute_type.h"
#include "df/mental_attribute_type.h"
#include "df/color_modifier_raw.h"
#include "df/descriptor_color.h"
#include "df/descriptor_pattern.h"
#include "df/region_map_entry.h"
#include "df/world_region_details.h"
#include "df/world_region.h"
#include "df/army.h"
#include "df/army_flags.h"
#include "df/unit.h"
#include "df/creature_raw.h"
#include "df/caste_raw.h"
#include "df/tissue.h"
#include "df/enabler.h"
#include "df/graphic.h"
#include "df/viewscreen_choose_start_sitest.h"
#include "df/bp_appearance_modifier.h"
#include "df/body_part_layer_raw.h"
#include "df/body_appearance_modifier.h"
//DFhack specific headers
#include "modules/Maps.h"
#include "modules/MapCache.h"
#include "modules/Materials.h"
#include "modules/Gui.h"
#include "modules/Translation.h"
#include "modules/Items.h"
#include "modules/Buildings.h"
#include "modules/Units.h"
#include "modules/World.h"
#include "TileTypes.h"
#include "MiscUtils.h"
#include "Hooks.h"
#include "SDL_events.h"
#include "SDL_keyboard.h"
#include <vector>
#include <time.h>
#include <cstdio>
#include "RemoteFortressReader.pb.h" #include "RemoteFortressReader.pb.h"
#include "RemoteServer.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;
@ -2301,7 +2296,7 @@ static command_result GetCreatureRaws(color_ostream &stream, const EmptyMessage
if (!orig_part) if (!orig_part)
continue; continue;
auto send_part = send_caste->add_body_parts(); auto send_part = send_caste->add_body_parts();
send_part->set_token(orig_part->token); send_part->set_token(orig_part->token);
send_part->set_category(orig_part->category); send_part->set_category(orig_part->category);
send_part->set_parent(orig_part->con_part_id); send_part->set_parent(orig_part->con_part_id);
@ -2410,7 +2405,7 @@ static command_result GetCreatureRaws(color_ostream &stream, const EmptyMessage
send_caste->set_description(orig_caste->description); send_caste->set_description(orig_caste->description);
send_caste->set_adult_size(orig_caste->misc.adult_size); send_caste->set_adult_size(orig_caste->misc.adult_size);
} }
for (int j = 0; j < orig_creature->tissue.size(); j++) for (int j = 0; j < orig_creature->tissue.size(); j++)
{ {
auto orig_tissue = orig_creature->tissue[j]; auto orig_tissue = orig_creature->tissue[j];

@ -1,34 +1,33 @@
#include "renderer_light.hpp" #include "renderer_light.hpp"
#include <functional> #include <functional>
#include <string>
#include <math.h> #include <math.h>
#include <string>
#include <vector>
#include "tinythread.h" #include "tinythread.h"
#include "LuaTools.h" #include "LuaTools.h"
#include "modules/Gui.h" #include "modules/Gui.h"
#include "modules/Screen.h"
#include "modules/Maps.h" #include "modules/Maps.h"
#include "modules/Screen.h"
#include "modules/Units.h" #include "modules/Units.h"
#include "df/graphic.h" #include "df/block_square_event_material_spatterst.h"
#include "df/viewscreen_dwarfmodest.h"
#include "df/viewscreen_dungeonmodest.h"
#include "df/flow_info.h"
#include "df/world.h"
#include "df/building.h" #include "df/building.h"
#include "df/building_doorst.h" #include "df/building_doorst.h"
#include "df/building_floodgatest.h" #include "df/building_floodgatest.h"
#include "df/plant.h" #include "df/flow_info.h"
#include "df/plant_raw.h" #include "df/graphic.h"
#include "df/item.h" #include "df/item.h"
#include "df/items_other_id.h" #include "df/items_other_id.h"
#include "df/plant.h"
#include "df/plant_raw.h"
#include "df/unit.h" #include "df/unit.h"
#include "df/viewscreen_dungeonmodest.h"
#include <vector> #include "df/viewscreen_dwarfmodest.h"
#include "df/world.h"
using df::global::gps; using df::global::gps;
using namespace DFHack; using namespace DFHack;

@ -10,8 +10,11 @@
#include "modules/World.h" #include "modules/World.h"
#include "modules/MapCache.h" #include "modules/MapCache.h"
#include "modules/Gui.h" #include "modules/Gui.h"
#include "df/construction.h"
#include "df/block_square_event_frozen_liquidst.h" #include "df/block_square_event_frozen_liquidst.h"
#include "df/construction.h"
#include "df/world.h"
using MapExtras::MapCache; using MapExtras::MapCache;
using std::string; using std::string;

@ -1,12 +1,3 @@
#include "Core.h"
#include <Console.h>
#include <Export.h>
#include <PluginManager.h>
#include <modules/Gui.h>
#include <modules/Screen.h>
#include <modules/Maps.h>
#include <modules/World.h>
#include <TileTypes.h>
#include <vector> #include <vector>
#include <cstdio> #include <cstdio>
#include <stack> #include <stack>
@ -14,26 +5,37 @@
#include <cmath> #include <cmath>
#include <string.h> #include <string.h>
#include <VTableInterpose.h> #include "Console.h"
#include "df/graphic.h" #include "Core.h"
#include "df/building_workshopst.h" #include "Export.h"
#include "MiscUtils.h"
#include "PluginManager.h"
#include "TileTypes.h"
#include "VTableInterpose.h"
#include "modules/Gui.h"
#include "modules/Maps.h"
#include "modules/Screen.h"
#include "modules/World.h"
#include "df/building_def_workshopst.h" #include "df/building_def_workshopst.h"
#include "df/item_liquid_miscst.h" #include "df/building_drawbuffer.h"
#include "df/power_info.h" #include "df/building_workshopst.h"
#include "df/workshop_type.h"
#include "df/builtin_mats.h"
#include "df/world.h"
#include "df/buildings_other_id.h" #include "df/buildings_other_id.h"
#include "df/machine.h" #include "df/builtin_mats.h"
#include "df/flow_info.h"
#include "df/graphic.h"
#include "df/item_liquid_miscst.h"
#include "df/job.h" #include "df/job.h"
#include "df/building_drawbuffer.h" #include "df/machine.h"
#include "df/power_info.h"
#include "df/report.h"
#include "df/tile_designation.h"
#include "df/ui.h" #include "df/ui.h"
#include "df/viewscreen_dwarfmodest.h"
#include "df/ui_build_selector.h" #include "df/ui_build_selector.h"
#include "df/flow_info.h" #include "df/viewscreen_dwarfmodest.h"
#include "df/report.h" #include "df/workshop_type.h"
#include "df/world.h"
#include "MiscUtils.h"
/* /*
* This plugin implements a steam engine workshop. It activates * This plugin implements a steam engine workshop. It activates

@ -19,27 +19,33 @@
// Options (tiletypes-command): // Options (tiletypes-command):
// (anything) - run the given command // (anything) - run the given command
#include <cstdlib>
#include <iostream> #include <iostream>
#include <vector>
#include <map> #include <map>
#include <set> #include <set>
#include <cstdlib>
#include <sstream> #include <sstream>
#include <vector>
using std::vector; using std::vector;
using std::string; using std::string;
using std::endl; using std::endl;
using std::set; using std::set;
#include "Core.h"
#include "Console.h" #include "Console.h"
#include "Core.h"
#include "Export.h" #include "Export.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "modules/Maps.h"
#include "modules/Gui.h"
#include "TileTypes.h" #include "TileTypes.h"
#include "modules/Gui.h"
#include "modules/MapCache.h" #include "modules/MapCache.h"
#include "modules/Maps.h"
#include "df/tile_dig_designation.h" #include "df/tile_dig_designation.h"
#include "df/world.h"
#include "Brushes.h" #include "Brushes.h"
using namespace MapExtras; using namespace MapExtras;
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;

@ -14,6 +14,8 @@
#include "TileTypes.h" #include "TileTypes.h"
#include "df/deep_vein_hollow.h" #include "df/deep_vein_hollow.h"
#include "df/map_block.h"
#include "df/world.h"
using namespace DFHack; using namespace DFHack;
using namespace df::enums; using namespace df::enums;