From 18c8901c0d52d06b08f4ce35ed26ccaa815fcf2c Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 14 May 2016 18:58:36 +0300 Subject: [PATCH] Always replace old -event timer. --- events.cpp | 15 +++++++++++++++ include/events.h | 1 + 2 files changed, 16 insertions(+) diff --git a/events.cpp b/events.cpp index 3e91f739..4abf9d1f 100644 --- a/events.cpp +++ b/events.cpp @@ -211,6 +211,21 @@ void event2_newevent_xx (int no, evt t, uae_u32 data, evfunc2 func) MISC_handler (); } +void event2_newevent_x_replace(evt t, uae_u32 data, evfunc2 func) +{ + for (int i = 0; i < ev2_max; i++) { + if (eventtab2[i].active && eventtab2[i].handler == func) { + eventtab2[i].active = false; + } + } + if (((int)t) <= 0) { + func(data); + return; + } + event2_newevent_xx(-1, t * CYCLE_UNIT, data, func); +} + + int current_hpos (void) { int hp = current_hpos_safe (); diff --git a/include/events.h b/include/events.h index e5c71c11..d461b8a5 100644 --- a/include/events.h +++ b/include/events.h @@ -131,6 +131,7 @@ STATIC_INLINE bool cycles_in_range (unsigned long endcycles) extern void MISC_handler (void); extern void event2_newevent_xx (int no, evt t, uae_u32 data, evfunc2 func); +extern void event2_newevent_x_replace(evt t, uae_u32 data, evfunc2 func); STATIC_INLINE void event2_newevent_x (int no, evt t, uae_u32 data, evfunc2 func) { -- 2.47.3