Files
CreatureLib/src/Library/GrowthRates/ExternGrowthRate.hpp
Deukhoofd 899e432271
Some checks failed
continuous-integration/drone/push Build is failing
Added lots of security using asserts.
2020-03-22 13:42:26 +01:00

24 lines
857 B
C++

#ifndef CREATURELIB_EXTERNGROWTHRATE_HPP
#define CREATURELIB_EXTERNGROWTHRATE_HPP
#include <Arbutils/Assert.hpp>
#include "GrowthRate.hpp"
namespace CreatureLib::Library {
class ExternGrowthRate : public GrowthRate {
uint8_t (*_calcLevel)(uint32_t experience);
uint32_t (*_calcExperience)(uint8_t level);
public:
ExternGrowthRate(uint8_t (*calcLevel)(uint32_t), uint32_t (*calcExperience)(uint8_t level))
: _calcLevel(calcLevel), _calcExperience(calcExperience) {
AssertNotNull(calcLevel)
AssertNotNull(calcExperience)
}
uint8_t CalculateLevel(uint32_t experience) const override { return _calcLevel(experience); }
uint32_t CalculateExperience(uint8_t level) const override { return _calcExperience(level); }
};
}
#endif // CREATURELIB_EXTERNGROWTHRATE_HPP