diff options
Diffstat (limited to 'timer/src/timer.c')
| -rw-r--r-- | timer/src/timer.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/timer/src/timer.c b/timer/src/timer.c index d886f59..c934077 100644 --- a/timer/src/timer.c +++ b/timer/src/timer.c | |||
| @@ -37,11 +37,20 @@ void timer_start(Timer* timer) { | |||
| 37 | timer->delta_time = 0; | 37 | timer->delta_time = 0; |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | static void timer_update(Timer* timer, time_point this_tick) { | ||
| 41 | timer->running_time = time_diff(timer->start_time, this_tick); | ||
| 42 | timer->delta_time = time_diff(timer->last_tick, this_tick); | ||
| 43 | timer->last_tick = this_tick; | ||
| 44 | } | ||
| 45 | |||
| 40 | void timer_tick(Timer* timer) { | 46 | void timer_tick(Timer* timer) { |
| 41 | const time_point this_tick = time_now(); | 47 | const time_point this_tick = time_now(); |
| 42 | timer->running_time = time_diff(timer->start_time, this_tick); | 48 | timer_update(timer, this_tick); |
| 43 | timer->delta_time = time_diff(timer->last_tick, this_tick); | 49 | } |
| 44 | timer->last_tick = this_tick; | 50 | |
| 51 | void timer_advance(Timer* timer, time_delta t) { | ||
| 52 | const time_point this_tick = time_add(timer->start_time, t); | ||
| 53 | timer_update(timer, this_tick); | ||
| 45 | } | 54 | } |
| 46 | 55 | ||
| 47 | time_point time_now(void) { | 56 | time_point time_now(void) { |
