diff --git a/library/modules/Items.cpp b/library/modules/Items.cpp index dbce89576..253e09468 100644 --- a/library/modules/Items.cpp +++ b/library/modules/Items.cpp @@ -1158,6 +1158,7 @@ int Items::getItemBaseValue(int16_t item_type, int16_t item_subtype, int16_t mat case item_type::MEAT: case item_type::PLANT: + case item_type::PLANT_GROWTH: case item_type::CHEESE: value = 2; break; diff --git a/library/modules/MapCache.cpp b/library/modules/MapCache.cpp index 133ebedf9..da7683351 100644 --- a/library/modules/MapCache.cpp +++ b/library/modules/MapCache.cpp @@ -845,6 +845,15 @@ t_matpair MapExtras::BlockInfo::getBaseMaterial(df::tiletype tt, df::coord2d pos case ROOT: case TREE: case PLANT: + rv.mat_type = MaterialInfo::PLANT_BASE; + if (auto plant = plants[block->map_pos + df::coord(x,y,0)]) + { + if (auto raw = df::plant_raw::find(plant->material)) + { + rv.mat_type = raw->material_defs.type_basic_mat; + rv.mat_index = raw->material_defs.idx_basic_mat; + } + } break; case GRASS_LIGHT: diff --git a/library/modules/Translation.cpp b/library/modules/Translation.cpp index b42cf4d2d..48ec646eb 100644 --- a/library/modules/Translation.cpp +++ b/library/modules/Translation.cpp @@ -46,6 +46,7 @@ using namespace df::enums; using df::global::world; using df::global::d_init; +using df::global::gametype; bool Translation::IsValid () { @@ -153,7 +154,7 @@ string Translation::TranslateName(const df::language_name * name, bool inEnglish if (!name->nickname.empty()) { word = "`" + name->nickname + "'"; - switch (d_init ? d_init->nickname[*df::global::gametype] : d_init_nickname::CENTRALIZE) + switch ((d_init && gametype) ? d_init->nickname[*gametype] : d_init_nickname::CENTRALIZE) { case d_init_nickname::REPLACE_ALL: out = word; diff --git a/plugins/reveal.cpp b/plugins/reveal.cpp index 73c8f7be8..1cafc3ca6 100644 --- a/plugins/reveal.cpp +++ b/plugins/reveal.cpp @@ -147,8 +147,8 @@ void revealAdventure(color_ostream &out) { df::map_block *block = world->map.map_blocks[i]; // in 'no-hell'/'safe' mode, don't reveal blocks with hell and adamantine -// if (!isSafe(block->map_pos)) -// continue; + if (!isSafe(block->map_pos)) + continue; designations40d & designations = block->designation; // for each tile in block for (uint32_t x = 0; x < 16; x++) for (uint32_t y = 0; y < 16; y++)