Files
grimm-odin/general/timer.odin
T
2026-09-26 20:48:09 -07:00

29 lines
430 B
Odin

package main
import rl "vendor:raylib"
Timer :: struct {
lifetime: f32,
callback: proc(),
}
timers: [dynamic]Timer
start_timer :: proc(time: f32, callback: proc()) {
new_timer := Timer {
lifetime = time,
callback = callback,
}
append(&timers, new_timer)
}
run_timers :: proc() {
for &t, i in timers {
t.lifetime -= rl.GetFrameTime()
if t.lifetime <= 0 {
unordered_remove(&timers, i)
t.callback()
}
}
}