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