]> git.localhorst.tv Git - blank.git/blobdiff - src/app/IntervalTimer.hpp
group entity updates in as few packets as possible
[blank.git] / src / app / IntervalTimer.hpp
index bcf1baef29e290fafbe90079d4daabc05052914b..5240f5d3f60a419e8593b5e883dab9fd5c8e8d1c 100644 (file)
@@ -13,7 +13,7 @@ class IntervalTimer {
 public:
        /// Create a timer that hits every interval_ms milliseconds.
        /// Initial state is stopped.
-       explicit IntervalTimer(int interval_ms) noexcept
+       explicit IntervalTimer(int interval_ms = 0) noexcept
        : intv(interval_ms) { }
 
        void Start() noexcept {
@@ -35,14 +35,20 @@ public:
                return Running() && value % intv < last_dt;
        }
        bool HitOnce() const noexcept {
-               return value >= intv;
+               return Running() && value >= intv;
        }
        int Elapsed() const noexcept {
                return value;
        }
+       int Interval() const noexcept {
+               return intv;
+       }
        int Iteration() const noexcept {
                return value / intv;
        }
+       void PopIteration() noexcept {
+               value -= intv;
+       }
 
        void Update(int dt) noexcept {
                value += dt * speed;