Layout work on an AngelScript implementation.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2020-01-11 22:30:23 +01:00
parent 497acc1311
commit c716992f12
24 changed files with 5342 additions and 38 deletions

View File

@@ -0,0 +1,36 @@
#include "RegisterPokemonTypes.hpp"
#include <cassert>
#include "../../Library/Species/PokemonSpecies.hpp"
void RegisterPokemonTypes::Register(asIScriptEngine* engine) {
RegisterGenderEnum(engine);
RegisterSpeciesType(engine);
}
void RegisterPokemonTypes::RegisterGenderEnum(asIScriptEngine* engine) {
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) {
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);
}

View File

@@ -0,0 +1,14 @@
#ifndef PKMNLIB_REGISTERPOKEMONTYPES_HPP
#define PKMNLIB_REGISTERPOKEMONTYPES_HPP
#include <angelscript.h>
class RegisterPokemonTypes {
public:
static void Register(asIScriptEngine* engine);
private:
static void RegisterGenderEnum(asIScriptEngine* engine);
static void RegisterSpeciesType(asIScriptEngine* engine);
};
#endif // PKMNLIB_REGISTERPOKEMONTYPES_HPP