timers with string names
This commit is contained in:
+8
-8
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user