Author: dragonking
Date: Fri Jul  4 23:22:34 2008
New Revision: 27725

URL: http://svn.gna.org/viewcvs/wesnoth?rev=27725&view=rev
Log:
*new class unit_type_callable
*added missing unit_callable members: type, value, vars
*renamed unit_callable 'value' to 'cost'

Modified:
    trunk/src/callable_objects.cpp
    trunk/src/callable_objects.hpp

Modified: trunk/src/callable_objects.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/callable_objects.cpp?rev=27725&r1=27724&r2=27725&view=diff
==============================================================================
--- trunk/src/callable_objects.cpp (original)
+++ trunk/src/callable_objects.cpp Fri Jul  4 23:22:34 2008
@@ -105,8 +105,8 @@
        } else if(key == "movement_left") {
                return variant(u_.movement_left());
        } else if(key == "side") {
-               return variant(u_.side());
-       } else if(key == "value") {
+               return variant(u_.side()-1);
+       } else if(key == "cost") {
                return variant(u_.cost());
        } else if(key == "vars") {
                if(u_.formula_vars()) {
@@ -127,6 +127,7 @@
        inputs->push_back(game_logic::formula_input("loc", FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("id", FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("leader", 
FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("type", FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("hitpoints", 
FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("max_hitpoints", 
FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("experience", 
FORMULA_READ_ONLY));
@@ -135,6 +136,44 @@
        inputs->push_back(game_logic::formula_input("total_movement", 
FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("movement_left", 
FORMULA_READ_ONLY));
        inputs->push_back(game_logic::formula_input("side", FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("cost", FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("vars", FORMULA_READ_ONLY));
+}
+
+variant unit_type_callable::get_value(const std::string& key) const
+{
+       if(key == "id") {
+               return variant(u_.id());
+       } else if(key == "type") {
+               return variant(u_.type_name());
+       } else if(key == "alignment") {
+               return variant(u_.alignment_id(u_.alignment()));
+       } else if(key == "hitpoints") {
+               return variant(u_.hitpoints());
+       } else if(key == "experience") {
+               return variant(u_.experience_needed(true));
+       } else if(key == "level") {
+               return variant(u_.level());
+       } else if(key == "total_movement") {
+               return variant(u_.movement());
+       } else if(key == "cost") {
+               return variant(u_.cost());
+       } else {
+               return variant();
+       }
+}
+
+void unit_type_callable::get_inputs(std::vector<game_logic::formula_input>* 
inputs) const
+{
+       using game_logic::FORMULA_READ_ONLY;
+       inputs->push_back(game_logic::formula_input("id", FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("type", FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("alignment", 
FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("hitpoints", 
FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("experience", 
FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("level", 
FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("total_movement", 
FORMULA_READ_ONLY));
+       inputs->push_back(game_logic::formula_input("cost", FORMULA_READ_ONLY));
 }
 
 variant terrain_callable::get_value(const std::string& key) const

Modified: trunk/src/callable_objects.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/callable_objects.hpp?rev=27725&r1=27724&r2=27725&view=diff
==============================================================================
--- trunk/src/callable_objects.hpp (original)
+++ trunk/src/callable_objects.hpp Fri Jul  4 23:22:34 2008
@@ -154,6 +154,19 @@
        const unit& u_;
 };
 
+class unit_type_callable : public game_logic::formula_callable {
+public:
+       unit_type_callable(const unit_type& u)
+         : u_(u)
+       {}
+
+       const unit_type& get_unit_type() const { return u_; }
+       variant get_value(const std::string& key) const;
+       void get_inputs(std::vector<game_logic::formula_input>* inputs) const;
+private:
+       const unit_type& u_;
+};
+
 CALLABLE_WRAPPER_START(team)
 CALLABLE_WRAPPER_INPUT(gold)
 CALLABLE_WRAPPER_INPUT(start_gold)


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

Reply via email to