summaryrefslogtreecommitdiff
path: root/src/event.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/event.hpp')
-rw-r--r--src/event.hpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/event.hpp b/src/event.hpp
index defa588..7eb48c2 100644
--- a/src/event.hpp
+++ b/src/event.hpp
@@ -9,10 +9,23 @@
#include <cstring>
typedef void (*EventHandler)();
+typedef void (*TickEvent)(double);
+
+template<typename Fn>
+void Event_RegisterCallback(const char *name, Fn handler);
+template<typename Fn>
+void Event_UnregisterCallback(const char *name, Fn handler);
+template<typename Fn, typename... Arguments>
+void Event_Dispatch(const char *name, Arguments... args);
+
+template<> void Event_RegisterCallback<EventHandler>(const char *name, EventHandler handler);
+template<> void Event_UnregisterCallback<EventHandler>(const char *name, EventHandler handler);
+template<> void Event_Dispatch<EventHandler>(const char *name);
+
+template<> void Event_RegisterCallback<TickEvent>(const char *name, TickEvent handler);
+template<> void Event_UnregisterCallback<TickEvent>(const char *name, TickEvent handler);
+template<> void Event_Dispatch<TickEvent, double>(const char *name, double d);
-void Event_RegisterCallback(const char *name, EventHandler handler);
-void Event_UnregisterCallback(const char *name, EventHandler handler);
-void Event_Dispatch(const char *name);
void Event_Teardown();
#endif /* PKE_EVENT_HPP */