timers with string names

This commit is contained in:
wooshings
2026-10-16 22:44:15 -07:00
parent 3223d4f41d
commit a4791bcb57
+8 -8
View File
@@ -9,27 +9,27 @@ Timer :: struct {
} }
@(private) @(private)
timers: [dynamic]Timer timers: map[string]Timer
start_timer :: proc(time: f32, signal: string = "") -> int { start_timer :: proc(time: f32, signal: string) -> int {
new_timer: Timer new_timer: Timer
new_timer.lifetime = time new_timer.lifetime = time
append(&timers, new_timer) timers[signal] = new_timer
return len(timers) return len(timers)
} }
get_timer :: proc(index: int) -> Timer { get_timer :: proc(signal: string) -> Timer {
if index <= len(timers) - 1 { if timer, exists := timers[signal]; exists {
return timers[index] return timers[signal]
} }
return Timer{} return Timer{}
} }
run_timers :: proc() { run_timers :: proc() {
for &t, i in timers { for i, &t in timers {
t.lifetime -= rl.GetFrameTime() t.lifetime -= rl.GetFrameTime()
if t.lifetime <= 0 { if t.lifetime <= 0 {
unordered_remove(&timers, i) timers[i] = Timer{}
if t.signal != "" { if t.signal != "" {
write(t.signal) write(t.signal)
} }