46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
#ifndef CREATURELIB_SCRIPTRESOLVER_HPP
|
|
#define CREATURELIB_SCRIPTRESOLVER_HPP
|
|
|
|
#include <unordered_set>
|
|
#include "../../Library/Items/Item.hpp"
|
|
#include "BattleScript.hpp"
|
|
#include "ItemUseScript.hpp"
|
|
#include "ScriptCategory.hpp"
|
|
|
|
namespace CreatureLib::Battling {
|
|
class BattleLibrary;
|
|
|
|
class ScriptResolver {
|
|
public:
|
|
ScriptResolver() {}
|
|
NO_COPY_OR_MOVE(ScriptResolver);
|
|
|
|
virtual ~ScriptResolver() = default;
|
|
|
|
virtual void Initialize([[maybe_unused]] BattleLibrary* non_null library){};
|
|
virtual ArbUt::OptionalUniquePtr<BattleScript> LoadScript(const ArbUt::OptionalBorrowedPtr<void>& owner,
|
|
ScriptCategory category,
|
|
const ArbUt::StringView& scriptName) {
|
|
(void)owner;
|
|
(void)category;
|
|
(void)scriptName;
|
|
return nullptr;
|
|
};
|
|
|
|
virtual ArbUt::OptionalUniquePtr<BattleScript> LoadScriptByHash(const ArbUt::OptionalBorrowedPtr<void>& owner,
|
|
ScriptCategory category, u32 scriptNameHash) {
|
|
(void)owner;
|
|
(void)category;
|
|
(void)scriptNameHash;
|
|
return nullptr;
|
|
};
|
|
|
|
virtual ArbUt::OptionalBorrowedPtr<ItemUseScript>
|
|
LoadItemScript([[maybe_unused]] const CreatureLib::Library::Item* non_null item) {
|
|
return nullptr;
|
|
};
|
|
};
|
|
}
|
|
|
|
#endif // CREATURELIB_SCRIPTRESOLVER_HPP
|