Update to new CreatureLib version, updated libraries in accordance.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-02-15 19:04:06 +01:00
parent 4ee791c6cb
commit 45662cb29b
14 changed files with 68 additions and 75 deletions

View File

@@ -40,7 +40,7 @@ PkmnLib::Battling::CreatePokemon* PkmnLib::Battling::CreatePokemon::WithEffortVa
PkmnLib::Battling::Pokemon* PkmnLib::Battling::CreatePokemon::Build() {
auto rand = CreatureLib::Core::Random();
const PkmnLib::Library::PokemonSpecies* species = nullptr;
if (!this->_library->GetSpeciesLibrary()->TryGetPkmnSpecies(this->_species, species)) {
if (!this->_library->GetSpeciesLibrary()->TryGet(this->_species.c_str(), species)) {
std::stringstream err;
err << "Invalid species '" << _species << "'.";
throw CreatureException(err.str());
@@ -67,7 +67,7 @@ PkmnLib::Battling::Pokemon* PkmnLib::Battling::CreatePokemon::Build() {
}
const Library::Item* heldItem = nullptr;
if (!this->_heldItem.empty()) {
if (!_library->GetItemLibrary()->TryGetItem(this->_heldItem, heldItem)) {
if (!_library->GetItemLibrary()->TryGet(this->_heldItem.c_str(), heldItem)) {
throw CreatureException("Unknown Item: " + this->_heldItem);
}
}
@@ -143,7 +143,7 @@ PkmnLib::Battling::CreatePokemon* PkmnLib::Battling::CreatePokemon::WithHeldItem
PkmnLib::Battling::CreatePokemon*
PkmnLib::Battling::CreatePokemon::LearnMove(const std::string& moveName, CreatureLib::Battling::AttackLearnMethod method) {
const PkmnLib::Library::MoveData* move;
if (!_library->GetMoveLibrary()->TryGetMove(moveName, move)){
if (!_library->GetMoveLibrary()->TryGet(moveName.c_str(), move)){
throw CreatureException("Invalid Move given: " + moveName);
}
if (_attacks.size() >= _library->GetSettings()->GetMaximalMoves()){

View File

@@ -6,15 +6,17 @@
namespace PkmnLib::Library {
class ItemLibrary : public CreatureLib::Library::ItemLibrary {
public:
inline bool TryGetItem(const std::string& name, const Item*& item) const {
return CreatureLib::Library::ItemLibrary::TryGetItem(name, (const CreatureLib::Library::Item*&)item);
inline bool TryGet(const char* name, const Item*& item) const{
return CreatureLib::Library::ItemLibrary::TryGet(name, (const CreatureLib::Library::Item*&)item);
}
const Item* GetItem(const std::string& name) const {
return reinterpret_cast<const Item*>(CreatureLib::Library::ItemLibrary::GetItem(name));
inline const Item* Get(const char* name) const{
return reinterpret_cast<const Item*>(CreatureLib::Library::ItemLibrary::Get(name));
}
const Item* operator[](const std::string& name) const { return GetItem(name); }
void LoadItem(const std::string& name, const Item* item) {
CreatureLib::Library::ItemLibrary::LoadItem(name, item);
const Item* operator[](const char* name) const { return Get(name); }
void Insert(const char* name, const Item* item) {
CreatureLib::Library::ItemLibrary::Insert(name, item);
}
};
}

View File

@@ -8,22 +8,13 @@ namespace PkmnLib::Library {
public:
MoveLibrary(size_t initialCapacity = 32) : CreatureLib::Library::AttackLibrary(initialCapacity) {}
virtual const MoveData* operator[](const std::string& name) const { return GetAttack(name); }
virtual const MoveData* operator[](const char* name) const { return Get(name); }
inline bool TryGetMove(const std::string& name, const MoveData*& move) const{
return TryGetAttack(name, (const CreatureLib::Library::AttackData*&)move);
inline bool TryGet(const char* name, const MoveData*& move) const {
return CreatureLib::Library::AttackLibrary::TryGet(name, (const CreatureLib::Library::AttackData*&)move);
}
const MoveData* GetMove(const std::string& name) const { return GetAttack(name); }
const MoveData* GetAttack(const std::string& name) const {
return reinterpret_cast<const MoveData*>(CreatureLib::Library::AttackLibrary::GetAttack(name));
}
void LoadAttack(const std::string& name, const MoveData* attack) {
CreatureLib::Library::AttackLibrary::LoadAttack(name, attack);
}
void LoadMove(const std::string& name, const MoveData* attack) {
CreatureLib::Library::AttackLibrary::LoadAttack(name, attack);
const MoveData* Get(const char* name) const {
return dynamic_cast<const MoveData*>(CreatureLib::Library::AttackLibrary::Get(name));
}
};
}

View File

@@ -7,19 +7,19 @@
namespace PkmnLib::Library {
class SpeciesLibrary : public CreatureLib::Library::SpeciesLibrary {
public:
inline bool TryGetPkmnSpecies(const std::string& name, const PokemonSpecies*& outSpecies) const{
return TryGetSpecies(name, (const CreatureLib::Library::CreatureSpecies*&)outSpecies);
inline bool TryGet(const char* name, const PokemonSpecies*& outSpecies) const {
return CreatureLib::Library::SpeciesLibrary::TryGet(
name, (const CreatureLib::Library::CreatureSpecies*&)outSpecies);
}
inline const PokemonSpecies* GetPkmnSpecies(const std::string& name) const {
return dynamic_cast<const PokemonSpecies*>(CreatureLib::Library::SpeciesLibrary::GetSpecies(name));
inline const PokemonSpecies* Get(const char* name) const {
return dynamic_cast<const PokemonSpecies*>(CreatureLib::Library::SpeciesLibrary::Get(name));
}
const PokemonSpecies* operator[](const std::string& name) const { return GetPkmnSpecies(name); }
const PokemonSpecies* operator[](const char* name) const { return Get(name); }
void LoadSpecies(const std::string& name, const PokemonSpecies* species){
CreatureLib::Library::SpeciesLibrary::LoadSpecies(name, species);
void Insert(const char* name, const PokemonSpecies* species) {
CreatureLib::Library::SpeciesLibrary::Insert(name, species);
}
};
}

View File

@@ -77,7 +77,7 @@ void RegisterItemTypes::RegisterItemType(asIScriptEngine* engine) {
void RegisterItemTypes::RegisterItemLibrary(asIScriptEngine* engine) {
[[maybe_unused]] int r = engine->RegisterObjectType("ItemLibrary", 0, asOBJ_REF | asOBJ_NOCOUNT);
assert(r >= 0);
r = engine->RegisterObjectMethod("ItemLibrary", "const Item@ GetItem(const string &in name) const",
asMETHOD(PkmnLib::Library::ItemLibrary, GetItem), asCALL_THISCALL);
r = engine->RegisterObjectMethod("ItemLibrary", "const Item@ Get(const string &in name) const",
asMETHOD(PkmnLib::Library::ItemLibrary, Get), asCALL_THISCALL);
assert(r >= 0);
}

View File

@@ -80,8 +80,8 @@ void RegisterMoveTypes::RegisterMoveType(asIScriptEngine* engine) {
void RegisterMoveTypes::RegisterMoveLibrary(asIScriptEngine* engine) {
[[maybe_unused]] int r = engine->RegisterObjectType("MoveLibrary", 0, asOBJ_REF | asOBJ_NOCOUNT);
assert(r >= 0);
r = engine->RegisterObjectMethod("MoveLibrary", "const MoveData@ GetMove(const string &in name) const",
asMETHOD(PkmnLib::Library::MoveLibrary, GetMove), asCALL_THISCALL);
r = engine->RegisterObjectMethod("MoveLibrary", "const MoveData@ Get(const string &in name) const",
asMETHOD(PkmnLib::Library::MoveLibrary, Get), asCALL_THISCALL);
assert(r >= 0);
}

View File

@@ -99,7 +99,7 @@ void RegisterSpeciesTypes::RegisterFormeType(asIScriptEngine* engine) {
void RegisterSpeciesTypes::RegisterSpeciesLibrary(asIScriptEngine* engine) {
[[maybe_unused]] int r = engine->RegisterObjectType("SpeciesLibrary", 0, asOBJ_REF | asOBJ_NOCOUNT);
assert(r >= 0);
r = engine->RegisterObjectMethod("SpeciesLibrary", "const Species@ GetSpecies(const string &in name) const",
asMETHOD(PkmnLib::Library::SpeciesLibrary, GetPkmnSpecies), asCALL_THISCALL);
r = engine->RegisterObjectMethod("SpeciesLibrary", "const Species@ Get(const string &in name) const",
asMETHOD(PkmnLib::Library::SpeciesLibrary, Get), asCALL_THISCALL);
assert(r >= 0);
}