diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 1315388e26e..13a18efb25a 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -100,7 +100,10 @@ SUBSYSTEM_DEF(timer) log_world(to_log.Join("\n")) // Process client-time timers - var/next_clienttime_timer_index = 0 + var/static/next_clienttime_timer_index = 0 + if (next_clienttime_timer_index) + clienttime_timers.Cut(1, next_clienttime_timer_index+1) + next_clienttime_timer_index = 0 for (next_clienttime_timer_index in 1 to length(clienttime_timers)) if (MC_TICK_CHECK) next_clienttime_timer_index-- @@ -112,7 +115,6 @@ SUBSYSTEM_DEF(timer) var/datum/callback/callBack = ctime_timer.callBack if (!callBack) - clienttime_timers.Cut(next_clienttime_timer_index,next_clienttime_timer_index + 1) CRASH("Invalid timer: [get_timer_debug_string(ctime_timer)] world.time: [world.time], \ head_offset: [head_offset], practical_offset: [practical_offset], REALTIMEOFDAY: [REALTIMEOFDAY]") @@ -129,6 +131,7 @@ SUBSYSTEM_DEF(timer) // Remove invoked client-time timers if (next_clienttime_timer_index) clienttime_timers.Cut(1, next_clienttime_timer_index+1) + next_clienttime_timer_index = 0 if (MC_TICK_CHECK) return