#include "../../src/Library/Natures/Nature.hpp" #include "../Core.hpp" using namespace PkmnLib::Library; export Nature* PkmnLib_Nature_Construct(CreatureLib::Library::Statistic increasedStat, CreatureLib::Library::Statistic decreasedStat, float increasedModifier, float decreasedModifier) { return new Nature(increasedStat, decreasedStat, increasedModifier, decreasedModifier); } export void PkmnLib_Nature_Destruct(const Nature* p) { delete p; } #define SIMPLE_GET_FUNC(type, name, returnType) \ export returnType PkmnLib_##type##_##name(const PkmnLib::Library::type* p) { return p->name(); } SIMPLE_GET_FUNC(Nature, GetIncreaseModifier, float) SIMPLE_GET_FUNC(Nature, GetDecreaseModifier, float) SIMPLE_GET_FUNC(Nature, GetIncreasedStat, CreatureLib::Library::Statistic) SIMPLE_GET_FUNC(Nature, GetDecreasedStat, CreatureLib::Library::Statistic) #undef SIMPLE_GET_FUNC export float PkmnLib_Nature_GetStatModifier(PkmnLib::Library::Nature nature, CreatureLib::Library::Statistic stat) { return nature.GetStatModifier(stat); }