37 lines
1.9 KiB
C++
37 lines
1.9 KiB
C++
#include "RegisterPokemonTypes.hpp"
|
|
#include <cassert>
|
|
#include "../../Library/Species/PokemonSpecies.hpp"
|
|
|
|
void RegisterPokemonTypes::Register(asIScriptEngine* engine) {
|
|
RegisterGenderEnum(engine);
|
|
RegisterSpeciesType(engine);
|
|
}
|
|
|
|
void RegisterPokemonTypes::RegisterGenderEnum(asIScriptEngine* engine) {
|
|
[[maybe_unused]] int r = engine->RegisterEnum("Gender"); assert(r >= 0);
|
|
r = engine->RegisterEnumValue("Gender", "Male", 0); assert(r >= 0);
|
|
r = engine->RegisterEnumValue("Gender", "Female", 1); assert(r >= 0);
|
|
r = engine->RegisterEnumValue("Gender", "Genderless", 2); assert(r >= 0);
|
|
}
|
|
|
|
void RegisterPokemonTypes::RegisterSpeciesType(asIScriptEngine* engine) {
|
|
[[maybe_unused]]
|
|
int r = engine->RegisterObjectType("Species", 0, asOBJ_REF | asOBJ_NOCOUNT);
|
|
assert(r >= 0);
|
|
r = engine->RegisterObjectMethod("Species", "const string& get_Name() const property",
|
|
asMETHOD(PkmnLib::Library::PokemonSpecies, GetName), asCALL_THISCALL);
|
|
assert(r >= 0);
|
|
r = engine->RegisterObjectMethod("Species", "uint16 get_Id() const property",
|
|
asMETHOD(PkmnLib::Library::PokemonSpecies, GetId), asCALL_THISCALL);
|
|
assert(r >= 0);
|
|
r = engine->RegisterObjectMethod("Species", "float get_GenderRate() const property",
|
|
asMETHOD(PkmnLib::Library::PokemonSpecies, GetGenderRate), asCALL_THISCALL);
|
|
assert(r >= 0);
|
|
r = engine->RegisterObjectMethod("Species", "uint8 get_CaptureRate() const property",
|
|
asMETHOD(PkmnLib::Library::PokemonSpecies, GetCaptureRate), asCALL_THISCALL);
|
|
assert(r >= 0);
|
|
r = engine->RegisterObjectMethod("Species", "Gender GetRandomGender() const",
|
|
asMETHOD(PkmnLib::Library::PokemonSpecies, GetRandomGender), asCALL_THISCALL);
|
|
assert(r >= 0);
|
|
}
|