]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Always replace old -event timer.
authorToni Wilen <twilen@winuae.net>
Sat, 14 May 2016 15:58:36 +0000 (18:58 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 14 May 2016 15:58:36 +0000 (18:58 +0300)
events.cpp
include/events.h

index 3e91f7392b3a27cb77ec75ed985e79480fbb47a6..4abf9d1fc537add9583db5991ffc69e6fbd5503f 100644 (file)
@@ -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 ();
index e5c71c11c32638e0be0c8a05f2fbb2bd7aebea0d..d461b8a5eeee5eccf1cba990b9e8ad66f60285f9 100644 (file)
@@ -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)
 {