| 594 | } |
| 595 | |
| 596 | void keypress(int keycode, int scancode, bool isdown, SDL_Keymod mod) |
| 597 | { |
| 598 | keym *haskey = keyms.access(keycode); |
| 599 | if(!haskey && !(keycode & SDLK_SCANCODE_MASK) && scancode) haskey = keyms.access(scancode | SDLK_SCANCODE_MASK); // keycode not found: maybe we know the scancode |
| 600 | if(!haskey && isdown) haskey = autokeymap(keycode, scancode); |
| 601 | if(haskey && haskey->pressed) execbind(*haskey, isdown); // allow pressed keys to release |
| 602 | else if(saycommandon) consolekey(keycode, isdown, mod); // keystrokes go to commandline |
| 603 | else if(!menukey(keycode, isdown)) // keystrokes go to menu |
| 604 | { |
| 605 | if(haskey) execbind(*haskey, isdown); |
| 606 | } |
| 607 | if(keycode & SDLK_SCANCODE_MASK) scancode = keycode & ~SDLK_SCANCODE_MASK; |
| 608 | if(isdown) exechook(HOOK_SP, "KEYPRESS", "KEYPRESS %d %d", keycode, scancode); |
| 609 | else exechook(HOOK_SP, "KEYRELEASE", "%d %d", keycode, scancode); |
| 610 | } |
| 611 | |
| 612 | char *getcurcommand(int *pos) |
| 613 | { |
no test coverage detected