Initial support for item use scripts in angelscript.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2021-03-07 17:09:30 +01:00
parent 18cebe842a
commit 27dd8a8202
17 changed files with 405 additions and 97 deletions

View File

@@ -6,7 +6,9 @@
#include "../../Battling/Library/BattleLibrary.hpp"
#define ANGELSCRIPT_DLL_LIBRARY_IMPORT
#include <Arbutils/StringView.hpp>
#include <angelscript.h>
#include "AngelScriptItemUseScript.hpp"
#include "AngelScriptScript.hpp"
#include "AngelScriptTypeInfo.hpp"
@@ -21,10 +23,14 @@ private:
static void Print(const std::string& str) { std::cout << str << std::endl; }
ArbUt::Dictionary<ScriptCategory, ArbUt::Dictionary<ArbUt::StringView, AngelScriptTypeInfo*>> _typeDatabase;
ArbUt::Dictionary<ArbUt::StringView, asITypeInfo*> _baseTypes;
ArbUt::Dictionary<ArbUt::StringView, asITypeInfo*> _itemUseTypes;
ArbUt::Dictionary<const CreatureLib::Library::Item*, AngelScriptItemUseScript*> _itemUseScripts;
void RegisterTypes();
void
InitializeByteCode(const ArbUt::Dictionary<ScriptCategory, ArbUt::Dictionary<ArbUt::StringView, uint32_t>>& types);
void RegisterScriptType(asITypeInfo* typeInfo, const ArbUt::StringView& metadataKind,
const ArbUt::StringView& effectName);
public:
~AngelScriptResolver() override {
@@ -46,6 +52,7 @@ public:
CreatureLib::Battling::BattleScript* LoadScript(ScriptCategory category,
const ArbUt::StringView& scriptName) override;
CreatureLib::Battling::ItemUseScript* LoadItemScript(const CreatureLib::Library::Item* item) override;
void WriteByteCodeToFile(const char* file, bool stripDebugInfo = false);
void LoadByteCodeFromFile(const char* file);
@@ -81,5 +88,7 @@ public:
}
return t;
}
inline ContextPool* GetContextPool() const noexcept { return _contextPool; }
};
#endif // PKMNLIB_ANGELSCRIPRESOLVER_HPP