terrain_type::terrain_type(const terrain_type& base, const terrain_type& overlay) : minimap_image_(base.minimap_image_), minimap_image_overlay_(overlay.minimap_image_), editor_image_(overlay.editor_image_), id_(base.id_+"^"+overlay.id_), name_(overlay.name_), editor_name_(overlay.editor_name_), description_(overlay.description()), number_(t_translation::t_terrain(base.number_.base, overlay.number_.overlay)), mvt_type_(overlay.mvt_type_), def_type_(overlay.def_type_), union_type_(), height_adjust_(base.height_adjust_), height_adjust_set_(base.height_adjust_set_), submerge_(base.submerge_), submerge_set_(base.submerge_set_), light_modification_(base.light_modification_ + overlay.light_modification_), max_light_(std::max(base.max_light_, overlay.max_light_)), min_light_(std::min(base.min_light_, overlay.min_light_)), heals_(std::max<int>(base.heals_, overlay.heals_)), income_description_(), income_description_ally_(), income_description_enemy_(), income_description_own_(), editor_group_(), village_(base.village_ || overlay.village_), castle_(base.castle_ || overlay.castle_), keep_(base.keep_ || overlay.keep_), overlay_(false), combined_(true), editor_default_base_(), hide_in_editor_(base.hide_in_editor_ || overlay.hide_in_editor_) { if(description_.empty()) { description_ = base.description(); } if(overlay.height_adjust_set_) { height_adjust_set_ = true; height_adjust_ = overlay.height_adjust_; } if(overlay.submerge_set_) { submerge_set_ = true; submerge_ = overlay.submerge_; } merge_alias_lists(mvt_type_, base.mvt_type_); merge_alias_lists(def_type_, base.def_type_); union_type_ = mvt_type_; union_type_.insert( union_type_.end(), def_type_.begin(), def_type_.end() ); // remove + and - union_type_.erase(std::remove(union_type_.begin(), union_type_.end(), t_translation::MINUS), union_type_.end()); union_type_.erase(std::remove(union_type_.begin(), union_type_.end(), t_translation::PLUS), union_type_.end()); // remove doubles std::sort(union_type_.begin(),union_type_.end()); union_type_.erase(std::unique(union_type_.begin(), union_type_.end()), union_type_.end()); //mouse over message are only shown on villages if(base.village_) { income_description_ = base.income_description_; income_description_ally_ = base.income_description_ally_; income_description_enemy_ = base.income_description_enemy_; income_description_own_ = base.income_description_own_; } else if (overlay.village_) { income_description_ = overlay.income_description_; income_description_ally_ = overlay.income_description_ally_; income_description_enemy_ = overlay.income_description_enemy_; income_description_own_ = overlay.income_description_own_; } }
void show_terrain_description(CVideo& video, const terrain_type &t) { help::show_terrain_help(video, t.id(), t.hide_in_editor() || t.is_combined()); }
void show_terrain_description(const terrain_type &t) { help::show_terrain_help(*display::get_singleton(), t.id(), t.hide_in_editor() || t.is_combined()); }