Adds initialization from parameters to ItemUseScript.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -2,21 +2,23 @@
|
||||
#define PKMNLIB_ANGELSCRIPTITEMUSESCRIPT_HPP
|
||||
|
||||
#include <CreatureLib/Battling/ScriptHandling/ItemUseScript.hpp>
|
||||
#include "../../../extern/angelscript_addons/scriptarray/scriptarray.h"
|
||||
#include "AngelScriptFunctionCall.hpp"
|
||||
|
||||
class AngelScriptResolver;
|
||||
|
||||
class AngelScriptItemUseScript final : public CreatureLib::Battling::ItemUseScript {
|
||||
public:
|
||||
AngelScriptItemUseScript(asIScriptObject* scriptObject, const AngelScriptResolver* resolver)
|
||||
AngelScriptItemUseScript(asIScriptObject* scriptObject, AngelScriptResolver* resolver)
|
||||
: _scriptObject(scriptObject), _resolver(resolver) {}
|
||||
|
||||
~AngelScriptItemUseScript(){
|
||||
if (_scriptObject != nullptr){
|
||||
~AngelScriptItemUseScript() {
|
||||
if (_scriptObject != nullptr) {
|
||||
_scriptObject->Release();
|
||||
}
|
||||
}
|
||||
|
||||
void OnInitialize(const ArbUt::List<CreatureLib::Library::EffectParameter*>& parameters) override;
|
||||
[[nodiscard]] bool IsItemUsable() const override;
|
||||
[[nodiscard]] bool IsCreatureUseItem() const override;
|
||||
bool IsUseValidForCreature(CreatureLib::Battling::Creature* creature) const override;
|
||||
@@ -28,7 +30,7 @@ public:
|
||||
|
||||
private:
|
||||
asIScriptObject* _scriptObject;
|
||||
const AngelScriptResolver* _resolver;
|
||||
AngelScriptResolver* _resolver;
|
||||
|
||||
struct FunctionInfo {
|
||||
bool Exists = false;
|
||||
@@ -43,8 +45,11 @@ private:
|
||||
return FunctionInfo{.Exists = true, .Function = val};
|
||||
}
|
||||
|
||||
CScriptArray* GetEffectParameters(const ArbUt::List<CreatureLib::Library::EffectParameter*>& ls);
|
||||
|
||||
#define ITEM_USE_SCRIPT_HOOK_FUNCTION(name, decl) FunctionInfo __##name = Initialize(decl);
|
||||
|
||||
ITEM_USE_SCRIPT_HOOK_FUNCTION(OnInitialize, "void OnInitialize(const array<EffectParameter@> &in parameters)");
|
||||
ITEM_USE_SCRIPT_HOOK_FUNCTION(IsItemUsable, "bool IsItemUsable()");
|
||||
ITEM_USE_SCRIPT_HOOK_FUNCTION(IsPokemonUseItem, "bool IsPokemonUseItem()");
|
||||
ITEM_USE_SCRIPT_HOOK_FUNCTION(IsUseValidForPokemon, "bool IsUseValidForPokemon(Pokemon@ target)");
|
||||
|
||||
Reference in New Issue
Block a user