ZoriaRPG

std_keyboard.zh 24-JAN-2017

Jan 24th, 2017
121
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //std_keyboard.zh for ZC 2.future 2.54
  2. //Beta 52, or later.
  3. //Version ID: 24JAN2017
  4.  
  5. /*
  6.  
  7. Constants that define the keyboard layout. I need to check an EU and a US keyboard
  8. visually to verify if I set the proper symbols;  and I do not think that ZScript
  9. can handle some symbols on the UK layout.
  10.  
  11. */
  12.  
  13. const int KEYBOARD_TYPE = 0; //0 == US, 1 == UK, 2 == EU/GR
  14. const int KEYBOARD_LAYOUT_US = 0;
  15. const int KEYBOARD_LAYOUT_UK = 1;
  16. const int KEYBOARD_LAYOUT_EU = 2;
  17.  
  18. //Special Circumstance Characters to store in strings if needed.
  19. const int CHAR_ERROR        = -1;
  20. const int CHAR_BACKSPC      = -2;
  21. const int CHAR_DELETE       = -4;
  22. const int CHAR_HOMEKEY      = -8;
  23. const int CHAR_ENDKEY       = -16;
  24. const int CHAR_PAGEUP       = -32;
  25. const int CHAR_PAGEDOWN     = -64;
  26. const int CHAR_ARROW_U      = -128;
  27. const int CHAR_ARROW_L      = -256;
  28.  
  29. const int CHAR_ARROW_D      = -512;
  30. const int CHAR_ARROW_R      = -1024;
  31. const int CHAR_PRINTSCREEN  = -2048;
  32. const int CHAR_PAUSE        = -4096;
  33.  
  34. const int CHAR_NONE = 0;
  35.  
  36. //8192 for special modifiers?
  37.  
  38. const int ___KEY_TIMER = 255; //Index of ____STD_GRAM[]
  39. // I think that an internal ZScript array Game->UserRAM[256] would be useful for this, as its pointer
  40. // would never change.
  41. const float KEYBOARD_REPEAT_RATE = 6; //frames per keypress. 3 == 1/20 second
  42. //const int SFX_KEYPRESS = 58; //Do we want this in the header?
  43.  
  44.  
  45. //Checks if a key was pressed. If it was, it returns its char value.
  46. //Returns CHAR_NONE / false if key was not pressed.
  47. int CheckKeyToChar(int key){
  48.     if KeyPress(key) {
  49.         return KeyToChar(key);
  50.     }
  51.     else return CHAR_NONE;
  52. }
  53.  
  54. /*
  55.  
  56. These functions are meant to return ReadKey and Keypress, while setting the appropriate
  57. input blockers. I would like to add bool Game->ReadingKeyboard, which while true, stops
  58. key presses from being read as joystick inputs.
  59.  
  60. */
  61.  
  62. bool ReadKey(int key){
  63.     NoInput();
  64.     return Game->ReadKey[key];
  65. }
  66.  
  67. bool KeyPress(int key){ return Game->KeyPress[key]; }
  68.  
  69. int GetKeyPress(int key){
  70.     if ( ReadKey(key) ) return KeyToChar(key);
  71.     else return -1; //Is this safe? Should we return 0, which is null?
  72. }
  73.  
  74. //Returns modifier keys
  75. bool PressShift() { return (( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT] ) != 0);}
  76. bool PressControl(){ return (( Game->KeyPress[KEY_LCONTROL] || Game->KeyPress[KEY_RCONTROL] ) != 0);}
  77. bool CapsLock() { return Game->KeyPress[KEY_CAPSLOCK]; }
  78. bool NumLock() { return Game->KeyPress[KEY_NUMLOCK]; }
  79. bool PressWin() { return (( Game->KeyPress[KEY_LWIN] || Game->KeyPress[KEY_RWIN] ) != 0);}
  80. bool PressApple() { return (( Game->KeyPress[KEY_LWIN] || Game->KeyPress[KEY_RWIN] ) != 0);}
  81. bool PressCommand() { return Game->KeyPress[KEY_COMMAND]; }
  82. bool PressAltGR() { return Game->KeyPress[KEY_ALTGR]; }
  83.  
  84. //Is this Linux only?
  85. bool PressLinuxMenu() { return Game->KeyPress[KEY_MENU]; }
  86.  
  87. //Note that these keys are used by the ZC Ui. You can read them this way, but you should not expect
  88. //a user to utilise them, for input, without some kind of interupt system.
  89. bool FKey(int f){ if ( f > 0 && f < 13 ) return Game->KeyPress[46+f]; else return false; }
  90. bool EscKey() { return Game->KeyPress[KEY_ESC]; }
  91.  
  92.  
  93.  
  94. //converts a key to its proper char (int, in ZScript).
  95. int KeyToChar(int key) { return KeyToChar(key,false); }
  96. //bool caps ==true : caps acts as shift, == false, standard
  97. int KeyToChar(int key, bool caps){
  98.     if ( key >= 1 && key <= 26 && ( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT] || Game->KeyPress[KEY_CAPSLOCK] ) ) {
  99.         if ( key == KEY_A ) return 'A';
  100.         if ( key == KEY_B ) return 'B';
  101.         if ( key == KEY_C ) return 'C';
  102.         if ( key == KEY_D ) return 'D';
  103.         if ( key == KEY_E ) return 'E';
  104.         if ( key == KEY_F ) return 'F';
  105.         if ( key == KEY_G ) return 'G';
  106.         if ( key == KEY_H ) return 'H';
  107.         if ( key == KEY_I ) return 'I';
  108.         if ( key == KEY_J ) return 'J';
  109.         if ( key == KEY_K ) return 'K';
  110.         if ( key == KEY_L ) return 'L';
  111.         if ( key == KEY_M ) return 'M';
  112.         if ( key == KEY_N ) return 'N';
  113.         if ( key == KEY_O ) return 'O';
  114.         if ( key == KEY_P ) return 'P';
  115.         if ( key == KEY_Q ) return 'Q';
  116.         if ( key == KEY_R ) return 'R';
  117.         if ( key == KEY_S ) return 'S';
  118.         if ( key == KEY_T ) return 'T';
  119.         if ( key == KEY_U ) return 'U';
  120.         if ( key == KEY_V ) return 'V';
  121.         if ( key == KEY_W ) return 'W';
  122.         if ( key == KEY_X ) return 'X';
  123.         if ( key == KEY_Y ) return 'Y';
  124.         if ( key == KEY_Z ) return 'Z';
  125.         //Shiften numeric row
  126.                                        
  127.         if (  key > 26 && ( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT]
  128.             //if bool caps is set, and caps lock is on, read as shift
  129.             || ( Game->KeyPress[KEY_CAPSLOCK] && caps ) ) ){
  130.             if ( key == KEY_1 ) return '!';
  131.             if ( key == KEY_0 ) return ')';
  132.             if ( key == KEY_2 ) {
  133.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  134.                     return '@';
  135.                 }
  136.                
  137.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  138.                     return CHAR_DQUOTE;
  139.                 }
  140.                
  141.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  142.                     return CHAR_DQUOTE;
  143.                 }
  144.             }
  145.             if ( key == KEY_3 ) {
  146.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  147.                     return '#';
  148.                 }
  149.                
  150.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  151.                     return CHAR_POUNDS;
  152.                 }
  153.                
  154.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  155.                     return '#';
  156.                 }
  157.             }
  158.             if ( key == KEY_4 ) {
  159.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  160.                     return '$';
  161.                 }
  162.                
  163.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  164.                     return '$';
  165.                 }
  166.                
  167.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  168.                     return CHAR_EURO;
  169.                 }
  170.             }
  171.             if ( key == KEY_5 ) {
  172.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  173.                     return '%';
  174.                 }
  175.                
  176.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  177.                     return '%';
  178.                 }
  179.                
  180.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  181.                     return '%';
  182.                 }
  183.             }
  184.             if ( key == KEY_6 ) {
  185.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  186.                     return '^';
  187.                 }
  188.                
  189.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  190.                     return '^';
  191.                 }
  192.                
  193.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  194.                     return '^';
  195.                 }
  196.             }
  197.             if ( key == KEY_7 ) {
  198.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  199.                     return '&';
  200.                 }
  201.                
  202.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  203.                     return '&';
  204.                 }
  205.                
  206.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  207.                     return '&';
  208.                 }
  209.             }
  210.             if ( key == KEY_8 ) {
  211.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  212.                     return '*';
  213.                 }
  214.                
  215.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  216.                     return '*';
  217.                 }
  218.                
  219.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  220.                     return '*';
  221.                 }
  222.             }
  223.             if ( key == KEY_9 ) {
  224.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  225.                     return '(';
  226.                 }
  227.                
  228.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  229.                     return '(';
  230.                 }
  231.                
  232.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  233.                     return '(';
  234.                 }
  235.             }
  236.             if ( key == KEY_TILDE ) {
  237.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  238.                     return '~';
  239.                 }
  240.                
  241.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  242.                     return '~';
  243.                 }
  244.                
  245.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  246.                     return '~';
  247.                 }
  248.             }
  249.             if ( key == KEY_MINUS ) {
  250.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  251.                     return '_';
  252.                 }
  253.                
  254.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  255.                     return '_';
  256.                 }
  257.                
  258.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  259.                     return '_';
  260.                 }
  261.             }
  262.             if ( key == KEY_EQUALS ) {
  263.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  264.                     return '+';
  265.                 }
  266.                
  267.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  268.                     return '+';
  269.                 }
  270.                
  271.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  272.                     return '+';
  273.                 }
  274.             }
  275.             if ( key == KEY_BACKSPACE ) { //-2 is backspace
  276.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  277.                     return -2;
  278.                 }
  279.                
  280.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  281.                     return -2;
  282.                 }
  283.                
  284.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  285.                     return -2;
  286.                 }
  287.             }
  288.             if ( key == KEY_TAB ) {
  289.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  290.                     return CHAR_TAB;
  291.                 }
  292.                
  293.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  294.                     return CHAR_TAB;
  295.                 }
  296.                
  297.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  298.                     return CHAR_TAB;
  299.                 }
  300.             }
  301.             if ( key == KEY_OPENBRACE ) {
  302.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  303.                     return '{';
  304.                 }
  305.                
  306.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  307.                     return '{';
  308.                 }
  309.                
  310.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  311.                     return '{';
  312.                 }
  313.             }
  314.             if ( key == KEY_CLOSEBRACE ) {
  315.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  316.                     return '}';
  317.                 }
  318.                
  319.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  320.                     return '}';
  321.                 }
  322.                
  323.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  324.                     return '}';
  325.                 }
  326.             }
  327.             if ( key == KEY_ENTER ) {
  328.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  329.                     return CHAR_CR;
  330.                 }
  331.                
  332.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  333.                     return CHAR_CR;
  334.                 }
  335.                
  336.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  337.                     return CHAR_CR;
  338.                 }
  339.             }
  340.             if ( key == KEY_COLON ) {
  341.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  342.                     return ':';
  343.                 }
  344.                
  345.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  346.                     return ':';
  347.                 }
  348.                
  349.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  350.                     return ':';
  351.                 }
  352.             }
  353.             if ( key == KEY_QUOTE ) {
  354.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  355.                     return '"';
  356.                 }
  357.                
  358.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  359.                     return '@';
  360.                 }
  361.                
  362.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  363.                     return '@';
  364.                 }
  365.             }
  366.             if ( key == KEY_BACKSLASH ) {
  367.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  368.                     return '|';
  369.                 }
  370.                
  371.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  372.                     return '|';
  373.                 }
  374.                
  375.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  376.                     return '|';
  377.                 }
  378.             }
  379.             if ( key == KEY_BACKSLASH2 ) {
  380.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  381.                     return '|';
  382.                 }
  383.                
  384.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  385.                     return '|';
  386.                 }
  387.                
  388.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  389.                     return '|';
  390.                 }
  391.             }
  392.             if ( key == KEY_COMMA ) {
  393.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  394.                     return '<';
  395.                 }
  396.                
  397.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  398.                     return '<';
  399.                 }
  400.                
  401.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  402.                     return '<';
  403.                 }
  404.             }
  405.             if ( key == KEY_STOP ) {
  406.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  407.                     return '>';
  408.                 }
  409.                
  410.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  411.                     return '>';
  412.                 }
  413.                
  414.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  415.                     return '>';
  416.                 }
  417.             }
  418.             if ( key == KEY_SLASH ) {
  419.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  420.                     return '?';
  421.                 }
  422.                
  423.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  424.                     return '?';
  425.                 }
  426.                
  427.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  428.                     return '?';
  429.                 }
  430.             }
  431.             if ( key == KEY_SPACE ) {
  432.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  433.                     return ' ';
  434.                 }
  435.                
  436.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  437.                     return ' ';
  438.                 }
  439.                
  440.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  441.                     return ' ';
  442.                 }
  443.             }
  444.             if ( key == KEY_DEL ) { //-4 is delete
  445.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  446.                     return -4;
  447.                 }
  448.                
  449.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  450.                     return -4;
  451.                 }
  452.                
  453.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  454.                     return -4;
  455.                 }
  456.             }
  457.             if ( key == KEY_HOME ) { //-8 is home
  458.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  459.                     return -8;
  460.                 }
  461.                
  462.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  463.                     return -8;
  464.                 }
  465.                
  466.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  467.                     return -8;
  468.                 }
  469.             }
  470.             if ( key == KEY_END ) { //-16 is 'end'
  471.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  472.                     return -16;
  473.                 }
  474.                
  475.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  476.                     return -16;
  477.                 }
  478.                
  479.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  480.                     return -16;
  481.                 }
  482.             }
  483.             if ( key == KEY_PGUP ) { //-32
  484.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  485.                     return -32;
  486.                 }
  487.                
  488.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  489.                     return -32;
  490.                 }
  491.                
  492.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  493.                     return -32;
  494.                 }
  495.             }
  496.             if ( key == KEY_PGDN ) { //-64
  497.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  498.                     return -64;
  499.                 }
  500.                
  501.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  502.                     return -64;
  503.                 }
  504.                
  505.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  506.                     return -64;
  507.                 }
  508.             }
  509.             if ( key == KEY_UP ) { //ARROWS
  510.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  511.                     return -128;
  512.                 }
  513.                
  514.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  515.                     return -128;
  516.                 }
  517.                
  518.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  519.                     return -128;
  520.                 }
  521.             }
  522.             if ( key == KEY_LEFT ) { //ARROWS
  523.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  524.                     return -256;
  525.                 }
  526.                
  527.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  528.                     return -256;
  529.                 }
  530.                
  531.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  532.                     return -256;
  533.                 }
  534.             }
  535.             if ( key == KEY_DOWN ) { //ARROWS
  536.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  537.                     return -512;
  538.                 }
  539.                
  540.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  541.                     return -512;
  542.                 }
  543.                
  544.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  545.                     return -512;
  546.                 }
  547.             }
  548.             if ( key == KEY_RIGHT ) { //ARROWS
  549.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  550.                     return -1024;
  551.                 }
  552.                
  553.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  554.                     return -1024;
  555.                 }
  556.                
  557.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  558.                     return -1024;
  559.                 }
  560.             }
  561.             if ( key == KEY_SLASH_PAD ) { //Start Numeric Pad
  562.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  563.                     return '/';
  564.                 }
  565.                
  566.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  567.                     return '/';
  568.                 }
  569.                
  570.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  571.                     return '/';
  572.                 }
  573.             }
  574.             if ( key == KEY_ASTERISK ) {
  575.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  576.                     return '*';
  577.                 }
  578.                
  579.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  580.                     return '*';
  581.                 }
  582.                
  583.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  584.                     return '*';
  585.                 }
  586.             }
  587.             if ( key == KEY_MINUS_PAD ) {
  588.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  589.                     return '-';
  590.                 }
  591.                
  592.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  593.                     return '-';
  594.                 }
  595.                
  596.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  597.                     return '-';
  598.                 }
  599.             }
  600.             if ( key == KEY_PLUS_PAD ) {
  601.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  602.                     return '+';
  603.                 }
  604.                
  605.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  606.                     return '+';
  607.                 }
  608.                
  609.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  610.                     return '+';
  611.                 }
  612.             }
  613.             if ( key == KEY_DEL_PAD ) {
  614.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  615.                     return -4;
  616.                 }
  617.                
  618.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  619.                     return -4;
  620.                 }
  621.                
  622.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  623.                     return -4;
  624.                 }
  625.             }
  626.             if ( key == KEY_ENTER_PAD ) {
  627.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  628.                     return CHAR_CR;
  629.                 }
  630.                
  631.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  632.                     return CHAR_CR;
  633.                 }
  634.                
  635.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  636.                     return CHAR_CR;
  637.                 }
  638.             }
  639.             if ( key == KEY_PRTSCR ) {
  640.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  641.                     return -2048;
  642.                 }
  643.                
  644.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  645.                     return -2048;
  646.                 }
  647.                
  648.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  649.                     return -2048;
  650.                 }
  651.             }
  652.             if ( key == KEY_PAUSE ) {
  653.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  654.                     return -4096;
  655.                 }
  656.                
  657.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  658.                     return -4096;
  659.                 }
  660.                
  661.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  662.                     return -4096;
  663.                 }
  664.             }
  665.             if ( key == KEY_CIRCUMFLEX ) {
  666.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  667.                     return '^';
  668.                 }
  669.                
  670.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  671.                     return '^';
  672.                 }
  673.                
  674.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  675.                     return '^';
  676.                 }
  677.             }
  678.             if ( key == KEY_COLON2 ) {
  679.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  680.                     return ':';
  681.                 }
  682.                
  683.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  684.                     return ':';
  685.                 }
  686.                
  687.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  688.                     return ':';
  689.                 }
  690.             }
  691.            
  692.         }
  693.        
  694.        
  695.        
  696.         /*
  697.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  698.            
  699.         }
  700.        
  701.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  702.            
  703.         }
  704.        
  705.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  706.            
  707.         }
  708.         */
  709.     }//End modifier keys
  710.    
  711.     //otherwise no modifier
  712.     if ( key == KEY_A ) return 'a';
  713.     if ( key == KEY_B ) return 'b';
  714.     if ( key == KEY_C ) return 'c';
  715.     if ( key == KEY_D ) return 'd';
  716.     if ( key == KEY_E ) return 'e';
  717.     if ( key == KEY_F ) return 'f';
  718.     if ( key == KEY_G ) return 'g';
  719.     if ( key == KEY_H ) return 'h';
  720.     if ( key == KEY_I ) return 'i';
  721.     if ( key == KEY_J ) return 'j';
  722.     if ( key == KEY_K ) return 'k';
  723.     if ( key == KEY_L ) return 'l';
  724.     if ( key == KEY_M ) return 'm';
  725.     if ( key == KEY_N ) return 'n';
  726.     if ( key == KEY_O ) return 'o';
  727.     if ( key == KEY_P ) return 'p';
  728.     if ( key == KEY_Q ) return 'q';
  729.     if ( key == KEY_R ) return 'r';
  730.     if ( key == KEY_S ) return 's';
  731.     if ( key == KEY_T ) return 't';
  732.     if ( key == KEY_U ) return 'u';
  733.     if ( key == KEY_V ) return 'v';
  734.     if ( key == KEY_W ) return 'w';
  735.     if ( key == KEY_X ) return 'x';
  736.     if ( key == KEY_Y ) return 'y';
  737.     if ( key == KEY_Z ) return 'z';
  738.    
  739.     if ( key == KEY_0 || key == KEY_0_PAD ) return '0';
  740.     if ( key == KEY_1 || key == KEY_1_PAD ) return '1';
  741.     if ( key == KEY_2 || key == KEY_2_PAD ) return '2';
  742.     if ( key == KEY_3 || key == KEY_3_PAD ) return '3';
  743.     if ( key == KEY_4 || key == KEY_4_PAD ) return '4';
  744.     if ( key == KEY_5 || key == KEY_5_PAD ) return '5';
  745.     if ( key == KEY_6 || key == KEY_6_PAD ) return '6';
  746.     if ( key == KEY_7 || key == KEY_7_PAD ) return '7';
  747.     if ( key == KEY_8 || key == KEY_8_PAD ) return '8';
  748.     if ( key == KEY_9 || key == KEY_9_PAD ) return '9';
  749.    
  750.  
  751.     if ( key == KEY_TILDE ) {
  752.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  753.             return '`';
  754.         }
  755.        
  756.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  757.             return '`';
  758.         }
  759.        
  760.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  761.             return '`';
  762.         }
  763.     }
  764.     if ( key == KEY_MINUS ) {
  765.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  766.             return '-';
  767.         }
  768.        
  769.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  770.             return '-';
  771.         }
  772.        
  773.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  774.             return '-';
  775.         }
  776.     }
  777.     if ( key == KEY_EQUALS ) {
  778.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  779.             return '=';
  780.         }
  781.        
  782.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  783.             return '=';
  784.         }
  785.        
  786.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  787.             return '=';
  788.         }
  789.     }
  790.     if ( key == KEY_BACKSPACE ) { //-2 is backspace
  791.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  792.             return -2;
  793.         }
  794.        
  795.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  796.             return -2;
  797.         }
  798.        
  799.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  800.             return -2;
  801.         }
  802.     }
  803.     if ( key == KEY_TAB ) {
  804.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  805.             return CHAR_TAB;
  806.         }
  807.        
  808.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  809.             return CHAR_TAB;
  810.         }
  811.        
  812.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  813.             return CHAR_TAB;
  814.         }
  815.     }
  816.     if ( key == KEY_OPENBRACE ) {
  817.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  818.             return '[';
  819.         }
  820.        
  821.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  822.             return '[';
  823.         }
  824.        
  825.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  826.             return '[';
  827.         }
  828.     }
  829.     if ( key == KEY_CLOSEBRACE ) {
  830.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  831.             return ']';
  832.         }
  833.        
  834.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  835.             return ']';
  836.         }
  837.        
  838.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  839.             return ']';
  840.         }
  841.     }
  842.     if ( key == KEY_ENTER ) {
  843.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  844.             return CHAR_LF;
  845.         }
  846.        
  847.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  848.             return CHAR_LF;
  849.         }
  850.        
  851.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  852.             return CHAR_LF;
  853.         }
  854.     }
  855.     if ( key == KEY_COLON ) {
  856.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  857.             return CHAR_SCOLON;
  858.         }
  859.        
  860.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  861.             return CHAR_SCOLON;
  862.         }
  863.        
  864.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  865.             return CHAR_SCOLON;
  866.         }
  867.     }
  868.     if ( key == KEY_QUOTE ) {
  869.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  870.             return CHAR_QUOTE;
  871.         }
  872.        
  873.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  874.             return CHAR_QUOTE;
  875.         }
  876.        
  877.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  878.             return CHAR_QUOTE;
  879.         }
  880.     }
  881.     if ( key == KEY_BACKSLASH ) {
  882.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  883.             return CHAR_BSLASH;
  884.         }
  885.        
  886.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  887.             return CHAR_BSLASH;
  888.         }
  889.        
  890.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  891.             return CHAR_BSLASH;
  892.         }
  893.     }
  894.     if ( key == KEY_BACKSLASH2 ) {
  895.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  896.             return CHAR_BSLASH;
  897.         }
  898.        
  899.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  900.             return CHAR_BSLASH;
  901.         }
  902.        
  903.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  904.             return CHAR_BSLASH;
  905.         }
  906.     }
  907.     if ( key == KEY_COMMA ) {
  908.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  909.             return ',';
  910.         }
  911.        
  912.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  913.             return ',';
  914.         }
  915.        
  916.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  917.             return ',';
  918.         }
  919.     }
  920.     if ( key == KEY_STOP ) {
  921.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  922.             return '.';
  923.         }
  924.        
  925.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  926.             return '.';
  927.         }
  928.        
  929.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  930.             return '.';
  931.         }
  932.     }
  933.     if ( key == KEY_SLASH ) {
  934.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  935.             return '/';
  936.         }
  937.        
  938.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  939.             return '/';
  940.         }
  941.        
  942.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  943.             return '/';
  944.         }
  945.     }
  946.     if ( key == KEY_SPACE ) {
  947.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  948.             return ' ';
  949.         }
  950.        
  951.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  952.             return ' ';
  953.         }
  954.        
  955.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  956.             return ' ';
  957.         }
  958.     }
  959.     if ( key == KEY_DEL ) { //-4 is delete
  960.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  961.             return -4;
  962.         }
  963.        
  964.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  965.             return -4;
  966.         }
  967.        
  968.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  969.             return -4;
  970.         }
  971.     }
  972.     if ( key == KEY_HOME ) { //-8 is home
  973.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  974.             return -8;
  975.         }
  976.        
  977.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  978.             return -8;
  979.         }
  980.        
  981.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  982.             return -8;
  983.         }
  984.     }
  985.     if ( key == KEY_END ) { //-16 is 'end'
  986.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  987.             return -16;
  988.         }
  989.        
  990.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  991.             return -16;
  992.         }
  993.        
  994.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  995.             return -16;
  996.         }
  997.     }
  998.     if ( key == KEY_PGUP ) { //-32
  999.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1000.             return -32;
  1001.         }
  1002.        
  1003.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1004.             return -32;
  1005.         }
  1006.        
  1007.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1008.             return -32;
  1009.         }
  1010.     }
  1011.     if ( key == KEY_PGDN ) { //-64
  1012.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1013.             return -64;
  1014.         }
  1015.        
  1016.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1017.             return -64;
  1018.         }
  1019.        
  1020.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1021.             return -64;
  1022.         }
  1023.     }
  1024.     if ( key == KEY_UP ) { //ARROWS
  1025.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1026.             return -128;
  1027.         }
  1028.        
  1029.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1030.             return -128;
  1031.         }
  1032.        
  1033.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1034.             return -128;
  1035.         }
  1036.     }
  1037.     if ( key == KEY_LEFT ) { //ARROWS
  1038.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1039.             return -256;
  1040.         }
  1041.        
  1042.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1043.             return -256;
  1044.         }
  1045.        
  1046.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1047.             return -256;
  1048.         }
  1049.     }
  1050.     if ( key == KEY_DOWN ) { //ARROWS
  1051.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1052.             return -512;
  1053.         }
  1054.        
  1055.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1056.             return -512;
  1057.         }
  1058.        
  1059.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1060.             return -512;
  1061.         }
  1062.     }
  1063.     if ( key == KEY_RIGHT ) { //ARROWS
  1064.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1065.             return -1024;
  1066.         }
  1067.        
  1068.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1069.             return -1024;
  1070.         }
  1071.        
  1072.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1073.             return -1024;
  1074.         }
  1075.     }
  1076.     if ( key == KEY_SLASH_PAD ) { //Start Numeric Pad
  1077.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1078.             return '/';
  1079.         }
  1080.        
  1081.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1082.             return '/';
  1083.         }
  1084.        
  1085.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1086.             return '/';
  1087.         }
  1088.     }
  1089.     if ( key == KEY_ASTERISK ) {
  1090.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1091.             return '*';
  1092.         }
  1093.        
  1094.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1095.             return '*';
  1096.         }
  1097.        
  1098.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1099.             return '*';
  1100.         }
  1101.     }
  1102.     if ( key == KEY_MINUS_PAD ) {
  1103.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1104.             return '-';
  1105.         }
  1106.        
  1107.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1108.             return '-';
  1109.         }
  1110.        
  1111.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1112.             return '-';
  1113.         }
  1114.     }
  1115.     if ( key == KEY_PLUS_PAD ) {
  1116.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1117.             return '+';
  1118.         }
  1119.        
  1120.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1121.             return '+';
  1122.         }
  1123.        
  1124.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1125.             return '+';
  1126.         }
  1127.     }
  1128.     if ( key == KEY_DEL_PAD ) {
  1129.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1130.             return -4;
  1131.         }
  1132.        
  1133.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1134.             return -4;
  1135.         }
  1136.        
  1137.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1138.             return -4;
  1139.         }
  1140.     }
  1141.     if ( key == KEY_ENTER_PAD ) {
  1142.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1143.             return CHAR_LF;
  1144.         }
  1145.        
  1146.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1147.             return CHAR_LF;
  1148.         }
  1149.        
  1150.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1151.             return CHAR_LF;
  1152.         }
  1153.     }
  1154.     if ( key == KEY_PRTSCR ) {
  1155.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1156.             return -2048;
  1157.         }
  1158.        
  1159.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1160.             return -2048;
  1161.         }
  1162.        
  1163.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1164.             return -2048;
  1165.         }
  1166.     }
  1167.     if ( key == KEY_PAUSE ) {
  1168.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1169.             return -4096;
  1170.         }
  1171.        
  1172.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1173.             return -4096;
  1174.         }
  1175.        
  1176.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1177.             return -4096;
  1178.         }
  1179.     }
  1180.     if ( key == KEY_CIRCUMFLEX ) {
  1181.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1182.             return '^';
  1183.         }
  1184.        
  1185.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1186.             return '^';
  1187.         }
  1188.        
  1189.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1190.             return '^';
  1191.         }
  1192.     }
  1193.     if ( key == KEY_COLON2 ) {
  1194.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1195.             return ':';
  1196.         }
  1197.        
  1198.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1199.             return ':';
  1200.         }
  1201.        
  1202.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1203.             return ':';
  1204.         }
  1205.     }
  1206.    
  1207. }
  1208.  
  1209. //Key Constants -- !DO NOT MODIFY
  1210.  
  1211. const int KEY_A            = 1;
  1212. const int KEY_B            = 2;
  1213. const int KEY_C            = 3;
  1214. const int KEY_D            = 4;
  1215. const int KEY_E            = 5;
  1216. const int KEY_F            = 6;
  1217. const int KEY_G            = 7;
  1218. const int KEY_H            = 8;
  1219. const int KEY_I            = 9;
  1220. const int KEY_J            = 10;
  1221. const int KEY_K            = 11;
  1222. const int KEY_L            = 12;
  1223. const int KEY_M            = 13;
  1224. const int KEY_N            = 14;
  1225. const int KEY_O            = 15;
  1226. const int KEY_P            = 16;
  1227. const int KEY_Q            = 17;
  1228. const int KEY_R            = 18;
  1229. const int KEY_S            = 19;
  1230. const int KEY_T            = 20;
  1231. const int KEY_U            = 21;
  1232. const int KEY_V            = 22;
  1233. const int KEY_W            = 23;
  1234. const int KEY_X            = 24;
  1235. const int KEY_Y            = 25;
  1236. const int KEY_Z            = 26;
  1237. const int KEY_0            = 27;
  1238. const int KEY_1            = 28;
  1239. const int KEY_2            = 29;
  1240. const int KEY_3            = 30;
  1241. const int KEY_4            = 31;
  1242. const int KEY_5            = 32;
  1243. const int KEY_6            = 33;
  1244. const int KEY_7            = 34;
  1245. const int KEY_8            = 35;
  1246. const int KEY_9            = 36;
  1247. const int KEY_0_PAD        = 37;
  1248. const int KEY_1_PAD        = 38;
  1249. const int KEY_2_PAD        = 39;
  1250. const int KEY_3_PAD        = 40;
  1251. const int KEY_4_PAD        = 41;
  1252. const int KEY_5_PAD        = 42;
  1253. const int KEY_6_PAD        = 43;
  1254. const int KEY_7_PAD        = 44;
  1255. const int KEY_8_PAD        = 45;
  1256. const int KEY_9_PAD        = 46;
  1257. const int KEY_F1           = 47;
  1258. const int KEY_F2           = 48;
  1259. const int KEY_F3           = 49;
  1260. const int KEY_F4           = 50;
  1261. const int KEY_F5           = 51;
  1262. const int KEY_F6           = 52;
  1263. const int KEY_F7           = 53;
  1264. const int KEY_F8           = 54;
  1265. const int KEY_F9           = 55;
  1266. const int KEY_F10          = 56;
  1267. const int KEY_F11          = 57;
  1268. const int KEY_F12          = 58;
  1269. const int KEY_ESC          = 59;
  1270. const int KEY_TILDE        = 60;
  1271. const int KEY_MINUS        = 61;
  1272. const int KEY_EQUALS       = 62;
  1273. const int KEY_BACKSPACE    = 63;
  1274. const int KEY_TAB          = 64;
  1275. const int KEY_OPENBRACE    = 65;
  1276. const int KEY_CLOSEBRACE   = 66;
  1277. const int KEY_ENTER        = 67;
  1278. const int KEY_COLON        = 68;
  1279. const int KEY_QUOTE        = 69;
  1280. const int KEY_BACKSLASH    = 70;
  1281. const int KEY_BACKSLASH2   = 71;
  1282. const int KEY_COMMA        = 72;
  1283. const int KEY_STOP         = 73;
  1284. const int KEY_SLASH        = 74;
  1285. const int KEY_SPACE        = 75;
  1286. const int KEY_INSERT       = 76;
  1287. const int KEY_DEL          = 77;
  1288. const int KEY_HOME         = 78;
  1289. const int KEY_END          = 79;
  1290. const int KEY_PGUP         = 80;
  1291. const int KEY_PGDN         = 81;
  1292. const int KEY_LEFT         = 82;
  1293. const int KEY_RIGHT        = 83;
  1294. const int KEY_UP           = 84;
  1295. const int KEY_DOWN         = 85;
  1296. const int KEY_SLASH_PAD    = 86;
  1297. const int KEY_ASTERISK     = 87;
  1298. const int KEY_MINUS_PAD    = 88;
  1299. const int KEY_PLUS_PAD     = 89;
  1300. const int KEY_DEL_PAD      = 90;
  1301. const int KEY_ENTER_PAD    = 91;
  1302. const int KEY_PRTSCR       = 92;
  1303. const int KEY_PAUSE        = 93;
  1304. const int KEY_ABNT_C1      = 94;
  1305. const int KEY_YEN          = 95;
  1306. const int KEY_KANA         = 96;
  1307. const int KEY_CONVERT      = 97;
  1308. const int KEY_NOCONVERT    = 98;
  1309. const int KEY_AT           = 99;
  1310. const int KEY_CIRCUMFLEX   = 100;
  1311. const int KEY_COLON2       = 101;
  1312. const int KEY_KANJI        = 102;
  1313. const int KEY_EQUALS_PAD   = 103;  /* MacOS X */
  1314. const int KEY_BACKQUOTE    = 104;  /* MacOS X */
  1315. const int KEY_SEMICOLON    = 105;  /* MacOS X */
  1316. const int KEY_COMMAND      = 106;  /* MacOS X */
  1317. const int KEY_UNKNOWN1     = 107;
  1318. const int KEY_UNKNOWN2     = 108;
  1319. const int KEY_UNKNOWN3     = 109;
  1320. const int KEY_UNKNOWN4     = 110;
  1321. const int KEY_UNKNOWN5     = 111;
  1322. const int KEY_UNKNOWN6     = 112;
  1323. const int KEY_UNKNOWN7     = 113;
  1324. const int KEY_UNKNOWN8     = 114;
  1325.  
  1326. const int KEY_MODIFIERS    = 115;
  1327.  
  1328. const int KEY_LSHIFT       = 115;
  1329. const int KEY_RSHIFT       = 116;
  1330. const int KEY_LCONTROL     = 117;
  1331. const int KEY_RCONTROL     = 118;
  1332. const int KEY_ALT          = 119;
  1333. const int KEY_ALTGR        = 120;
  1334. const int KEY_LWIN         = 121;
  1335. const int KEY_RWIN         = 122;
  1336. const int KEY_MENU         = 123;
  1337. const int KEY_SCRLOCK      = 124;
  1338. const int KEY_NUMLOCK      = 125;
  1339. const int KEY_CAPSLOCK     = 126;
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×