+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
/**> HEADER FILES <**/
#include "WinInput.h"
+
+#ifdef WIN32
#include "String.h"
+#else
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#endif
extern bool keyboardfrozen;
extern bool buttons[3];
return 0;
}
-unsigned short CharToKey(char* which)
+#if defined(_WIN32)
+unsigned short CharToKey(const char* which)
{
// alphabetic keys
if(!stricmp(which,"a")){
}
return UNKNOWN_KEY;
}
+#else
+unsigned short CharToKey(const char* which)
+{
+ // alphabetic keys
+ if(!strcasecmp(which,"a")){
+ return MAC_A_KEY;
+ }
+ if(!strcasecmp(which,"b")){
+ return MAC_B_KEY;
+ }
+ if(!strcasecmp(which,"c")){
+ return MAC_C_KEY;
+ }
+ if(!strcasecmp(which,"d")){
+ return MAC_D_KEY;
+ }
+ if(!strcasecmp(which,"e")){
+ return MAC_E_KEY;
+ }
+ if(!strcasecmp(which,"f")){
+ return MAC_F_KEY;
+ }
+ if(!strcasecmp(which,"g")){
+ return MAC_G_KEY;
+ }
+ if(!strcasecmp(which,"h")){
+ return MAC_H_KEY;
+ }
+ if(!strcasecmp(which,"i")){
+ return MAC_I_KEY;
+ }
+ if(!strcasecmp(which,"j")){
+ return MAC_J_KEY;
+ }
+ if(!strcasecmp(which,"k")){
+ return MAC_K_KEY;
+ }
+ if(!strcasecmp(which,"l")){
+ return MAC_L_KEY;
+ }
+ if(!strcasecmp(which,"m")){
+ return MAC_M_KEY;
+ }
+ if(!strcasecmp(which,"n")){
+ return MAC_N_KEY;
+ }
+ if(!strcasecmp(which,"o")){
+ return MAC_O_KEY;
+ }
+ if(!strcasecmp(which,"p")){
+ return MAC_P_KEY;
+ }
+ if(!strcasecmp(which,"q")){
+ return MAC_Q_KEY;
+ }
+ if(!strcasecmp(which,"r")){
+ return MAC_R_KEY;
+ }
+ if(!strcasecmp(which,"s")){
+ return MAC_S_KEY;
+ }
+ if(!strcasecmp(which,"t")){
+ return MAC_T_KEY;
+ }
+ if(!strcasecmp(which,"u")){
+ return MAC_U_KEY;
+ }
+ if(!strcasecmp(which,"v")){
+ return MAC_V_KEY;
+ }
+ if(!strcasecmp(which,"w")){
+ return MAC_W_KEY;
+ }
+ if(!strcasecmp(which,"x")){
+ return MAC_X_KEY;
+ }
+ if(!strcasecmp(which,"y")){
+ return MAC_Y_KEY;
+ }
+ if(!strcasecmp(which,"z")){
+ return MAC_Z_KEY;
+ }
+
+ // keypad keys
+ if(!strcasecmp(which,"KP0")){
+ return MAC_NUMPAD_0_KEY;
+ }
+ if(!strcasecmp(which,"KP1")){
+ return MAC_NUMPAD_1_KEY;
+ }
+ if(!strcasecmp(which,"KP2")){
+ return MAC_NUMPAD_2_KEY;
+ }
+ if(!strcasecmp(which,"KP3")){
+ return MAC_NUMPAD_3_KEY;
+ }
+ if(!strcasecmp(which,"KP4")){
+ return MAC_NUMPAD_4_KEY;
+ }
+ if(!strcasecmp(which,"KP5")){
+ return MAC_NUMPAD_5_KEY;
+ }
+ if(!strcasecmp(which,"KP6")){
+ return MAC_NUMPAD_6_KEY;
+ }
+ if(!strcasecmp(which,"KP7")){
+ return MAC_NUMPAD_7_KEY;
+ }
+ if(!strcasecmp(which,"KP8")){
+ return MAC_NUMPAD_8_KEY;
+ }
+ if(!strcasecmp(which,"KP9")){
+ return MAC_NUMPAD_9_KEY;
+ }
+
+ // enter
+ if(!strcasecmp(which,"enter")){
+ return MAC_ENTER_KEY;
+ }
+
+ // number keys
+ if(!strcasecmp(which,"0")){
+ return MAC_0_KEY;
+ }
+ if(!strcasecmp(which,"1")){
+ return MAC_1_KEY;
+ }
+ if(!strcasecmp(which,"2")){
+ return MAC_2_KEY;
+ }
+ if(!strcasecmp(which,"3")){
+ return MAC_3_KEY;
+ }
+ if(!strcasecmp(which,"4")){
+ return MAC_4_KEY;
+ }
+ if(!strcasecmp(which,"5")){
+ return MAC_5_KEY;
+ }
+ if(!strcasecmp(which,"6")){
+ return MAC_6_KEY;
+ }
+ if(!strcasecmp(which,"7")){
+ return MAC_7_KEY;
+ }
+ if(!strcasecmp(which,"8")){
+ return MAC_8_KEY;
+ }
+ if(!strcasecmp(which,"9")){
+ return MAC_9_KEY;
+ }
+
+ // function keys
+ if(!strcasecmp(which,"F1")){
+ return MAC_F1_KEY;
+ }
+ if(!strcasecmp(which,"F2")){
+ return MAC_F2_KEY;
+ }
+ if(!strcasecmp(which,"F3")){
+ return MAC_F3_KEY;
+ }
+ if(!strcasecmp(which,"F4")){
+ return MAC_F4_KEY;
+ }
+ if(!strcasecmp(which,"F5")){
+ return MAC_F5_KEY;
+ }
+ if(!strcasecmp(which,"F6")){
+ return MAC_F6_KEY;
+ }
+ if(!strcasecmp(which,"F7")){
+ return MAC_F7_KEY;
+ }
+ if(!strcasecmp(which,"F8")){
+ return MAC_F8_KEY;
+ }
+ if(!strcasecmp(which,"F9")){
+ return MAC_F9_KEY;
+ }
+ if(!strcasecmp(which,"F10")){
+ return MAC_F10_KEY;
+ }
+ if(!strcasecmp(which,"F11")){
+ return MAC_F11_KEY;
+ }
+ if(!strcasecmp(which,"F12")){
+ return MAC_F12_KEY;
+ }
+
+ // escape
+ if(!strcasecmp(which,"escape")){
+ return MAC_ESCAPE_KEY;
+ }
+ if(!strcasecmp(which,"backspace")){
+ return MAC_DELETE_KEY;
+ }
+ if(!strcasecmp(which,"tab")){
+ return MAC_TAB_KEY;
+ }
+ if(!strcasecmp(which,"`")){
+ return MAC_TILDE_KEY;
+ }
+ if(!strcasecmp(which,"caps_lock")){
+ return MAC_CAPS_LOCK_KEY;
+ }
+// if(which==){
+// return "";
+// }
+ if(!strcasecmp(which,"command")){
+ return MAC_COMMAND_KEY;
+ }
+ if(!strcasecmp(which,"option")){
+ return MAC_OPTION_KEY;
+ }
+ if(!strcasecmp(which,"delete")){
+ return MAC_DEL_KEY;
+ }
+ if(!strcasecmp(which,"insert")){
+ return MAC_INSERT_KEY;
+ }
+ if(!strcasecmp(which,"home")){
+ return MAC_HOME_KEY;
+ }
+ if(!strcasecmp(which,"end")){
+ return MAC_END_KEY;
+ }
+ if(!strcasecmp(which,"page_up")){
+ return MAC_PAGE_UP_KEY;
+ }
+ if(!strcasecmp(which,"page_down")){
+ return MAC_PAGE_DOWN_KEY;
+ }
+ if(!strcasecmp(which,"clear")){
+ return MAC_NUMPAD_CLEAR_KEY;
+ }
+
+ if(!strcasecmp(which,"control")){
+ return MAC_CONTROL_KEY;
+ }
+ if(!strcasecmp(which,"return")){
+ return MAC_RETURN_KEY;
+ }
+ if(!strcasecmp(which,"space")){
+ return MAC_SPACE_KEY;
+ }
+ if(!strcasecmp(which,"shift")){
+ return MAC_SHIFT_KEY;
+ }
+ if(!strcasecmp(which,"uparrow")){
+ return MAC_ARROW_UP_KEY;
+ }
+ if(!strcasecmp(which,"downarrow")){
+ return MAC_ARROW_DOWN_KEY;
+ }
+ if(!strcasecmp(which,"leftarrow")){
+ return MAC_ARROW_LEFT_KEY;
+ }
+ if(!strcasecmp(which,"rightarrow")){
+ return MAC_ARROW_RIGHT_KEY;
+ }
+ if(!strcasecmp(which,"mouse1")){
+ return MAC_MOUSEBUTTON1;
+ }
+ if(!strcasecmp(which,"mouse2")){
+ return MAC_MOUSEBUTTON2;
+ }
+ if(!strcasecmp(which,"+")){
+ return MAC_NUMPAD_PLUS_KEY;
+ }
+ if(!strcasecmp(which,"*")){
+ return MAC_NUMPAD_ASTERISK_KEY;
+ }
+ if(!strcasecmp(which,"/")){
+ return MAC_SLASH_KEY;
+ }
+ if(!strcasecmp(which,"\\")){
+ return MAC_BACKSLASH_KEY;
+ }
+ if(!strcasecmp(which,"[")){
+ return MAC_LEFTBRACKET_KEY;
+ }
+ if(!strcasecmp(which,"]")){
+ return MAC_RIGHTBRACKET_KEY;
+ }
+ if(!strcasecmp(which,".")){
+ return MAC_PERIOD_KEY;
+ }
+ if(!strcasecmp(which,",")){
+ return MAC_COMMA_KEY;
+ }
+ if(!strcasecmp(which,"\"")){
+ return MAC_APOSTROPHE_KEY;
+ }
+ if(!strcasecmp(which,";")){
+ return MAC_SEMICOLON_KEY;
+ }
+ return UNKNOWN_KEY;
+}
+#endif
-char* KeyToChar(unsigned short which)
+const char* KeyToChar(unsigned short which)
{
static int i;
return which;
}
-bool Compare(char *thestring, char *tocompare, int start, int end)
+bool Compare(const char *thestring, const char *tocompare, int start, int end)
{
static int i;
for(i=start;i<=end;i++){
if(thestring[i]!=tocompare[i-start]&&thestring[i]!=tocompare[i-start]+'A'-'a')return 0;
}
return 1;
-}
\ No newline at end of file
+}