From e1770fa62bebf1fe3fc4af7a6dbd9c7260b51c6e Mon Sep 17 00:00:00 2001 From: Robert Heinrich Date: Mon, 23 Apr 2012 00:34:19 +0200 Subject: [PATCH] regrass: leaves tiles with the no_grow flag alone (avoids regrassing roads etc you embark on) --- plugins/probe.cpp | 33 +++++++++++++++++++++++++++++++++ plugins/regrass.cpp | 3 ++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/plugins/probe.cpp b/plugins/probe.cpp index b3b288374..4c8179e52 100644 --- a/plugins/probe.cpp +++ b/plugins/probe.cpp @@ -314,6 +314,39 @@ command_result df_probe (color_ostream &out, vector & parameters) out << "global feature idx: " << block.global_feature << endl; out << std::endl; + + if(block.occupancy[tileX][tileY].bits.no_grow) + out << "no grow" << endl; + + for(size_t e=0; egetType(); + switch(blevtype) + { + case df::block_square_event_type::grass: + { + df::block_square_event_grassst * gr_ev = (df::block_square_event_grassst *)blev; + if(gr_ev->amount[tileX][tileY] > 0) + { + out << "amount of grass: " << (int)gr_ev->amount[tileX][tileY] << endl; + } + break; + } + case df::block_square_event_type::world_construction: + { + df::block_square_event_world_constructionst * co_ev = (df::block_square_event_world_constructionst*)blev; + uint16_t bits = co_ev->tile_bitmask[tileY]; + out << "construction bits: " << bits << endl; + break; + } + default: + //out << "unhandled block event type!" << endl; + break; + } + } + + return CR_OK; } diff --git a/plugins/regrass.cpp b/plugins/regrass.cpp index 64aa3a472..5475862ae 100644 --- a/plugins/regrass.cpp +++ b/plugins/regrass.cpp @@ -83,7 +83,8 @@ command_result df_regrass (color_ostream &out, vector & parameters) { if ( tileShape(cur->tiletype[x][y]) != tiletype_shape::FLOOR || cur->designation[x][y].bits.subterranean - || cur->occupancy[x][y].bits.building) + || cur->occupancy[x][y].bits.building + || cur->occupancy[x][y].bits.no_grow) continue; // don't touch furrowed tiles (dirt roads made on soil)