diff --git a/src/script/api/script_list.hpp b/src/script/api/script_list.hpp index d163057e39..f7ef9cd8f1 100644 --- a/src/script/api/script_list.hpp +++ b/src/script/api/script_list.hpp @@ -12,6 +12,7 @@ #define SCRIPT_LIST_HPP #include "script_object.hpp" +#include "script_controller.hpp" #include "../../3rdparty/cpp-btree/safe_btree_set.h" #include "../../3rdparty/cpp-btree/safe_btree_map.h" @@ -62,11 +63,14 @@ protected: template static void FillList(ScriptList *list, ItemValid item_valid, ItemFilter item_filter) { + int opcode_charge = 0; for (const T *item : T::Iterate()) { if (!item_valid(item)) continue; if (!item_filter(item)) continue; list->AddItem(item->index); + opcode_charge += 3; } + ScriptController::DecreaseOps(opcode_charge + (T::GetNumItems() / 2)); } template