Input::getAscii goes Torque keyCode -> SDL Scancode -> SDL Keycode -> SDL ascii key name
Input::getKeycode used to be SDL ascii key name -> SDL Scancode -> Torque keyCode
This mismatch made software keyboard layouts behave incorrectly in different places. For example, you would bind a key to an ActionMap and it would activate with a different button than specified.
Adds the sdl implementation for all used PlatformWindowManager monitor functions. [This unit test](https://github.com/GarageGames/Torque3D/blob/development/Engine/source/windowManager/test/windowManagerTest.cpp#L28) will now pass for the SDL platform. Here is the equivalent in TorqueScript to test the functions via the Canvas object:```//Canvas.listDisplays();
function Canvas::listDisplays(%this)
{
%count = %this.getMonitorCount();
echo(%count SPC "monitor(s) detected.");
for (%i = 0; %i < %count; %i++)
{
echo("Monitor #" @ (%i + 1) SPC %this.getMonitorName(%i) @ ": " @ %this.getMonitorRect(%i));
}
}```
When testing PR #2264 I discovered that GFXVideoMode::parseFromString() will never assign false to the fullScreen value. That value must be initialized to false going in. I found it hard to believe that that could be the case and not have caused a problem before now, so I dropped:
```c++
GFXVideoMode vmTest = GFXInit::getDesktopResolution();
vmTest.fullScreen = true;
vmTest.parseFromString("800 600 false 32 60");
Con::printf("%s becomes %s", "800 600 false 32 60", vmTest.toString().c_str());
```
into the end of _GFXInitGetInitialRes() and the output string is:
800 600 false 32 60 becomes 800 600 true 32 60 0
None of the values get assigned by the macro [here](https://github.com/GarageGames/Torque3D/blob/development/Engine/source/gfx/gfxStructs.cpp#L46-L48) if their function evaluates to zero or the token is missing from the string. This commit corrects that for the boolean case to only skip the assignment if the string token is not found.
Removes unnecessary code that sets default video mode params. This is
already handled by the GFXVideoMode constructor. The settings are also
immediately overwritten by vm.parseFromString().
Resolves#740
This fixes a bug where TSStatic::castRayRendered() ignored the state of generateTexCoord in the passed RayInfo structure and never returned texture coordinates if requested.
This also fixes some insecure behavior relying on %this value eval'ing, which has also been modified to be better.
Also fixes up some old calls for getting menubar menus by internal name, which is no longer supported, instead using the findMenu function call.