diff options
Diffstat (limited to 'src/event.hpp')
| -rw-r--r-- | src/event.hpp | 19 |
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 */ |
