mirror of
https://github.com/zeldaret/botw
synced 2026-09-10 11:55:19 -04:00
ksys: Implement Timer
This commit is contained in:
@@ -1 +1,22 @@
|
||||
#include "KingSystem/System/Timer.h"
|
||||
#include "KingSystem/System/VFR.h"
|
||||
|
||||
namespace ksys {
|
||||
|
||||
void Timer::update(f32* t, f32 rate) {
|
||||
*t += VFR::instance()->getDeltaTime() * rate;
|
||||
}
|
||||
|
||||
void Timer::update() {
|
||||
previous_value = value;
|
||||
update(&value, rate);
|
||||
}
|
||||
|
||||
bool Timer::hasEnded(f32 end_time) const {
|
||||
if (value == end_time)
|
||||
return true;
|
||||
|
||||
return (previous_value - end_time) * (value - end_time) < 0.0;
|
||||
}
|
||||
|
||||
} // namespace ksys
|
||||
|
||||
@@ -6,21 +6,21 @@ namespace ksys {
|
||||
|
||||
struct Timer {
|
||||
Timer() = default;
|
||||
Timer(f32 value, f32 previous_value, f32 speed = -1.0)
|
||||
: value(value), previous_value(previous_value), speed(speed) {}
|
||||
Timer(f32 value, f32 previous_value, f32 rate = -1.0)
|
||||
: value(value), previous_value(previous_value), rate(rate) {}
|
||||
|
||||
void reset(f32 value_, f32 speed_ = -1.0) {
|
||||
void reset(f32 value_, f32 rate_ = -1.0) {
|
||||
value = previous_value = value_;
|
||||
speed = speed_;
|
||||
rate = rate_;
|
||||
}
|
||||
|
||||
void update();
|
||||
static void update(f32& t);
|
||||
static void update(f32* t, f32 rate);
|
||||
bool hasEnded(f32 end_time) const;
|
||||
|
||||
f32 value{};
|
||||
f32 previous_value{};
|
||||
f32 speed{};
|
||||
f32 rate{};
|
||||
};
|
||||
|
||||
} // namespace ksys
|
||||
|
||||
Reference in New Issue
Block a user