From: Toni Wilen Date: Sat, 14 May 2016 15:58:36 +0000 (+0300) Subject: Always replace old -event timer. X-Git-Tag: 3300~33 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=18c8901c0d52d06b08f4ce35ed26ccaa815fcf2c;p=francis%2Fwinuae.git Always replace old -event timer. --- 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) {