Author: dragonking
Date: Mon Oct 13 16:53:01 2008
New Revision: 30119
URL: http://svn.gna.org/viewcvs/wesnoth?rev=30119&view=rev
Log:
New formula function 'index_of'
Modified:
trunk/src/formula_function.cpp
Modified: trunk/src/formula_function.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/formula_function.cpp?rev=30119&r1=30118&r2=30119&view=diff
==============================================================================
--- trunk/src/formula_function.cpp (original)
+++ trunk/src/formula_function.cpp Mon Oct 13 16:53:01 2008
@@ -369,6 +369,27 @@
}
return variant( &tmp );
+ }
+};
+
+class index_of_function : public function_expression {
+public:
+ explicit index_of_function(const args_list& args)
+ : function_expression("index_of", args, 2, 2)
+ {}
+
+private:
+ variant execute(const formula_callable& variables) const {
+ const variant value = args()[0]->evaluate(variables);
+ const variant list = args()[1]->evaluate(variables);
+
+ for(size_t i = 0; i < list.num_elements(); i++ ) {
+ if( list[i] == value) {
+ return variant(i);
+ }
+ }
+
+ return variant( -1 );
}
};
@@ -888,6 +909,7 @@
FUNCTION(null);
FUNCTION(refcount);
FUNCTION(loc);
+ FUNCTION(index_of);
FUNCTION(keys);
FUNCTION(values);
FUNCTION(tolist);
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits