diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-11-29 21:03:15 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-11-29 21:03:15 -0500 |
| commit | e111f78d519363a3d76237ff0a62dcbd5e53e3d6 (patch) | |
| tree | ccb3860f1bc30cd21fc52f9e4ac3ba86a63ddcd3 /src/event.hpp | |
| parent | 8142cbb3d1a926d5c8cb5c59a0ea259948c59ad1 (diff) | |
major events refactor to add second event callback type
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 */ |
