MCPcopy Create free account
hub / github.com/assaultcube/AC / keypress

Function keypress

source/src/console.cpp:596–610  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

594}
595
596void 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
612char *getcurcommand(int *pos)
613{

Callers 1

checkinputFunction · 0.85

Calls 6

autokeymapFunction · 0.85
execbindFunction · 0.85
consolekeyFunction · 0.85
menukeyFunction · 0.85
exechookFunction · 0.85
accessMethod · 0.80

Tested by

no test coverage detected