PkmnLib/src/Battling/Library/BattleLibrary.hpp
Deukhoofd fff926b617
All checks were successful
continuous-integration/drone/push Build is passing
Mark several classes as final for devirtualization performance benefits.
2020-10-15 18:13:00 +02:00

50 lines
2.3 KiB
C++

#ifndef PKMNLIB_BATTLELIBRARY_HPP
#define PKMNLIB_BATTLELIBRARY_HPP
#include <CreatureLib/Battling/Library/BattleLibrary.hpp>
#include "../../Library/PokemonLibrary.hpp"
#include "DamageLibrary.hpp"
#include "ExperienceLibrary.hpp"
#include "MiscLibrary.hpp"
#include "StatCalculator.hpp"
namespace PkmnLib::Battling {
class BattleLibrary final : public CreatureLib::Battling::BattleLibrary {
public:
BattleLibrary(Library::PokemonLibrary* staticLib, StatCalculator* statCalculator, DamageLibrary* damageLibrary,
PkmnLib::Battling::ExperienceLibrary* experienceLibrary,
CreatureLib::Battling::ScriptResolver* scriptResolver,
PkmnLib::Battling::MiscLibrary* miscLibrary)
: CreatureLib::Battling::BattleLibrary(staticLib, statCalculator, damageLibrary, experienceLibrary,
scriptResolver, miscLibrary) {}
const std::unique_ptr<const Library::LibrarySettings>& GetSettings() const {
return reinterpret_cast<const std::unique_ptr<const Library::LibrarySettings>&>(_staticLib->GetSettings());
}
const std::unique_ptr<const Library::PokemonLibrary>& GetStaticLib() const {
return reinterpret_cast<const std::unique_ptr<const Library::PokemonLibrary>&>(_staticLib);
}
const std::unique_ptr<const Library::SpeciesLibrary>& GetSpeciesLibrary() const {
return reinterpret_cast<const std::unique_ptr<const Library::SpeciesLibrary>&>(
_staticLib->GetSpeciesLibrary());
}
const std::unique_ptr<const Library::MoveLibrary>& GetMoveLibrary() const {
return reinterpret_cast<const std::unique_ptr<const Library::MoveLibrary>&>(_staticLib->GetAttackLibrary());
}
const std::unique_ptr<const Library::ItemLibrary>& GetItemLibrary() const {
return reinterpret_cast<const std::unique_ptr<const Library::ItemLibrary>&>(_staticLib->GetItemLibrary());
}
const ArbUt::BorrowedPtr<const Library::NatureLibrary> GetNatureLibrary() const {
return GetStaticLib()->GetNatureLibrary();
}
static CreatureLib::Battling::ScriptResolver* CreateScriptResolver();
};
}
#endif // PKMNLIB_BATTLELIBRARY_HPP