hedgewars/uKeys.pas
changeset 2905 f3c79f7193a9
parent 2805 36a8cebb91e8
child 2948 3f21a9dc93d0
equal deleted inserted replaced
2904:209a0c573917 2905:f3c79f7193a9
    26 type TKeyboardState = array[0..cKeyMaxIndex] of Byte;
    26 type TKeyboardState = array[0..cKeyMaxIndex] of Byte;
    27 
    27 
    28 procedure init_uKeys;
    28 procedure init_uKeys;
    29 procedure free_uKeys;
    29 procedure free_uKeys;
    30 
    30 
    31 function  KeyNameToCode(name: string): word;
    31 function  KeyNameToCode(name: shortstring): word;
    32 procedure ProcessKbd;
    32 procedure ProcessKbd;
    33 procedure ResetKbd;
    33 procedure ResetKbd;
    34 procedure FreezeEnterKey;
    34 procedure FreezeEnterKey;
    35 procedure InitKbdKeyTable;
    35 procedure InitKbdKeyTable;
    36 
    36 
    88 const KeyNumber = 1024;
    88 const KeyNumber = 1024;
    89 
    89 
    90 var tkbd, tkbdn: TKeyboardState;
    90 var tkbd, tkbdn: TKeyboardState;
    91     KeyNames: array [0..cKeyMaxIndex] of string[15];
    91     KeyNames: array [0..cKeyMaxIndex] of string[15];
    92 	
    92 	
    93 function KeyNameToCode(name: string): word;
    93 function KeyNameToCode(name: shortstring): word;
    94 var code: Word;
    94 var code: Word;
    95 begin
    95 begin
    96 	code:= cKeyMaxIndex;
    96 	code:= cKeyMaxIndex;
    97 	while (code > 0) and (KeyNames[code] <> name) do dec(code);
    97 	while (code > 0) and (KeyNames[code] <> name) do dec(code);
    98 	KeyNameToCode:= code;
    98 	KeyNameToCode:= code;
   259 KeyNames[4]:= 'wheelup';
   259 KeyNames[4]:= 'wheelup';
   260 KeyNames[5]:= 'wheeldown';
   260 KeyNames[5]:= 'wheeldown';
   261 
   261 
   262 for i:= 6 to cKeyMaxIndex do
   262 for i:= 6 to cKeyMaxIndex do
   263 	begin
   263 	begin
   264     	s:= string(sdl_getkeyname(i));
   264     	s:= shortstring(sdl_getkeyname(i));
   265 	//writeln(stdout,inttostr(i) + ': ' + s);
   265 	//writeln(stdout,inttostr(i) + ': ' + s);
   266     	if s = 'unknown key' then KeyNames[i]:= ''
   266     	if s = 'unknown key' then KeyNames[i]:= ''
   267        	else begin
   267        	else begin
   268 		for t:= 1 to Length(s) do
   268 		for t:= 1 to Length(s) do
   269 			if s[t] = ' ' then s[t]:= '_';
   269 			if s[t] = ' ' then s[t]:= '_';