hedgewars/uKeys.pas
changeset 2379 d62b1f224982
parent 2328 e74f2db28b21
child 2407 9f413bd5150e
--- a/hedgewars/uKeys.pas	Thu Sep 10 15:35:34 2009 +0000
+++ b/hedgewars/uKeys.pas	Thu Sep 10 18:50:53 2009 +0000
@@ -33,6 +33,8 @@
 procedure SetDefaultBinds;
 
 var KbdKeyPressed: boolean;
+	wheelUp: boolean = false;
+	wheelDown: boolean = false;
 
 implementation
 uses SDLh, uTeams, uConsole, uMisc, uStore;
@@ -70,7 +72,7 @@
 i    := SDL_GetMouseState(nil, nil);
 {$ENDIF}
 
-
+// mouse buttons
 {$IFDEF DARWIN}
 pkbd^[1]:= ((i and 1) and not (pkbd^[306] or pkbd^[305]));
 pkbd^[3]:= ((i and 1) and (pkbd^[306] or pkbd^[305])) or (i and 4);
@@ -80,7 +82,13 @@
 {$ENDIF}
 pkbd^[2]:= ((i shr 1) and 1);
 
+// mouse wheels (see event loop in project file)
+pkbd^[4]:= ord(wheelDown);
+pkbd^[5]:= ord(wheelUp);
+wheelUp:= false;
+wheelDown:= false;
 
+// now process strokes
 for i:= 1 to cKeyMaxIndex do
 if CurrentBinds[i][0] <> #0 then
 	begin
@@ -121,9 +129,13 @@
 KeyNames[1]:= 'mousel';
 KeyNames[2]:= 'mousem';
 KeyNames[3]:= 'mouser';
-for i:= 4 to cKeyMaxIndex do
+KeyNames[4]:= 'wheelup';
+KeyNames[5]:= 'wheeldown';
+
+for i:= 6 to cKeyMaxIndex do
     begin
     s:= SDL_GetKeyName(i);
+	//addfilelog(inttostr(i) + ' ' + s);
     if s = 'unknown key' then KeyNames[i]:= ''
        else begin
        for t:= 1 to Length(s) do
@@ -132,17 +144,18 @@
        end;
     end;
 
-DefaultBinds[ 27]:= 'quit';		// esc
-DefaultBinds[ 48]:= '+volup';		// 0
-DefaultBinds[ 57]:= '+voldown';		// 9
-DefaultBinds[ 96]:= 'history';		// `
-DefaultBinds[ 99]:= 'capture';		// c
-DefaultBinds[104]:= 'findhh';		// h
-DefaultBinds[112]:= 'pause';		// p
-DefaultBinds[115]:= '+speedup';		// s
-DefaultBinds[116]:= 'chat';		// t
-DefaultBinds[121]:= 'confirm';		// y
-DefaultBinds[127]:= 'rotmask';		// canc
+DefaultBinds[ 27]:= 'quit';
+DefaultBinds[ 96]:= 'history';
+DefaultBinds[127]:= 'rotmask';
+
+DefaultBinds[KeyNameToCode('0')]:= '+volup';
+DefaultBinds[KeyNameToCode('9')]:= '+voldown';
+DefaultBinds[KeyNameToCode('c')]:= 'capture';
+DefaultBinds[KeyNameToCode('h')]:= 'findhh';
+DefaultBinds[KeyNameToCode('p')]:= 'pause';
+DefaultBinds[KeyNameToCode('s')]:= '+speedup';
+DefaultBinds[KeyNameToCode('t')]:= 'chat';
+DefaultBinds[KeyNameToCode('y')]:= 'confirm';
 
 DefaultBinds[KeyNameToCode('f12')]:= 'fullscr';