58 procedure ControllerAxisEvent(joy, axis: Byte; value: Integer); |
58 procedure ControllerAxisEvent(joy, axis: Byte; value: Integer); |
59 procedure ControllerHatEvent(joy, hat, value: Byte); |
59 procedure ControllerHatEvent(joy, hat, value: Byte); |
60 procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean); |
60 procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean); |
61 |
61 |
62 implementation |
62 implementation |
63 uses uConsole, uCommands, uVariables, uConsts, uUtils, uDebug, uPhysFSLayer, uCursor; |
63 uses uKeyNames, uConsole, uCommands, uVariables, uConsts, uUtils, uDebug, uPhysFSLayer, uCursor; |
64 |
64 |
65 const |
65 const |
66 LSHIFT = $0200; |
66 LSHIFT = $0200; |
67 RSHIFT = $0400; |
67 RSHIFT = $0400; |
68 LALT = $0800; |
68 LALT = $0800; |
69 RALT = $1000; |
69 RALT = $1000; |
70 LCTRL = $2000; |
70 LCTRL = $2000; |
71 RCTRL = $4000; |
71 RCTRL = $4000; |
72 |
72 |
73 var tkbd: array[0..cKbdMaxIndex] of boolean; |
73 var tkbd: array[0..cKbdMaxIndex] of boolean; |
74 KeyNames: array [0..cKeyMaxIndex] of string[15]; |
74 KeyNames: TKeyNames; |
75 CurrentBinds: TBinds; |
75 CurrentBinds: TBinds; |
76 ControllerNumControllers: Integer; |
76 ControllerNumControllers: Integer; |
77 ControllerEnabled: Integer; |
77 ControllerEnabled: Integer; |
78 ControllerNumAxes: array[0..5] of Integer; |
78 ControllerNumAxes: array[0..5] of Integer; |
79 //ControllerNumBalls: array[0..5] of Integer; |
79 //ControllerNumBalls: array[0..5] of Integer; |
444 loadBinds('dbind', cPathz[ptConfig] + '/settings.ini'); |
444 loadBinds('dbind', cPathz[ptConfig] + '/settings.ini'); |
445 end; |
445 end; |
446 |
446 |
447 |
447 |
448 procedure InitKbdKeyTable; |
448 procedure InitKbdKeyTable; |
449 var i, j, k, t: LongInt; |
449 var i, j, k: LongInt; |
450 s: string[15]; |
450 begin |
451 begin |
451 // Mouse buttons and mouse wheel |
452 KeyNames[cKeyMaxIndex ]:= 'mousel'; |
452 KeyNames[cKeyMaxIndex ]:= 'mousel'; |
453 KeyNames[cKeyMaxIndex - 1]:= 'mousem'; |
453 KeyNames[cKeyMaxIndex - 1]:= 'mousem'; |
454 KeyNames[cKeyMaxIndex - 2]:= 'mouser'; |
454 KeyNames[cKeyMaxIndex - 2]:= 'mouser'; |
455 mwheelupCode:= cKeyMaxIndex - 3; |
455 mwheelupCode:= cKeyMaxIndex - 3; |
456 KeyNames[mwheelupCode]:= 'wheelup'; |
456 KeyNames[mwheelupCode]:= 'wheelup'; |
457 mwheeldownCode:= cKeyMaxIndex - 4; |
457 mwheeldownCode:= cKeyMaxIndex - 4; |
458 KeyNames[mwheeldownCode]:= 'wheeldown'; |
458 KeyNames[mwheeldownCode]:= 'wheeldown'; |
459 |
459 |
460 for i:= 0 to cKeyMaxIndex - 5 do |
460 // Keyboard keys |
461 begin |
461 uKeyNames.populateKeyNames(KeyNames); |
462 s:= shortstring(SDL_GetScancodeName(TSDL_Scancode(i))); |
|
463 |
|
464 for t:= 1 to Length(s) do |
|
465 if s[t] = ' ' then |
|
466 s[t]:= '_'; |
|
467 KeyNames[i]:= LowerCase(s) |
|
468 end; |
|
469 |
|
470 |
462 |
471 // get the size of keyboard array |
463 // get the size of keyboard array |
472 SDL_GetKeyboardState(@k); |
464 SDL_GetKeyboardState(@k); |
473 |
465 |
474 // Controller(s) |
466 // Controller(s) |