]> git.jsancho.org Git - lugaru.git/blob - Source/MacInput.cpp
d494cdb6efa3264bff935a923db815d853998b1e
[lugaru.git] / Source / MacInput.cpp
1 /**> HEADER FILES <**/
2 #include "MacInput.h"
3 #include "String.h"
4
5 extern bool keyboardfrozen;
6
7 /********************> IsKeyDown() <*****/
8 Boolean IsKeyDown( unsigned char *keyMap, unsigned short theKey )
9 {
10         if(keyboardfrozen)return 0;
11
12         static long     keyMapIndex;
13         static Boolean  isKeyDown;
14         static short    bitToCheck;
15         
16         // Calculate the key map index
17         keyMapIndex = keyMap[theKey/8];
18         
19         // Calculate the individual bit to check
20         bitToCheck = theKey%8;
21         
22         // Check the status of the key
23         isKeyDown = ( keyMapIndex >> bitToCheck ) & 0x01;
24         
25         // Return the status of the key
26         return isKeyDown;
27         
28 }
29
30 unsigned short  CharToKey(char* which)
31 {
32         if(!strcmp(which,"a")){
33                 return MAC_A_KEY;
34         }
35         if(!strcmp(which,"b")){
36                 return MAC_B_KEY;
37         }
38         if(!strcmp(which,"c")){
39                 return MAC_C_KEY;
40         }
41         if(!strcmp(which,"d")){
42                 return MAC_D_KEY;
43         }
44         if(!strcmp(which,"e")){
45                 return MAC_E_KEY;
46         }
47         if(!strcmp(which,"f")){
48                 return MAC_F_KEY;
49         }
50         if(!strcmp(which,"g")){
51                 return MAC_G_KEY;
52         }
53         if(!strcmp(which,"h")){
54                 return MAC_H_KEY;
55         }
56         if(!strcmp(which,"i")){
57                 return MAC_I_KEY;
58         }
59         if(!strcmp(which,"j")){
60                 return MAC_J_KEY;
61         }
62         if(!strcmp(which,"k")){
63                 return MAC_K_KEY;
64         }
65         if(!strcmp(which,"l")){
66                 return MAC_L_KEY;
67         }
68         if(!strcmp(which,"m")){
69                 return MAC_M_KEY;
70         }
71         if(!strcmp(which,"n")){
72                 return MAC_N_KEY;
73         }
74         if(!strcmp(which,"o")){
75                 return MAC_O_KEY;
76         }
77         if(!strcmp(which,"p")){
78                 return MAC_P_KEY;
79         }
80         if(!strcmp(which,"q")){
81                 return MAC_Q_KEY;
82         }
83         if(!strcmp(which,"r")){
84                 return MAC_R_KEY;
85         }
86         if(!strcmp(which,"s")){
87                 return MAC_S_KEY;
88         }
89         if(!strcmp(which,"t")){
90                 return MAC_T_KEY;
91         }
92         if(!strcmp(which,"u")){
93                 return MAC_U_KEY;
94         }
95         if(!strcmp(which,"v")){
96                 return MAC_V_KEY;
97         }
98         if(!strcmp(which,"w")){
99                 return MAC_W_KEY;
100         }
101         if(!strcmp(which,"x")){
102                 return MAC_X_KEY;
103         }
104         if(!strcmp(which,"y")){
105                 return MAC_Y_KEY;
106         }
107         if(!strcmp(which,"z")){
108                 return MAC_Z_KEY;
109         }
110         if(!strcmp(which,"0")){
111                 return MAC_NUMPAD_0_KEY;
112         }
113         if(!strcmp(which,"1")){
114                 return MAC_NUMPAD_1_KEY;
115         }
116         if(!strcmp(which,"2")){
117                 return MAC_NUMPAD_2_KEY;
118         }
119         if(!strcmp(which,"3")){
120                 return MAC_NUMPAD_3_KEY;
121         }
122         if(!strcmp(which,"4")){
123                 return MAC_NUMPAD_4_KEY;
124         }
125         if(!strcmp(which,"5")){
126                 return MAC_NUMPAD_5_KEY;
127         }
128         if(!strcmp(which,"6")){
129                 return MAC_NUMPAD_6_KEY;
130         }
131         if(!strcmp(which,"7")){
132                 return MAC_NUMPAD_7_KEY;
133         }
134         if(!strcmp(which,"8")){
135                 return MAC_NUMPAD_8_KEY;
136         }
137         if(!strcmp(which,"9")){
138                 return MAC_NUMPAD_9_KEY;
139         }
140         if(!strcmp(which,"enter")){
141                 return MAC_ENTER_KEY;
142         }
143         if(!strcmp(which,"control")){
144                 return MAC_CONTROL_KEY;
145         }
146         if(!strcmp(which,"return")){
147                 return MAC_RETURN_KEY;
148         }
149         if(!strcmp(which,"space")){
150                 return MAC_SPACE_KEY;
151         }
152         if(!strcmp(which,"shift")){
153                 return MAC_SHIFT_KEY;
154         }
155         if(!strcmp(which,"uparrow")){
156                 return MAC_ARROW_UP_KEY;
157         }
158         if(!strcmp(which,"downarrow")){
159                 return MAC_ARROW_DOWN_KEY;
160         }
161         if(!strcmp(which,"leftarrow")){
162                 return MAC_ARROW_LEFT_KEY;
163         }
164         if(!strcmp(which,"rightarrow")){
165                 return MAC_ARROW_RIGHT_KEY;
166         }
167 }
168
169 char*   KeyToChar(unsigned short which)
170 {
171         static int i;
172         
173         if(which==MAC_A_KEY){
174                 return "a";
175         }
176         if(which==MAC_B_KEY){
177                 return "b";
178         }
179         if(which==MAC_C_KEY){
180                 return "c";
181         }
182         if(which==MAC_D_KEY){
183                 return "d";
184         }
185         if(which==MAC_E_KEY){
186                 return "e";
187         }
188         if(which==MAC_F_KEY){
189                 return "f";
190         }
191         if(which==MAC_G_KEY){
192                 return "g";
193         }
194         if(which==MAC_H_KEY){
195                 return "h";
196         }
197         if(which==MAC_I_KEY){
198                 return "i";
199         }
200         if(which==MAC_J_KEY){
201                 return "j";
202         }
203         if(which==MAC_K_KEY){
204                 return "k";
205         }
206         if(which==MAC_L_KEY){
207                 return "l";
208         }
209         if(which==MAC_M_KEY){
210                 return "m";
211         }
212         if(which==MAC_N_KEY){
213                 return "n";
214         }
215         if(which==MAC_O_KEY){
216                 return "o";
217         }
218         if(which==MAC_P_KEY){
219                 return "p";
220         }
221         if(which==MAC_Q_KEY){
222                 return "q";
223         }
224         if(which==MAC_R_KEY){
225                 return "r";
226         }
227         if(which==MAC_S_KEY){
228                 return "s";
229         }
230         if(which==MAC_T_KEY){
231                 return "t";
232         }
233         if(which==MAC_U_KEY){
234                 return "u";
235         }
236         if(which==MAC_V_KEY){
237                 return "v";
238         }
239         if(which==MAC_W_KEY){
240                 return "w";
241         }
242         if(which==MAC_X_KEY){
243                 return "x";
244         }
245         if(which==MAC_Y_KEY){
246                 return "y";
247         }
248         if(which==MAC_Z_KEY){
249                 return "z";
250         }
251         if(which==MAC_NUMPAD_1_KEY){
252                 return "1";
253         }
254         if(which==MAC_NUMPAD_2_KEY){
255                 return "2";
256         }
257         if(which==MAC_NUMPAD_3_KEY){
258                 return "3";
259         }
260         if(which==MAC_NUMPAD_4_KEY){
261                 return "4";
262         }
263         if(which==MAC_NUMPAD_5_KEY){
264                 return "5";
265         }
266         if(which==MAC_NUMPAD_6_KEY){
267                 return "6";
268         }
269         if(which==MAC_NUMPAD_7_KEY){
270                 return "7";
271         }
272         if(which==MAC_NUMPAD_8_KEY){
273                 return "8";
274         }
275         if(which==MAC_NUMPAD_9_KEY){
276                 return "9";
277         }
278         if(which==MAC_ENTER_KEY){
279                 return "enter";
280         }
281         if(which==MAC_NUMPAD_0_KEY){
282                 return "0";
283         }
284         if(which==MAC_1_KEY){
285                 return "1";
286         }
287         if(which==MAC_2_KEY){
288                 return "2";
289         }
290         if(which==MAC_3_KEY){
291                 return "3";
292         }
293         if(which==MAC_4_KEY){
294                 return "4";
295         }
296         if(which==MAC_5_KEY){
297                 return "5";
298         }
299         if(which==MAC_6_KEY){
300                 return "6";
301         }
302         if(which==MAC_7_KEY){
303                 return "7";
304         }
305         if(which==MAC_8_KEY){
306                 return "8";
307         }
308         if(which==MAC_9_KEY){
309                 return "9";
310         }
311         if(which==MAC_0_KEY){
312                 return "0";
313         }
314         if(which==MAC_F1_KEY){
315                 return "F1";
316         }
317         if(which==MAC_F2_KEY){
318                 return "F2";
319         }
320         if(which==MAC_F3_KEY){
321                 return "F3";
322         }
323         if(which==MAC_F4_KEY){
324                 return "F4";
325         }
326         if(which==MAC_F5_KEY){
327                 return "F5";
328         }
329         if(which==MAC_F6_KEY){
330                 return "F6";
331         }
332         if(which==MAC_F7_KEY){
333                 return "F7";
334         }
335         if(which==MAC_F8_KEY){
336                 return "F8";
337         }
338         if(which==MAC_F9_KEY){
339                 return "F9";
340         }
341         if(which==MAC_F10_KEY){
342                 return "F10";
343         }
344         if(which==MAC_F11_KEY){
345                 return "F11";
346         }
347         if(which==MAC_F12_KEY){
348                 return "F12";
349         }
350         if(which==MAC_ESCAPE_KEY){
351                 return "escape";
352         }
353         if(which==MAC_DELETE_KEY){
354                 return "backspace";
355         }
356         if(which==MAC_TAB_KEY){
357                 return "tab";
358         }
359         if(which==MAC_TILDE_KEY){
360                 return "`";
361         }
362         if(which==MAC_CAPS_LOCK_KEY){
363                 return "caps lock";
364         }
365         if(which==MAC_COMMAND_KEY){
366                 return "command";
367         }
368         if(which==MAC_OPTION_KEY){
369                 return "option";
370         }
371         if(which==MAC_DEL_KEY){
372                 return "delete";
373         }
374         if(which==MAC_INSERT_KEY){
375                 return "insert";
376         }
377         if(which==MAC_HOME_KEY){
378                 return "home";
379         }
380         if(which==MAC_END_KEY){
381                 return "end";
382         }
383         if(which==MAC_PAGE_UP_KEY){
384                 return "page up";
385         }
386         if(which==MAC_PAGE_DOWN_KEY){
387                 return "page down";
388         }
389         if(which==MAC_NUMPAD_CLEAR_KEY){
390                 return "clear";
391         }
392         if(which==MAC_CONTROL_KEY){
393                 return "control";
394         }
395         if(which==MAC_SPACE_KEY){
396                 return "space";
397         }
398         if(which==MAC_RETURN_KEY){
399                 return "return";
400         }
401         if(which==MAC_SHIFT_KEY){
402                 return "shift";
403         }
404         if(which==MAC_ARROW_UP_KEY){
405                 return "uparrow";
406         }
407         if(which==MAC_ARROW_DOWN_KEY){
408                 return "downarrow";
409         }
410         if(which==MAC_ARROW_LEFT_KEY){
411                 return "leftarrow";
412         }
413         if(which==MAC_ARROW_RIGHT_KEY){
414                 return "rightarrow";
415         }
416         if(which==MAC_MINUS_KEY||which==MAC_NUMPAD_MINUS_KEY){
417                 return "-";
418         }
419         if(which==MAC_PLUS_KEY||which==MAC_NUMPAD_EQUALS_KEY){
420                 return "=";
421         }
422         if(which==MAC_NUMPAD_PLUS_KEY){
423                 return "+";
424         }
425         if(which==MAC_NUMPAD_ASTERISK_KEY){
426                 return "*";
427         }
428         if(which==MAC_SLASH_KEY||which==MAC_NUMPAD_SLASH_KEY){
429                 return "/";
430         }
431         if(which==MAC_BACKSLASH_KEY){
432                 return "\\";
433         }
434         if(which==MAC_LEFTBRACKET_KEY){
435                 return "[";
436         }
437         if(which==MAC_RIGHTBRACKET_KEY){
438                 return "]";
439         }
440         if(which==MAC_PERIOD_KEY||which==MAC_NUMPAD_PERIOD_KEY){
441                 return ".";
442         }
443         if(which==MAC_COMMA_KEY){
444                 return ",";
445         }
446         if(which==MAC_APOSTROPHE_KEY){
447                 return "\"";
448         }
449         if(which==MAC_SEMICOLON_KEY){
450                 return ";";
451         }
452         return "unknown";
453 }
454
455 char    KeyToSingleChar(unsigned short which)
456 {
457         static int i;
458         
459         if(which==MAC_A_KEY){
460                 return 'a';
461         }
462         if(which==MAC_B_KEY){
463                 return 'b';
464         }
465         if(which==MAC_C_KEY){
466                 return 'c';
467         }
468         if(which==MAC_D_KEY){
469                 return 'd';
470         }
471         if(which==MAC_E_KEY){
472                 return 'e';
473         }
474         if(which==MAC_F_KEY){
475                 return 'f';
476         }
477         if(which==MAC_G_KEY){
478                 return 'g';
479         }
480         if(which==MAC_H_KEY){
481                 return 'h';
482         }
483         if(which==MAC_I_KEY){
484                 return 'i';
485         }
486         if(which==MAC_J_KEY){
487                 return 'j';
488         }
489         if(which==MAC_K_KEY){
490                 return 'k';
491         }
492         if(which==MAC_L_KEY){
493                 return 'l';
494         }
495         if(which==MAC_M_KEY){
496                 return 'm';
497         }
498         if(which==MAC_N_KEY){
499                 return 'n';
500         }
501         if(which==MAC_O_KEY){
502                 return 'o';
503         }
504         if(which==MAC_P_KEY){
505                 return 'p';
506         }
507         if(which==MAC_Q_KEY){
508                 return 'q';
509         }
510         if(which==MAC_R_KEY){
511                 return 'r';
512         }
513         if(which==MAC_S_KEY){
514                 return 's';
515         }
516         if(which==MAC_T_KEY){
517                 return 't';
518         }
519         if(which==MAC_U_KEY){
520                 return 'u';
521         }
522         if(which==MAC_V_KEY){
523                 return 'v';
524         }
525         if(which==MAC_W_KEY){
526                 return 'w';
527         }
528         if(which==MAC_X_KEY){
529                 return 'x';
530         }
531         if(which==MAC_Y_KEY){
532                 return 'y';
533         }
534         if(which==MAC_Z_KEY){
535                 return 'z';
536         }
537         if(which==MAC_NUMPAD_1_KEY){
538                 return '1';
539         }
540         if(which==MAC_NUMPAD_2_KEY){
541                 return '2';
542         }
543         if(which==MAC_NUMPAD_3_KEY){
544                 return '3';
545         }
546         if(which==MAC_NUMPAD_4_KEY){
547                 return '4';
548         }
549         if(which==MAC_NUMPAD_5_KEY){
550                 return '5';
551         }
552         if(which==MAC_NUMPAD_6_KEY){
553                 return '6';
554         }
555         if(which==MAC_NUMPAD_7_KEY){
556                 return '7';
557         }
558         if(which==MAC_NUMPAD_8_KEY){
559                 return '8';
560         }
561         if(which==MAC_NUMPAD_9_KEY){
562                 return '9';
563         }
564         if(which==MAC_NUMPAD_0_KEY){
565                 return '0';
566         }
567         if(which==MAC_1_KEY){
568                 return '1';
569         }
570         if(which==MAC_2_KEY){
571                 return '2';
572         }
573         if(which==MAC_3_KEY){
574                 return '3';
575         }
576         if(which==MAC_4_KEY){
577                 return '4';
578         }
579         if(which==MAC_5_KEY){
580                 return '5';
581         }
582         if(which==MAC_6_KEY){
583                 return '6';
584         }
585         if(which==MAC_7_KEY){
586                 return '7';
587         }
588         if(which==MAC_8_KEY){
589                 return '8';
590         }
591         if(which==MAC_9_KEY){
592                 return '9';
593         }
594         if(which==MAC_0_KEY){
595                 return '0';
596         }
597         if(which==MAC_SPACE_KEY){
598                 return ' ';
599         }
600         if(which==MAC_MINUS_KEY||which==MAC_NUMPAD_MINUS_KEY){
601                 return '-';
602         }
603         if(which==MAC_PLUS_KEY||which==MAC_NUMPAD_EQUALS_KEY){
604                 return '=';
605         }
606         if(which==MAC_NUMPAD_PLUS_KEY){
607                 return '+';
608         }
609         if(which==MAC_NUMPAD_ASTERISK_KEY){
610                 return '*';
611         }
612         if(which==MAC_SLASH_KEY||which==MAC_NUMPAD_SLASH_KEY){
613                 return '/';
614         }
615         if(which==MAC_BACKSLASH_KEY){
616                 return '\\';
617         }
618         if(which==MAC_LEFTBRACKET_KEY){
619                 return '[';
620         }
621         if(which==MAC_RIGHTBRACKET_KEY){
622                 return ']';
623         }
624         if(which==MAC_PERIOD_KEY||which==MAC_NUMPAD_PERIOD_KEY){
625                 return '.';
626         }
627         if(which==MAC_COMMA_KEY){
628                 return ',';
629         }
630         if(which==MAC_APOSTROPHE_KEY){
631                 return '\'';
632         }
633         if(which==MAC_SEMICOLON_KEY){
634                 return ';';
635         }
636         return '\0';
637 }
638
639 char    Shift(char which)
640 {
641         static int i;
642         
643         if(which=='a'){
644                 return 'A';
645         }
646         if(which=='b'){
647                 return 'B';
648         }
649         if(which=='c'){
650                 return 'C';
651         }
652         if(which=='d'){
653                 return 'D';
654         }
655         if(which=='e'){
656                 return 'E';
657         }
658         if(which=='f'){
659                 return 'F';
660         }
661         if(which=='g'){
662                 return 'G';
663         }
664         if(which=='h'){
665                 return 'H';
666         }
667         if(which=='e'){
668                 return 'E';
669         }
670         if(which=='f'){
671                 return 'F';
672         }
673         if(which=='g'){
674                 return 'G';
675         }
676         if(which=='h'){
677                 return 'H';
678         }
679         if(which=='i'){
680                 return 'I';
681         }
682         if(which=='j'){
683                 return 'J';
684         }
685         if(which=='k'){
686                 return 'K';
687         }
688         if(which=='l'){
689                 return 'L';
690         }
691         if(which=='m'){
692                 return 'M';
693         }
694         if(which=='n'){
695                 return 'N';
696         }
697         if(which=='o'){
698                 return 'O';
699         }
700         if(which=='p'){
701                 return 'P';
702         }
703         if(which=='q'){
704                 return 'Q';
705         }
706         if(which=='r'){
707                 return 'R';
708         }
709         if(which=='s'){
710                 return 'S';
711         }
712         if(which=='t'){
713                 return 'T';
714         }
715         if(which=='u'){
716                 return 'U';
717         }
718         if(which=='v'){
719                 return 'V';
720         }
721         if(which=='w'){
722                 return 'W';
723         }
724         if(which=='x'){
725                 return 'X';
726         }
727         if(which=='y'){
728                 return 'Y';
729         }
730         if(which=='z'){
731                 return 'Z';
732         }
733         if(which=='1'){
734                 return '!';
735         }
736         if(which=='2'){
737                 return '@';
738         }
739         if(which=='3'){
740                 return '#';
741         }
742         if(which=='4'){
743                 return '$';
744         }
745         if(which=='5'){
746                 return '%';
747         }
748         if(which=='6'){
749                 return '^';
750         }
751         if(which=='7'){
752                 return '&';
753         }
754         if(which=='8'){
755                 return '*';
756         }
757         if(which=='9'){
758                 return '(';
759         }
760         if(which=='0'){
761                 return ')';
762         }
763         if(which=='-'){
764                 return '_';
765         }
766         if(which=='='){
767                 return '+';
768         }
769         if(which=='['){
770                 return '{';
771         }
772         if(which==']'){
773                 return '}';
774         }
775         if(which=='\\'){
776                 return '|';
777         }
778         if(which=='.'){
779                 return '>';
780         }
781         if(which==','){
782                 return '<';
783         }
784         if(which=='/'){
785                 return '?';
786         }
787         if(which==';'){
788                 return ':';
789         }
790         if(which=='\''){
791                 return '\"';
792         }
793         return which;
794 }
795
796 bool    Compare(char *thestring, char *tocompare, int start, int end)
797 {
798         static int i;
799         for(i=start;i<=end;i++){
800                 if(thestring[i]!=tocompare[i-start]&&thestring[i]!=tocompare[i-start]+'A'-'a')return 0;
801         }
802         return 1;
803 }