From c0bdc736061ef6d6183f2b77b911acc4b3baee0e Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 13 Feb 2022 13:47:30 +0100 Subject: [PATCH] Update for item use scripts to be used in battle --- .../AngelScript/AngelScriptItemUseScript.cpp | 17 +++++++++++------ .../AngelScript/AngelScriptItemUseScript.hpp | 4 ++-- .../TypeRegistry/BasicScriptClass.cpp | 4 ++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.cpp b/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.cpp index 5ea8b71..5e0c9e3 100644 --- a/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.cpp +++ b/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.cpp @@ -65,20 +65,25 @@ bool AngelScriptItemUseScript::IsHoldable() const { [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } -void AngelScriptItemUseScript::OnUse() const { +void AngelScriptItemUseScript::OnUse(CreatureLib::Battling::Battle* battle) const { if (!__OnUse.Exists) { - CreatureLib::Battling::ItemUseScript::OnUse(); + CreatureLib::Battling::ItemUseScript::OnUse(battle); } AngelScriptUtils::AngelscriptFunctionCall( __OnUse.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, - [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) {}); + [&]([[maybe_unused]] asIScriptContext* ctx) { + ctx->SetArgObject(0, battle); + }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } -void AngelScriptItemUseScript::OnCreatureUse(CreatureLib::Battling::Creature* creature) const { +void AngelScriptItemUseScript::OnCreatureUse(CreatureLib::Battling::Creature* creature, bool isBattle) const { if (!__OnPokemonUse.Exists) { - CreatureLib::Battling::ItemUseScript::OnUse(); + CreatureLib::Battling::ItemUseScript::OnCreatureUse(creature, isBattle); } AngelScriptUtils::AngelscriptFunctionCall( __OnPokemonUse.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, - [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, (void*)creature); }, + [&]([[maybe_unused]] asIScriptContext* ctx) { + ctx->SetArgObject(0, (void*)creature); + ctx->SetArgByte(1, isBattle); + }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } diff --git a/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.hpp b/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.hpp index 4ee17ea..751f268 100644 --- a/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.hpp +++ b/src/ScriptResolving/AngelScript/AngelScriptItemUseScript.hpp @@ -25,8 +25,8 @@ public: bool IsHoldable() const override; - void OnUse() const override; - void OnCreatureUse(CreatureLib::Battling::Creature* creature) const override; + void OnUse(CreatureLib::Battling::Battle* battle) const override; + void OnCreatureUse(CreatureLib::Battling::Creature* creature, bool isBattle) const override; private: asIScriptObject* _scriptObject; diff --git a/src/ScriptResolving/AngelScript/TypeRegistry/BasicScriptClass.cpp b/src/ScriptResolving/AngelScript/TypeRegistry/BasicScriptClass.cpp index bd492be..48086a8 100644 --- a/src/ScriptResolving/AngelScript/TypeRegistry/BasicScriptClass.cpp +++ b/src/ScriptResolving/AngelScript/TypeRegistry/BasicScriptClass.cpp @@ -84,8 +84,8 @@ shared abstract class ItemUseScript { bool IsHoldable() { return false; } - void OnUse() { }; - void OnPokemonUse(Pokemon@ target) { }; + void OnUse(Battle@ battle) { }; + void OnPokemonUse(Pokemon@ target, bool isBattle) { }; } )"); Ensure(r >= 0);