Author: dragonking
Date: Sat Jul 26 18:53:03 2008
New Revision: 28219

URL: http://svn.gna.org/viewcvs/wesnoth?rev=28219&view=rev
Log:
Added get_ability_list and get_traits_list functions to unit class

Modified:
    trunk/src/unit.cpp
    trunk/src/unit.hpp
    trunk/src/unit_abilities.cpp

Modified: trunk/src/unit.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit.cpp?rev=28219&r1=28218&r2=28219&view=diff
==============================================================================
--- trunk/src/unit.cpp (original)
+++ trunk/src/unit.cpp Sat Jul 26 18:53:03 2008
@@ -449,6 +449,20 @@
        for(std::vector<config*>::const_iterator j2 = traits.begin(); j2 != 
traits.end(); ++j2) {
                modifications_.add_child("trait",**j2);
        }
+}
+
+std::vector<std::string> unit::get_traits_list() const 
+{
+       std::vector<std::string> res;
+
+       config::child_list const &mods = modifications_.get_children("trait");
+       for(config::child_list::const_iterator j = mods.begin(), j_end = 
mods.end(); j != j_end; ++j) 
+       {
+                       std::string const &id = (**j)["id"];
+                       if (!id.empty())
+                               res.push_back(id);
+       }
+       return res;
 }
 
 void unit::advance_to(const unit_type* t, bool use_traits, game_state* state)

Modified: trunk/src/unit.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit.hpp?rev=28219&r1=28218&r2=28219&view=diff
==============================================================================
--- trunk/src/unit.hpp (original)
+++ trunk/src/unit.hpp Sat Jul 26 18:53:03 2008
@@ -208,6 +208,7 @@
 
        bool invalidate(const gamemap::location &loc);
        const t_string& traits_description() const { return 
traits_description_; }
+       std::vector<std::string> get_traits_list() const;
 
        int cost () const { return unit_value_; }
 
@@ -275,6 +276,7 @@
        unit_ability_list get_abilities(const std::string& ability, const 
gamemap::location& loc) const;
        std::vector<std::string> ability_tooltips(const gamemap::location& loc) 
const;
        std::vector<std::string> unit_ability_tooltips() const;
+       std::vector<std::string> get_ability_list() const;
        bool has_ability_type(const std::string& ability) const;
        bool abilities_affects_adjacent() const;
 

Modified: trunk/src/unit_abilities.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_abilities.cpp?rev=28219&r1=28218&r2=28219&view=diff
==============================================================================
--- trunk/src/unit_abilities.cpp (original)
+++ trunk/src/unit_abilities.cpp Sat Jul 26 18:53:03 2008
@@ -218,6 +218,24 @@
                                res.push_back(name);
                                res.push_back((**j)["description"]);
                        }
+               }
+       }
+       return res;
+}
+
+std::vector<std::string> unit::get_ability_list() const
+{
+       std::vector<std::string> res;
+
+       const config* abilities = cfg_.child("abilities");
+       if (!abilities) return res;
+       const config::child_map& list_map = abilities->all_children();
+       for (config::child_map::const_iterator i = list_map.begin(), i_end = 
list_map.end(); i != i_end; ++i) {
+               for (config::child_list::const_iterator j = i->second.begin(), 
j_end = i->second.end(); j != j_end; ++j) {
+                       std::string const &id = (**j)["id"];
+
+                       if (!id.empty())
+                               res.push_back(id);
                }
        }
        return res;


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

Reply via email to