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

Reply via email to