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

Function consolekey

source/src/console.cpp:485–582  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

483}
484
485void consolekey(int code, bool isdown, SDL_Keymod mod)
486{
487 static char *beforecomplete = NULL;
488 static bool ignoreescup = false;
489 if(isdown)
490 {
491 switch(code)
492 {
493 case SDLK_F1:
494 toggledoc();
495 break;
496
497 case SDLK_F2:
498 scrolldoc(-4);
499 break;
500
501 case SDLK_F3:
502 scrolldoc(4);
503 break;
504
505 case SDL_AC_BUTTON_WHEELUP:
506 case SDLK_UP:
507 if(histpos > history.length()) histpos = history.length();
508 if(histpos > 0) history[--histpos]->restore();
509 break;
510
511 case SDL_AC_BUTTON_WHEELDOWN:
512 case SDLK_DOWN:
513 if(histpos + 1 < history.length()) history[++histpos]->restore();
514 break;
515
516 case SDLK_TAB:
517 if(!cmdaction)
518 {
519 if(!beforecomplete) beforecomplete = newstring(cmdline.buf);
520 complete(cmdline.buf, (mod & KMOD_LSHIFT) ? true : false);
521 if(cmdline.pos >= 0 && cmdline.pos >= (int)strlen(cmdline.buf)) cmdline.pos = -1;
522 }
523 break;
524
525 case SDLK_ESCAPE:
526 if(mod & KMOD_LSHIFT) // LSHIFT+ESC restores buffer from before complete()
527 {
528 if(beforecomplete) copystring(cmdline.buf, beforecomplete);
529 ignoreescup = true;
530 }
531 else ignoreescup = false;
532 break;
533
534 default:
535 resetcomplete();
536 DELETEA(beforecomplete);
537
538 case SDLK_LSHIFT:
539 cmdline.key(code);
540 break;
541 }
542 }

Callers 1

keypressFunction · 0.85

Calls 15

toggledocFunction · 0.85
scrolldocFunction · 0.85
newstringFunction · 0.85
completeFunction · 0.85
copystringFunction · 0.85
resetcompleteFunction · 0.85
saycommandFunction · 0.85
shouldsaveMethod · 0.80
runMethod · 0.80
loopiFunction · 0.70
lengthMethod · 0.45
restoreMethod · 0.45

Tested by

no test coverage detected