25 lines
1.1 KiB
C++
25 lines
1.1 KiB
C++
#include "../../src/Library/GrowthRates/GrowthRate.hpp"
|
|
#include "../../src/Library/GrowthRates/ExternGrowthRate.hpp"
|
|
#include "../../src/Library/GrowthRates/LookupGrowthRate.hpp"
|
|
#define export extern "C"
|
|
using namespace CreatureLib::Library;
|
|
|
|
export GrowthRate* CreatureLib_LookupGrowthRate_Construct(uint32_t experiencePerLevel[], size_t count) {
|
|
std::vector<uint32_t> exp(experiencePerLevel, experiencePerLevel + count);
|
|
return new LookupGrowthRate(exp);
|
|
};
|
|
|
|
export GrowthRate* CreatureLib_ExternGrowthRate_Construct(uint8_t (*calcLevel)(uint32_t),
|
|
uint32_t (*calcExperience)(uint8_t)) {
|
|
return new ExternGrowthRate(calcLevel, calcExperience);
|
|
};
|
|
|
|
export void CreatureLib_GrowthRate_Destruct(const GrowthRate* p) { delete p; }
|
|
|
|
export uint8_t CreatureLib_GrowthRate_CalculateLevel(const GrowthRate* p, uint32_t experience) {
|
|
return p->CalculateLevel(experience);
|
|
}
|
|
|
|
export uint32_t CreatureLib_GrowthRate_CalculateExperience(const GrowthRate* p, uint8_t level) {
|
|
return p->CalculateExperience(level);
|
|
} |