diff --git a/array_lt_op.h b/array_lt_op.h new file mode 100644 index 0000000..3399e18 --- /dev/null +++ b/array_lt_op.h @@ -0,0 +1,27 @@ + +#ifndef ARRAY_LT_OP_H +#define ARRAY_LT_OP_H + +#include "core/array.h" +#include "core/math/math_defs.h" +#include "core/variant.h" + +bool operator<(const Array &p_array_a, const Array &p_array_b) { + int a_len = p_array_a.size(); + int b_len = p_array_b.size(); + + int min_cmp = MIN(a_len, b_len); + + for (int i = 0; i < min_cmp; i++) { + if (p_array_a.operator[](i) < p_array_b[i]) { + return true; + } else if (p_array_b[i] < p_array_a.operator[](i)) { + return false; + } + } + + return a_len < b_len; +} + + +#endif diff --git a/rtile_set.h b/rtile_set.h index 689b791..6c841da 100644 --- a/rtile_set.h +++ b/rtile_set.h @@ -31,6 +31,7 @@ #ifndef RTILE_SET_H #define RTILE_SET_H +#include "array_lt_op.h" #include "core/resource.h" #include "core/object.h" #include "core/vector.h"