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:
@@ -1,6 +1,31 @@
|
||||
#include "AngelScriptItemUseScript.hpp"
|
||||
#include "AngelScriptResolver.hpp"
|
||||
|
||||
CScriptArray* AngelScriptItemUseScript::GetEffectParameters(const ArbUt::List<CreatureLib::Library::EffectParameter*>& ls) {
|
||||
asITypeInfo* t = _resolver->GetBaseType("array<EffectParameter@>"_cnc);
|
||||
CScriptArray* arr = CScriptArray::Create(t, ls.Count());
|
||||
for (size_t i = 0; i < ls.Count(); i++) {
|
||||
arr->SetValue(i, (void**)&ls[i]);
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
void AngelScriptItemUseScript::OnInitialize(
|
||||
const ArbUt::List<CreatureLib::Library::EffectParameter*>& parameters) {
|
||||
if (__OnInitialize.Exists) {
|
||||
CScriptArray* arr = nullptr;
|
||||
AngelScriptUtils::AngelscriptFunctionCall(
|
||||
__OnInitialize.Function, _resolver->GetContextPool(), _scriptObject, ""_cnc,
|
||||
[&]([[maybe_unused]] asIScriptContext* ctx) {
|
||||
arr = GetEffectParameters(parameters);
|
||||
ctx->SetArgAddress(0, arr);
|
||||
},
|
||||
[&]([[maybe_unused]] asIScriptContext* ctx) {});
|
||||
|
||||
arr->Release();
|
||||
}
|
||||
}
|
||||
|
||||
bool AngelScriptItemUseScript::IsItemUsable() const {
|
||||
if (!__IsItemUsable.Exists) {
|
||||
return CreatureLib::Battling::ItemUseScript::IsItemUsable();
|
||||
|
||||
Reference in New Issue
Block a user