Advertisement
ZoriaRPG

std_keyboard.zh

Jan 18th, 2017
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.93 KB | None | 0 0
  1. const int KEYBOARD_TYPE = 0; //0 == US, 1 == UK, 2 == EU/GR
  2. const int KEYBOARD_LAYOUT_US = 0;
  3. const int KEYBOARD_LAYOUT_UK = 1;
  4. const int KEYBOARD_LAYOUT_EU = 2;
  5.  
  6. bool ReadKey(int key){
  7.     NoInput();
  8.     return Game->ReadKey[key];
  9. }
  10.  
  11. int KeyToChar(int key){
  12.     bool caps;
  13.     if ( key >= 1 && key <= 26 && KeyPress[KEY_LSHIFT] || KeyPress[KEY_RSHIFT] || KeyPress[KEY_CAPSLOCK] ) {
  14.         if ( key == KEY_A ) return 'A';
  15.         if ( key == KEY_B ) return 'B';
  16.         if ( key == KEY_C ) return 'C';
  17.         if ( key == KEY_D ) return 'D';
  18.         if ( key == KEY_E ) return 'E';
  19.         if ( key == KEY_F ) return 'F';
  20.         if ( key == KEY_G ) return 'G';
  21.         if ( key == KEY_H ) return 'H';
  22.         if ( key == KEY_I ) return 'I';
  23.         if ( key == KEY_J ) return 'J';
  24.         if ( key == KEY_K ) return 'K';
  25.         if ( key == KEY_L ) return 'L';
  26.         if ( key == KEY_M ) return 'M';
  27.         if ( key == KEY_N ) return 'N';
  28.         if ( key == KEY_O ) return 'O';
  29.         if ( key == KEY_P ) return 'P';
  30.         if ( key == KEY_Q ) return 'Q';
  31.         if ( key == KEY_R ) return 'R';
  32.         if ( key == KEY_S ) return 'S';
  33.         if ( key == KEY_T ) return 'T';
  34.         if ( key == KEY_U ) return 'U';
  35.         if ( key == KEY_V ) return 'V';
  36.         if ( key == KEY_W ) return 'W';
  37.         if ( key == KEY_X ) return 'X';
  38.         if ( key == KEY_Y ) return 'Y';
  39.         if ( key == KEY_Z ) return 'Z';
  40.         //Shiften numeric row
  41.        
  42.         if ( key == KEY_0 || key == KEY_0_PAD ) return '0';
  43.         if ( key == KEY_1 ) return '!';
  44.         if ( key == KEY_2 ) {
  45.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  46.                 return '@';
  47.             }
  48.            
  49.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  50.                 return CHAR_DOUBlEQUOTE;
  51.             }
  52.            
  53.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  54.                 return CHAR_DOUBLEQUOTE;
  55.             }
  56.         }
  57.         if ( key == KEY_3 ) {
  58.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  59.                 return '@';
  60.             }
  61.            
  62.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  63.                 return CHAR_DOUBlEQUOTE;
  64.             }
  65.            
  66.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  67.                 return CHAR_DOUBLEQUOTE;
  68.             }
  69.         }
  70.        
  71.         if ( key == KEY_3 ) {
  72.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  73.                 return '@';
  74.             }
  75.            
  76.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  77.                 return CHAR_DOUBlEQUOTE;
  78.             }
  79.            
  80.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  81.                 return CHAR_DOUBLEQUOTE;
  82.             }
  83.         }
  84.        
  85.         if ( key == KEY_3 ) {
  86.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  87.                 return '@';
  88.             }
  89.            
  90.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  91.                 return CHAR_DOUBlEQUOTE;
  92.             }
  93.            
  94.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  95.                 return CHAR_DOUBLEQUOTE;
  96.             }
  97.         }
  98.        
  99.         if ( key == KEY_3 ) {
  100.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  101.                 return '@';
  102.             }
  103.            
  104.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  105.                 return CHAR_DOUBlEQUOTE;
  106.             }
  107.            
  108.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  109.                 return CHAR_DOUBLEQUOTE;
  110.             }
  111.         }
  112.        
  113.         if ( key == KEY_3 ) {
  114.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  115.                 return '@';
  116.             }
  117.            
  118.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  119.                 return CHAR_DOUBlEQUOTE;
  120.             }
  121.            
  122.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  123.                 return CHAR_DOUBLEQUOTE;
  124.             }
  125.         }
  126.        
  127.         if ( key == KEY_3 ) {
  128.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  129.                 return '@';
  130.             }
  131.            
  132.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  133.                 return CHAR_DOUBlEQUOTE;
  134.             }
  135.            
  136.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  137.                 return CHAR_DOUBLEQUOTE;
  138.             }
  139.         }
  140.        
  141.         if ( key == KEY_3 ) {
  142.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  143.                 return '@';
  144.             }
  145.            
  146.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  147.                 return CHAR_DOUBlEQUOTE;
  148.             }
  149.            
  150.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  151.                 return CHAR_DOUBLEQUOTE;
  152.             }
  153.         }
  154.        
  155.         if ( key == KEY_3 ) {
  156.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  157.                 return '@';
  158.             }
  159.            
  160.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  161.                 return CHAR_DOUBlEQUOTE;
  162.             }
  163.            
  164.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  165.                 return CHAR_DOUBLEQUOTE;
  166.             }
  167.         }
  168.        
  169.         if ( key == KEY_3 ) {
  170.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  171.                 return '@';
  172.             }
  173.            
  174.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  175.                 return CHAR_DOUBlEQUOTE;
  176.             }
  177.            
  178.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  179.                 return CHAR_DOUBLEQUOTE;
  180.             }
  181.         }
  182.        
  183.         if ( key == KEY_3 ) {
  184.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  185.                 return '@';
  186.             }
  187.            
  188.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  189.                 return CHAR_DOUBlEQUOTE;
  190.             }
  191.            
  192.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  193.                 return CHAR_DOUBLEQUOTE;
  194.             }
  195.         }
  196.         if ( key == KEY_3 ) {
  197.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  198.                 return '@';
  199.             }
  200.            
  201.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  202.                 return CHAR_DOUBlEQUOTE;
  203.             }
  204.            
  205.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  206.                 return CHAR_DOUBLEQUOTE;
  207.             }
  208.         }
  209.        
  210.         if ( key == KEY_3 ) {
  211.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  212.                 return '@';
  213.             }
  214.            
  215.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  216.                 return CHAR_DOUBlEQUOTE;
  217.             }
  218.            
  219.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  220.                 return CHAR_DOUBLEQUOTE;
  221.             }
  222.         }
  223.         if ( key == KEY_3 ) {
  224.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  225.                 return '@';
  226.             }
  227.            
  228.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  229.                 return CHAR_DOUBlEQUOTE;
  230.             }
  231.            
  232.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  233.                 return CHAR_DOUBLEQUOTE;
  234.             }
  235.         }
  236.         if ( key == KEY_3 ) {
  237.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  238.                 return '@';
  239.             }
  240.            
  241.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  242.                 return CHAR_DOUBlEQUOTE;
  243.             }
  244.            
  245.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  246.                 return CHAR_DOUBLEQUOTE;
  247.             }
  248.         }
  249.         if ( key == KEY_3 ) {
  250.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  251.                 return '@';
  252.             }
  253.            
  254.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  255.                 return CHAR_DOUBlEQUOTE;
  256.             }
  257.            
  258.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  259.                 return CHAR_DOUBLEQUOTE;
  260.             }
  261.         }
  262.         if ( key == KEY_3 ) {
  263.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  264.                 return '@';
  265.             }
  266.            
  267.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  268.                 return CHAR_DOUBlEQUOTE;
  269.             }
  270.            
  271.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  272.                 return CHAR_DOUBLEQUOTE;
  273.             }
  274.         }
  275.         if ( key == KEY_3 ) {
  276.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  277.                 return '@';
  278.             }
  279.            
  280.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  281.                 return CHAR_DOUBlEQUOTE;
  282.             }
  283.            
  284.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  285.                 return CHAR_DOUBLEQUOTE;
  286.             }
  287.         }
  288.         if ( key == KEY_3 ) {
  289.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  290.                 return '@';
  291.             }
  292.            
  293.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  294.                 return CHAR_DOUBlEQUOTE;
  295.             }
  296.            
  297.             if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  298.                 return CHAR_DOUBLEQUOTE;
  299.             }
  300.         }
  301.         /*
  302.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  303.            
  304.         }
  305.        
  306.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  307.            
  308.         }
  309.        
  310.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  311.            
  312.         }
  313.         */
  314.     }
  315.    
  316.     //otherwise no modifier
  317.     if ( key == KEY_A ) return 'a';
  318.     if ( key == KEY_B ) return 'b';
  319.     if ( key == KEY_C ) return 'c';
  320.     if ( key == KEY_D ) return 'd';
  321.     if ( key == KEY_E ) return 'e';
  322.     if ( key == KEY_F ) return 'f';
  323.     if ( key == KEY_G ) return 'g';
  324.     if ( key == KEY_H ) return 'h';
  325.     if ( key == KEY_I ) return 'i';
  326.     if ( key == KEY_J ) return 'j';
  327.     if ( key == KEY_K ) return 'k';
  328.     if ( key == KEY_L ) return 'l';
  329.     if ( key == KEY_M ) return 'm';
  330.     if ( key == KEY_N ) return 'n';
  331.     if ( key == KEY_O ) return 'o';
  332.     if ( key == KEY_P ) return 'p';
  333.     if ( key == KEY_Q ) return 'q';
  334.     if ( key == KEY_R ) return 'r';
  335.     if ( key == KEY_S ) return 's';
  336.     if ( key == KEY_T ) return 't';
  337.     if ( key == KEY_U ) return 'u';
  338.     if ( key == KEY_V ) return 'v';
  339.     if ( key == KEY_W ) return 'w';
  340.     if ( key == KEY_X ) return 'x';
  341.     if ( key == KEY_Y ) return 'y';
  342.     if ( key == KEY_Z ) return 'z';
  343.    
  344.     if ( key == KEY_0 || key == KEY_0_PAD ) return '0';
  345.     if ( key == KEY_1 || key == KEY_1_PAD ) return '1';
  346.     if ( key == KEY_2 || key == KEY_2_PAD ) return '2';
  347.     if ( key == KEY_3 || key == KEY_3_PAD ) return '3';
  348.     if ( key == KEY_4 || key == KEY_4_PAD ) return '4';
  349.     if ( key == KEY_5 || key == KEY_5_PAD ) return '5';
  350.     if ( key == KEY_6 || key == KEY_6_PAD ) return '6';
  351.     if ( key == KEY_7 || key == KEY_7_PAD ) return '7';
  352.     if ( key == KEY_8 || key == KEY_8_PAD ) return '8';
  353.     if ( key == KEY_9 || key == KEY_9_PAD ) return '9';
  354.    
  355. }
  356.  
  357. /*
  358.  
  359. KEY_TILDE
  360. KEY_MINUS || KEY_MINUS_PAD
  361. KEY_EQUALS
  362. KEY_TAB
  363. KEY_ENTER
  364. KEY_OPENBRACE
  365. KEY_CLOSEBRACE
  366. KEY_COLON
  367. KEY_QUOTE
  368. KEY_BACKSLASH
  369. KEY_BACKSLASH2
  370. KEY_COMMA
  371. KEY_SLASH || KEY_SLASH_PAD
  372. KEY_STOP
  373. KEY_SPACE
  374. KEY_INSERT
  375. KEY_SEMICOLON
  376.  
  377. */
  378.    
  379. const int ___KEY_TIMER = 255;
  380. const int LEYBOARD_REPEAT_RATE = 3; //frames per keypress. 3 == 1/20 second
  381.  
  382. const int KEY_A            = 1,
  383. const int KEY_B            = 2,
  384. const int KEY_C            = 3,
  385. const int KEY_D            = 4,
  386. const int KEY_E            = 5,
  387. const int KEY_F            = 6,
  388. const int KEY_G            = 7,
  389. const int KEY_H            = 8,
  390. const int KEY_I            = 9,
  391. const int KEY_J            = 10,
  392. const int KEY_K            = 11,
  393. const int KEY_L            = 12,
  394. const int KEY_M            = 13,
  395. const int KEY_N            = 14,
  396. const int KEY_O            = 15,
  397. const int KEY_P            = 16,
  398. const int KEY_Q            = 17,
  399. const int KEY_R            = 18,
  400. const int KEY_S            = 19,
  401. const int KEY_T            = 20,
  402. const int KEY_U            = 21,
  403. const int KEY_V            = 22,
  404. const int KEY_W            = 23,
  405. const int KEY_X            = 24,
  406. const int KEY_Y            = 25,
  407. const int KEY_Z            = 26,
  408. const int KEY_0            = 27,
  409. const int KEY_1            = 28,
  410. const int KEY_2            = 29,
  411. const int KEY_3            = 30,
  412. const int KEY_4            = 31,
  413. const int KEY_5            = 32,
  414. const int KEY_6            = 33,
  415. const int KEY_7            = 34,
  416. const int KEY_8            = 35,
  417. const int KEY_9            = 36,
  418. const int KEY_0_PAD        = 37,
  419. const int KEY_1_PAD        = 38,
  420. const int KEY_2_PAD        = 39,
  421. const int KEY_3_PAD        = 40,
  422. const int KEY_4_PAD        = 41,
  423. const int KEY_5_PAD        = 42,
  424. const int KEY_6_PAD        = 43,
  425. const int KEY_7_PAD        = 44,
  426. const int KEY_8_PAD        = 45,
  427. const int KEY_9_PAD        = 46,
  428. const int KEY_F1           = 47,
  429. const int KEY_F2           = 48,
  430. const int KEY_F3           = 49,
  431. const int KEY_F4           = 50,
  432. const int KEY_F5           = 51,
  433. const int KEY_F6           = 52,
  434. const int KEY_F7           = 53,
  435. const int KEY_F8           = 54,
  436. const int KEY_F9           = 55,
  437. const int KEY_F10          = 56,
  438. const int KEY_F11          = 57,
  439. const int KEY_F12          = 58,
  440. const int KEY_ESC          = 59,
  441. const int KEY_TILDE        = 60,
  442. const int KEY_MINUS        = 61,
  443. const int KEY_EQUALS       = 62,
  444. const int KEY_BACKSPACE    = 63,
  445. const int KEY_TAB          = 64,
  446. const int KEY_OPENBRACE    = 65,
  447. const int KEY_CLOSEBRACE   = 66,
  448. const int KEY_ENTER        = 67,
  449. const int KEY_COLON        = 68,
  450. const int KEY_QUOTE        = 69,
  451. const int KEY_BACKSLASH    = 70,
  452. const int KEY_BACKSLASH2   = 71,
  453. const int KEY_COMMA        = 72,
  454. const int KEY_STOP         = 73,
  455. const int KEY_SLASH        = 74,
  456. const int KEY_SPACE        = 75,
  457. const int KEY_INSERT       = 76,
  458. const int KEY_DEL          = 77,
  459. const int KEY_HOME         = 78,
  460. const int KEY_END          = 79,
  461. const int KEY_PGUP         = 80,
  462. const int KEY_PGDN         = 81,
  463. const int KEY_LEFT         = 82,
  464. const int KEY_RIGHT        = 83,
  465. const int KEY_UP           = 84,
  466. const int KEY_DOWN         = 85,
  467. const int KEY_SLASH_PAD    = 86,
  468. const int KEY_ASTERISK     = 87,
  469. const int KEY_MINUS_PAD    = 88,
  470. const int KEY_PLUS_PAD     = 89,
  471. const int KEY_DEL_PAD      = 90,
  472. const int KEY_ENTER_PAD    = 91,
  473. const int KEY_PRTSCR       = 92,
  474. const int KEY_PAUSE        = 93,
  475. const int KEY_ABNT_C1      = 94,
  476. const int KEY_YEN          = 95,
  477. const int KEY_KANA         = 96,
  478. const int KEY_CONVERT      = 97,
  479. const int KEY_NOCONVERT    = 98,
  480. const int KEY_AT           = 99,
  481. const int KEY_CIRCUMFLEX   = 100,
  482. const int KEY_COLON2       = 101,
  483. const int KEY_KANJI        = 102,
  484. const int KEY_EQUALS_PAD   = 103,  /* MacOS X */
  485. const int KEY_BACKQUOTE    = 104,  /* MacOS X */
  486. const int KEY_SEMICOLON    = 105,  /* MacOS X */
  487. const int KEY_COMMAND      = 106,  /* MacOS X */
  488. const int KEY_UNKNOWN1     = 107,
  489. const int KEY_UNKNOWN2     = 108,
  490. const int KEY_UNKNOWN3     = 109,
  491. const int KEY_UNKNOWN4     = 110,
  492. const int KEY_UNKNOWN5     = 111,
  493. const int KEY_UNKNOWN6     = 112,
  494. const int KEY_UNKNOWN7     = 113,
  495. const int KEY_UNKNOWN8     = 114,
  496.  
  497. const int KEY_MODIFIERS    = 115,
  498.  
  499. const int KEY_LSHIFT       = 115,
  500. const int KEY_RSHIFT       = 116,
  501. const int KEY_LCONTROL     = 117,
  502. const int KEY_RCONTROL     = 118,
  503. const int KEY_ALT          = 119,
  504. const int KEY_ALTGR        = 120,
  505. const int KEY_LWIN         = 121,
  506. const int KEY_RWIN         = 122,
  507. const int KEY_MENU         = 123,
  508. const int KEY_SCRLOCK      = 124,
  509. const int KEY_NUMLOCK      = 125,
  510. const int KEY_CAPSLOCK     = 126,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement