Torque 3D Beta 1 Bug - Input keys varying on keyboard layout
by Novack · in Torque 3D Professional · 04/30/2009 (11:51 pm) · 8 replies
Note: Mailed this one already, but thought on putting it here in case you guys wanted to centralize the hunting report. In any case, I havent see this one listed in the Matthew's Known Issues list.
My configuration:
WindowsXP SP3
DirectX SDK March 2009
Description:
It seems that T3D maps the input keys depending on the keyboard layout, as opposite to the previous engine versions. Im assuming its a bug.
In my case (Spanish Keyboard Layout), the key left to the "1" is not the "tilde" (~ Key) which is reported to the engine to be in the "ñ" key (to the right of the "L" in spanish keyboards).
Another effect, is that Im not beeing able to bind the original key for the job (reported as backslash, "\"), which seems to be a dead key on that layout. Note that is dead for binding, not for typing into the console.
All this, however, works back as expected if I change my keyboard layout to english.
Beyond beeing really uncomfortable to have the console maped on the ñ, and having the original key unusable, this behaviour may have darker consequences on other keyboard layouts.
Looking at the code, couldnt found any significative changes with the tgea counterpart, and after commenting those changes out, still didnt work as expected, so Im suspecting could be something related with DirectInput management in the engine or changes on the DirectInput itself.
My configuration:
WindowsXP SP3
DirectX SDK March 2009
Description:
It seems that T3D maps the input keys depending on the keyboard layout, as opposite to the previous engine versions. Im assuming its a bug.
In my case (Spanish Keyboard Layout), the key left to the "1" is not the "tilde" (~ Key) which is reported to the engine to be in the "ñ" key (to the right of the "L" in spanish keyboards).
Another effect, is that Im not beeing able to bind the original key for the job (reported as backslash, "\"), which seems to be a dead key on that layout. Note that is dead for binding, not for typing into the console.
All this, however, works back as expected if I change my keyboard layout to english.
Beyond beeing really uncomfortable to have the console maped on the ñ, and having the original key unusable, this behaviour may have darker consequences on other keyboard layouts.
Looking at the code, couldnt found any significative changes with the tgea counterpart, and after commenting those changes out, still didnt work as expected, so Im suspecting could be something related with DirectInput management in the engine or changes on the DirectInput itself.
About the author
http://cyberiansoftware.com.ar/
#2
edit: from a quick look at the code the GetKeyboardLayout call is commented out in winInput.cpp so I guess they're not using DirectInput but WM_KEYDOWN and such in win32Window.cpp (it's my first 2 hours with any Torque engine so I might be completely wrong :p)
05/01/2009 (5:59 am)
I really doubt that's a bug; in older engines, people tended to use DirectInput for mouse/keyboard but moved away from it in order to avoid many issues and getting mouse acceleration/keyboard layout/repeat key rates/etc for free, and use raw input for the mouse position in FPS type of games... Even MS deprecated it...edit: from a quick look at the code the GetKeyboardLayout call is commented out in winInput.cpp so I guess they're not using DirectInput but WM_KEYDOWN and such in win32Window.cpp (it's my first 2 hours with any Torque engine so I might be completely wrong :p)
#3
05/01/2009 (11:27 am)
I think it's probably me that made that change Novak. But what you are describing might be an unintended consequence of it. Although I'm not sure exactly what happened, I think it is as Michael described, a result of switching from DirectInput calls to OS calls for translating keycodes.
#4
05/04/2009 (5:14 pm)
Logged.
#6
Long Running Whinge = Console + Tidle + Non US Keyboard
03/11/2011 (2:53 pm)
Aaaand here is another thread on the same topic:Long Running Whinge = Console + Tidle + Non US Keyboard
#7
Logged as THREED-1471 in case the old ticket Ken mentions was lost, since he didn't give a ticket number. :) Thanks!
- Dave
03/15/2011 (4:08 pm)
Greetings!Logged as THREED-1471 in case the old ticket Ken mentions was lost, since he didn't give a ticket number. :) Thanks!
- Dave
#8
06/21/2011 (8:28 am)
I see some logged problems in a grey zone. Has this one been fixed?

Associate Steve Acaster
[YorkshireRifles.com]