Author: alink
Date: Wed Apr 15 19:36:56 2009
New Revision: 34942
URL: http://svn.gna.org/viewcvs/wesnoth?rev=34942&view=rev
Log:
Add a [not] tag into the recent [hide_help]
This allow to hide a whole mainline race except the types used in the campaign.
syntax: [hide_help] race=human [not] type=Thief [/not][/hide_help]
Also rename keys races->race and types->type (as used in unit filter).
Modified:
trunk/src/unit_types.cpp
trunk/src/unit_types.hpp
Modified: trunk/src/unit_types.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_types.cpp?rev=34942&r1=34941&r2=34942&view=diff
==============================================================================
--- trunk/src/unit_types.cpp (original)
+++ trunk/src/unit_types.cpp Wed Apr 15 19:36:56 2009
@@ -1047,8 +1047,7 @@
}
bool unit_type::hide_help() const {
- return hide_help_ || unit_type_data::types().hide_types().count(id_)>0
- ||
unit_type_data::types().hide_races().count(race_->id())>0;
+ return hide_help_ || unit_type_data::types().hide_help(id_,
race_->id());
}
// Allow storing "advances from" info for convenience in Help.
@@ -1178,13 +1177,16 @@
build_all(unit_type::CREATED);
if (const config &hide = cfg.child("hide_help")) {
- std::vector<std::string> hide_types_list =
- utils::split(hide["types"]);
- hide_types_.insert(hide_types_list.begin(),
hide_types_list.end());
+ std::vector<std::string> types = utils::split(hide["type"]);
+ hide_types_.insert(types.begin(), types.end());
- std::vector<std::string> hide_races_list =
- utils::split(hide["races"]);
- hide_races_.insert(hide_races_list.begin(),
hide_races_list.end());
+ std::vector<std::string> races = utils::split(hide["race"]);
+ hide_races_.insert(races.begin(), races.end());
+
+ if (const config &hide_not = hide.child("not")) {
+ std::vector<std::string> n_types =
utils::split(hide_not["type"]);
+ hide_not_types_.insert(n_types.begin(), n_types.end());
+ }
}
}
@@ -1291,6 +1293,12 @@
}
return ut->second;
+}
+
+bool unit_type_data::unit_type_map_wrapper::hide_help(const std::string&
type_id, const std::string& race_id) const
+{
+ return (hide_types_.count(type_id) || hide_races_.count(race_id))
+ && !hide_not_types_.count(type_id);
}
void unit_type_data::unit_type_map_wrapper::add_advancefrom(const config&
unit_cfg) const
Modified: trunk/src/unit_types.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_types.hpp?rev=34942&r1=34941&r2=34942&view=diff
==============================================================================
--- trunk/src/unit_types.hpp (original)
+++ trunk/src/unit_types.hpp Wed Apr 15 19:36:56 2009
@@ -358,8 +358,8 @@
void build_all(unit_type::BUILD_STATUS status) const;
- const std::set<std::string>& hide_types() const {return
hide_types_;}
- const std::set<std::string>& hide_races() const {return
hide_races_;}
+ // check if the root hide_help contains these ids
+ bool hide_help(const std::string& type_id, const
std::string& race_id) const;
private:
unit_type_map_wrapper();
@@ -386,6 +386,7 @@
std::set<std::string> hide_types_;
std::set<std::string> hide_races_;
+ std::set<std::string> hide_not_types_;
const config* unit_cfg_;
};
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits