#include "AngelScriptItemUseScript.hpp" #include "AngelScriptFunctionCall.hpp" #include "AngelScriptResolver.hpp" #include "AngelscriptUserdata.hpp" NativeArray>* AngelScriptItemUseScript::GetEffectParameters(const ArbUt::List& ls) { return new NativeArray>(&ls); } void AngelScriptItemUseScript::OnInitialize(const ArbUt::List& parameters) { if (__OnInitialize.Exists) { AngelScriptUtils::AngelscriptFunctionCall( __OnInitialize.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { auto* arr = GetEffectParameters(parameters); ctx->SetArgAddress(0, arr); }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } } bool AngelScriptItemUseScript::IsItemUsable() const { if (!__IsItemUsable.Exists) { return CreatureLib::Battling::ItemUseScript::IsItemUsable(); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsItemUsable.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } bool AngelScriptItemUseScript::IsCreatureUseItem() const { if (!__IsPokemonUseItem.Exists) { return CreatureLib::Battling::ItemUseScript::IsCreatureUseItem(); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsPokemonUseItem.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } bool AngelScriptItemUseScript::IsUseValidForCreature(CreatureLib::Battling::Creature* creature) const { if (!__IsUseValidForPokemon.Exists) { return CreatureLib::Battling::ItemUseScript::IsUseValidForCreature(creature); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsUseValidForPokemon.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, (void*)creature); }, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } bool AngelScriptItemUseScript::IsHoldable() const { if (!__IsHoldable.Exists) { return CreatureLib::Battling::ItemUseScript::IsHoldable(); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsHoldable.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } void AngelScriptItemUseScript::OnUse() const { if (!__OnUse.Exists) { CreatureLib::Battling::ItemUseScript::OnUse(); } AngelScriptUtils::AngelscriptFunctionCall( __OnUse.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } void AngelScriptItemUseScript::OnCreatureUse(CreatureLib::Battling::Creature* creature) const { if (!__OnPokemonUse.Exists) { CreatureLib::Battling::ItemUseScript::OnUse(); } AngelScriptUtils::AngelscriptFunctionCall( __OnPokemonUse.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, (void*)creature); }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); }