57 lines
2.6 KiB
C++
57 lines
2.6 KiB
C++
#include "RegisterMoveTypes.hpp"
|
|
#include "../../../../Library/Moves/MoveData.hpp"
|
|
#include "../../../../Library/Moves/MoveLibrary.hpp"
|
|
#include "../HelperFile.hpp"
|
|
|
|
void RegisterMoveTypes::Register(asIScriptEngine* engine) {
|
|
RegisterMoveCategory(engine);
|
|
RegisterMoveTarget(engine);
|
|
RegisterMoveType(engine);
|
|
RegisterMoveLibrary(engine);
|
|
}
|
|
|
|
void RegisterMoveTypes::RegisterMoveCategory(asIScriptEngine* engine) {
|
|
REGISTER_ENUM(PkmnLib::Library::MoveCategory, "MoveCategory");
|
|
}
|
|
|
|
void RegisterMoveTypes::RegisterMoveTarget(asIScriptEngine* engine) {
|
|
REGISTER_ENUM(CreatureLib::Library::AttackTarget, "MoveTarget");
|
|
}
|
|
|
|
static bool HasFlag(const PkmnLib::Library::MoveData* obj, const ArbUt::BasicStringView& str) {
|
|
return obj->HasFlag(str);
|
|
}
|
|
|
|
static bool GetMove(const PkmnLib::Library::MoveLibrary* obj, const ArbUt::BasicStringView& str) {
|
|
return obj->Get(str);
|
|
}
|
|
|
|
void RegisterMoveTypes::RegisterMoveType(asIScriptEngine* engine) {
|
|
int r = engine->RegisterObjectType("MoveData", 0, asOBJ_REF | asOBJ_NOCOUNT);
|
|
Ensure(r >= 0);
|
|
|
|
REGISTER_GETTER("MoveData", "const constString& get_Name() const property", CreatureLib::Library::AttackData,
|
|
GetName);
|
|
REGISTER_GETTER("MoveData", "uint8 get_Type() const property", CreatureLib::Library::AttackData, GetType);
|
|
REGISTER_GETTER("MoveData", "MoveCategory get_Category() const property", CreatureLib::Library::AttackData,
|
|
GetCategory);
|
|
REGISTER_GETTER("MoveData", "uint8 get_BasePower() const property", CreatureLib::Library::AttackData, GetBasePower);
|
|
REGISTER_GETTER("MoveData", "uint8 get_Accuracy() const property", CreatureLib::Library::AttackData, GetAccuracy);
|
|
REGISTER_GETTER("MoveData", "uint8 get_BaseUsages() const property", CreatureLib::Library::AttackData,
|
|
GetBaseUsages);
|
|
REGISTER_GETTER("MoveData", "MoveTarget get_Target() const property", CreatureLib::Library::AttackData, GetTarget);
|
|
REGISTER_GETTER("MoveData", "int8 get_Priority() const property", CreatureLib::Library::AttackData, GetPriority);
|
|
|
|
r = engine->RegisterObjectMethod("MoveData", "bool HasFlag(const constString &in flag) const", asFUNCTION(HasFlag),
|
|
asCALL_CDECL_OBJFIRST);
|
|
Ensure(r >= 0);
|
|
}
|
|
void RegisterMoveTypes::RegisterMoveLibrary(asIScriptEngine* engine) {
|
|
int r = engine->RegisterObjectType("MoveLibrary", 0, asOBJ_REF | asOBJ_NOCOUNT);
|
|
Ensure(r >= 0);
|
|
r = engine->RegisterObjectMethod("MoveLibrary", "const MoveData@ Get(const constString &in name) const",
|
|
asFUNCTION(GetMove), asCALL_CDECL_OBJFIRST);
|
|
Ensure(r >= 0);
|
|
}
|
|
|
|
#undef REGISTER_ENUM_VALUE |