sdl: added SDL.Input.EnableOppositeDirectional option. allows/disallows simultaneous right+left / up+down
This commit is contained in:
parent
989e3271c6
commit
05fa7ce14e
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
|
08-Aug-2012 - prg - sdl: added SDL.Input.EnableOppositeDirectional option. allows/disallows simultaneous right+left / up+down.
|
||||||
25-Jul-2012 - AnS - Taseditor: auto-starting Note editing when creating Marker by double-click
|
25-Jul-2012 - AnS - Taseditor: auto-starting Note editing when creating Marker by double-click
|
||||||
19-Jul-2012 - AnS - Taseditor: Lua registermanual allows changing the "Run function" button caption; Markers are always restored when deploying Bookmarks
|
19-Jul-2012 - AnS - Taseditor: Lua registermanual allows changing the "Run function" button caption; Markers are always restored when deploying Bookmarks
|
||||||
01-Jul-2012 - AnS - new hotkey "Run Manual Lua function"
|
01-Jul-2012 - AnS - new hotkey "Run Manual Lua function"
|
||||||
|
|
|
@ -192,6 +192,9 @@ InitConfig()
|
||||||
|
|
||||||
// display input
|
// display input
|
||||||
config->addOption("inputdisplay", "SDL.InputDisplay", 0);
|
config->addOption("inputdisplay", "SDL.InputDisplay", 0);
|
||||||
|
|
||||||
|
// enable / disable opposite directionals (left + right or up + down simultaneously)
|
||||||
|
config->addOption("opposite-directionals", "SDL.Input.EnableOppositeDirectionals", 1);
|
||||||
|
|
||||||
// pause movie playback at frame x
|
// pause movie playback at frame x
|
||||||
config->addOption("pauseframe", "SDL.PauseFrame", 0);
|
config->addOption("pauseframe", "SDL.PauseFrame", 0);
|
||||||
|
|
|
@ -1127,14 +1127,31 @@ UpdateGamepad (void)
|
||||||
|
|
||||||
rapid ^= 1;
|
rapid ^= 1;
|
||||||
|
|
||||||
|
int opposite_dirs;
|
||||||
|
g_config->getOption("SDL.Input.EnableOppositeDirectionals", &opposite_dirs);
|
||||||
|
|
||||||
// go through each of the four game pads
|
// go through each of the four game pads
|
||||||
for (wg = 0; wg < 4; wg++)
|
for (wg = 0; wg < 4; wg++)
|
||||||
{
|
{
|
||||||
// the 4 directional buttons, start, select, a, b
|
bool left = false;
|
||||||
|
bool up = false;
|
||||||
|
// a, b, select, start, up, down, left, right
|
||||||
for (x = 0; x < 8; x++)
|
for (x = 0; x < 8; x++)
|
||||||
{
|
{
|
||||||
if (DTestButton (&GamePadConfig[wg][x]))
|
if (DTestButton (&GamePadConfig[wg][x]))
|
||||||
{
|
{
|
||||||
|
if(opposite_dirs == 0)
|
||||||
|
{
|
||||||
|
// test for left+right and up+down
|
||||||
|
if(x == 4)
|
||||||
|
up = true;
|
||||||
|
if((x == 5) && (up == true))
|
||||||
|
continue;
|
||||||
|
if(x == 6)
|
||||||
|
left = true;
|
||||||
|
if((x == 7) && (left == true))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
JS |= (1 << x) << (wg << 3);
|
JS |= (1 << x) << (wg << 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue