diff options
| author | Connor Thomson <blumatrikz@gmail.com> | 2026-09-08 18:27:39 -0700 |
|---|---|---|
| committer | Connor Thomson <blumatrikz@gmail.com> | 2026-09-08 18:27:39 -0700 |
| commit | f1ddc12b68b4e4c8087962de25260470e6df2bea (patch) | |
| tree | 7d0440a6402a9b0ef75ded23fa64b68534255bba /src/client/hotKey.c | |
| parent | 6025860a61386bf767b29c3ec5fd0d31285f1056 (diff) | |
Add tuxanci2 files
Diffstat (limited to 'src/client/hotKey.c')
| -rw-r--r-- | src/client/hotKey.c | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/src/client/hotKey.c b/src/client/hotKey.c deleted file mode 100644 index 5471101..0000000 --- a/src/client/hotKey.c +++ /dev/null @@ -1,149 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> - -#include "main.h" -#include "list.h" -#include "myTimer.h" - -#include "interface.h" -#include "hotKey.h" - -typedef struct hotKey_struct { - SDLKey key; - bool_t active; - void (*handler) (); -} hotKey_t; - -static list_t *listHotKey; -static my_time_t lastActive; - -static hotKey_t *newHotKey(SDLKey key, void (*handler) ()) -{ - hotKey_t *new; - - new = malloc(sizeof(hotKey_t)); - new->key = key; - new->active = TRUE; - new->handler = handler; - - return new; -} - -static void destroyHotKey(hotKey_t *hotkey) -{ - free(hotkey); -} - -static hotKey_t *findHotkey(SDLKey key) -{ - int i; - - for (i = 0; i < listHotKey->count; i++) { - hotKey_t *this; - - this = (hotKey_t *) listHotKey->list[i]; - - if (this->key == key) { - return this; - } - } - - return NULL; -} - -void hot_key_init() -{ - listHotKey = list_new(); - lastActive = timer_get_current_time(); -} - -void hot_key_register(SDLKey key, void (*handler) ()) -{ - hotKey_t *hotkey; -/* - if (findHotkey(key) != NULL) { - assert(!"Conflict with register key"); - } -*/ - hotkey = newHotKey(key, handler); - list_ins(listHotKey, 0, hotkey); -} - -void hot_key_unregister(SDLKey key) -{ - hotKey_t *hotkey; - int my_index; - - hotkey = findHotkey(key); - - if (hotkey == NULL) { - fatal("Unregistering not registered hotkey"); - } - - my_index = list_search(listHotKey, hotkey); - assert(my_index != -1); - list_del_item(listHotKey, my_index, destroyHotKey); -} - -void hot_key_enable(SDLKey key) -{ - hotKey_t *hotkey; - - hotkey = findHotkey(key); - - if (hotkey == NULL) { - fatal("Enabling not registered hotkey"); - } - - lastActive = timer_get_current_time(); - hotkey->active = TRUE; -} - -void hot_key_disable(SDLKey key) -{ - hotKey_t *hotkey; - - hotkey = findHotkey(key); - - if (hotkey == NULL) { - fatal("Disabling not registered hotkey"); - } - - lastActive = timer_get_current_time(); - hotkey->active = FALSE; -} - -void hot_key_event() -{ - my_time_t currentTime; - Uint8 *mapa; - int i; - - currentTime = timer_get_current_time(); - - if (currentTime - lastActive < HOTKEY_ACTIVE_INTERVAL) { - return; - } - - mapa = SDL_GetKeyState(NULL); - - for (i = 0; i < listHotKey->count; i++) { - hotKey_t *this; - - this = (hotKey_t *) listHotKey->list[i]; - - if (mapa[this->key] == SDL_PRESSED && this->active == TRUE) { - lastActive = timer_get_current_time(); - /*printf("hotKey = %d\n", this->key);*/ - this->handler(); - - return; - } - } -} - -void hot_key_quit() -{ - list_destroy_item(listHotKey, destroyHotKey); -} |