Author: alink
Date: Wed Apr 15 20:56:55 2009
New Revision: 34944

URL: http://svn.gna.org/viewcvs/wesnoth?rev=34944&view=rev
Log:
Add a 'all' key to [hide_help], use 'all=yes' to hide all units
Allow to use the 'race' key in [not]
syntax: [hide_help] all=yes [not] race=human,elf... show only these 2 races

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=34944&r1=34943&r2=34944&view=diff
==============================================================================
--- trunk/src/unit_types.cpp (original)
+++ trunk/src/unit_types.cpp Wed Apr 15 20:56:55 2009
@@ -1177,15 +1177,20 @@
        build_all(unit_type::CREATED);
 
        if (const config &hide = cfg.child("hide_help")) {
+               hide_help_all_ = utils::string_bool(hide["all"], false);
+
                std::vector<std::string> types = utils::split(hide["type"]);
-               hide_types_.insert(types.begin(), types.end());
+               hide_help_[TYPE].insert(types.begin(), types.end());
                
                std::vector<std::string> races = utils::split(hide["race"]);
-               hide_races_.insert(races.begin(), races.end());
+               hide_help_[RACE].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());
+                       hide_help_[NOT_TYPE].insert(n_types.begin(), 
n_types.end());
+                       
+                       std::vector<std::string> n_races = 
utils::split(hide_not["race"]);
+                       hide_help_[NOT_RACE].insert(n_races.begin(), 
n_races.end());
                }
        }
 }
@@ -1295,10 +1300,10 @@
     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);
+bool unit_type_data::unit_type_map_wrapper::hide_help(const std::string& type, 
const std::string& race) const
+{
+       return (hide_help_all_ || hide_help_[RACE].count(race) || 
hide_help_[TYPE].count(type))
+               && !(hide_help_[NOT_RACE].count(race) || 
hide_help_[NOT_TYPE].count(type));
 }
 
 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=34944&r1=34943&r2=34944&view=diff
==============================================================================
--- trunk/src/unit_types.hpp (original)
+++ trunk/src/unit_types.hpp Wed Apr 15 20:56:55 2009
@@ -384,9 +384,9 @@
             movement_type_map movement_types_;
             race_map races_;
 
-                       std::set<std::string> hide_types_;
-                       std::set<std::string> hide_races_;
-                       std::set<std::string> hide_not_types_;
+                       bool hide_help_all_;
+                       enum HIDE_KEY {TYPE=0, RACE, NOT_TYPE, NOT_RACE, 
NB_HIDE_KEY};
+                       std::set<std::string> hide_help_[NB_HIDE_KEY];
 
             const config* unit_cfg_;
        };


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to