mirror of
https://github.com/Oibaf66/frodo-wii.git
synced 2024-11-25 12:56:59 +01:00
Keyboard input: Add option to use cursor keys as cursors instead of
joystick
This commit is contained in:
parent
fd5fe7825f
commit
17d70cc3ef
@ -586,12 +586,38 @@ void C64Display::TranslateKey(SDLKey key, bool key_up, uint8 *key_matrix,
|
|||||||
case SDLK_RSHIFT: c64_key = MATRIX(6,4); break;
|
case SDLK_RSHIFT: c64_key = MATRIX(6,4); break;
|
||||||
case SDLK_LALT: case SDLK_LMETA: c64_key = MATRIX(7,5); break;
|
case SDLK_LALT: case SDLK_LMETA: c64_key = MATRIX(7,5); break;
|
||||||
case SDLK_RALT: case SDLK_RMETA: c64_key = MATRIX(7,5); break;
|
case SDLK_RALT: case SDLK_RMETA: c64_key = MATRIX(7,5); break;
|
||||||
|
case SDLK_UP:
|
||||||
case SDLK_UP: c64_key = 0x01 | 0x40; break;
|
{
|
||||||
case SDLK_DOWN: c64_key = 0x02 | 0x40; break;
|
if (ThePrefs.CursorKeysForJoystick)
|
||||||
case SDLK_LEFT: c64_key = 0x04 | 0x40; break;
|
c64_key = 0x01 | 0x40;
|
||||||
case SDLK_RIGHT: c64_key = 0x08 | 0x40; break;
|
else
|
||||||
|
c64_key = MATRIX(0,7) | 0x80;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SDLK_DOWN:
|
||||||
|
{
|
||||||
|
if (ThePrefs.CursorKeysForJoystick)
|
||||||
|
c64_key = 0x02 | 0x40;
|
||||||
|
else
|
||||||
|
c64_key = MATRIX(0,7);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SDLK_LEFT:
|
||||||
|
{
|
||||||
|
if (ThePrefs.CursorKeysForJoystick)
|
||||||
|
c64_key = 0x04 | 0x40;
|
||||||
|
else
|
||||||
|
c64_key = MATRIX(0,2) | 0x80;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SDLK_RIGHT:
|
||||||
|
{
|
||||||
|
if (ThePrefs.CursorKeysForJoystick)
|
||||||
|
c64_key = 0x08 | 0x40;
|
||||||
|
else
|
||||||
|
c64_key = MATRIX(0,2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case SDLK_F1: c64_key = MATRIX(0,4); break;
|
case SDLK_F1: c64_key = MATRIX(0,4); break;
|
||||||
case SDLK_F2: c64_key = MATRIX(0,4) | 0x80; break;
|
case SDLK_F2: c64_key = MATRIX(0,4) | 0x80; break;
|
||||||
case SDLK_F3: c64_key = MATRIX(0,5); break;
|
case SDLK_F3: c64_key = MATRIX(0,5); break;
|
||||||
|
@ -118,6 +118,7 @@ Prefs::Prefs()
|
|||||||
snprintf(this->NetworkServer, 64, "play.c64-network.org");
|
snprintf(this->NetworkServer, 64, "play.c64-network.org");
|
||||||
this->NetworkPort = 46214;
|
this->NetworkPort = 46214;
|
||||||
this->NetworkRegion = REGION_UNKNOWN;
|
this->NetworkRegion = REGION_UNKNOWN;
|
||||||
|
this->CursorKeysForJoystick = true;
|
||||||
|
|
||||||
strcpy(this->Theme, "default");
|
strcpy(this->Theme, "default");
|
||||||
}
|
}
|
||||||
@ -319,6 +320,7 @@ bool Prefs::operator==(const Prefs &rhs) const
|
|||||||
&& strcmp(this->NetworkName, rhs.NetworkName) == 0
|
&& strcmp(this->NetworkName, rhs.NetworkName) == 0
|
||||||
&& strcmp(this->Theme, rhs.Theme) == 0
|
&& strcmp(this->Theme, rhs.Theme) == 0
|
||||||
&& this->NetworkAvatar == rhs.NetworkAvatar
|
&& this->NetworkAvatar == rhs.NetworkAvatar
|
||||||
|
&& this->CursorKeysForJoystick == rhs.CursorKeysForJoystick
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -504,6 +506,8 @@ void Prefs::Load(const char *filename)
|
|||||||
NetworkAvatar = atoi(value);
|
NetworkAvatar = atoi(value);
|
||||||
else if (!strcmp(keyword, "Theme"))
|
else if (!strcmp(keyword, "Theme"))
|
||||||
strcpy(Theme, value);
|
strcpy(Theme, value);
|
||||||
|
else if (!strcmp(keyword, "CursorKeysForJoystick"))
|
||||||
|
CursorKeysForJoystick = !strcmp(value, "TRUE");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
@ -616,6 +620,7 @@ bool Prefs::Save(const char *filename)
|
|||||||
maybe_write(file, NetworkPort != TheDefaultPrefs.NetworkPort, "NetworkPort = %d\n", NetworkPort);
|
maybe_write(file, NetworkPort != TheDefaultPrefs.NetworkPort, "NetworkPort = %d\n", NetworkPort);
|
||||||
maybe_write(file, NetworkRegion != TheDefaultPrefs.NetworkRegion, "NetworkRegion = %d\n", NetworkRegion);
|
maybe_write(file, NetworkRegion != TheDefaultPrefs.NetworkRegion, "NetworkRegion = %d\n", NetworkRegion);
|
||||||
maybe_write(file, strcmp(Theme, TheDefaultPrefs.Theme) != 0, "Theme = %s\n", Theme);
|
maybe_write(file, strcmp(Theme, TheDefaultPrefs.Theme) != 0, "Theme = %s\n", Theme);
|
||||||
|
maybe_write(file, CursorKeysForJoystick != TheDefaultPrefs.CursorKeysForJoystick, "CursorKeysForJoystick = %s\n", CursorKeysForJoystick ? "TRUE" : "FALSE");
|
||||||
fclose(file);
|
fclose(file);
|
||||||
ThePrefsOnDisk = *this;
|
ThePrefsOnDisk = *this;
|
||||||
return true;
|
return true;
|
||||||
|
@ -172,6 +172,8 @@ public:
|
|||||||
int NetworkKey;
|
int NetworkKey;
|
||||||
uint16 NetworkAvatar;
|
uint16 NetworkAvatar;
|
||||||
char Theme[128];
|
char Theme[128];
|
||||||
|
|
||||||
|
bool CursorKeysForJoystick;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,6 +95,13 @@ public:
|
|||||||
case 1:
|
case 1:
|
||||||
Gui::gui->pushView(Gui::gui->bkv);
|
Gui::gui->pushView(Gui::gui->bkv);
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
Gui::gui->np->CursorKeysForJoystick = !Gui::gui->np->CursorKeysForJoystick;
|
||||||
|
if (Gui::gui->np->CursorKeysForJoystick)
|
||||||
|
Gui::gui->status_bar->queueMessage("Cursor keys used as joystick");
|
||||||
|
else
|
||||||
|
Gui::gui->status_bar->queueMessage("Cursor keys used as keyboard cursors");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
panic("Illegal selection\n");
|
panic("Illegal selection\n");
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ const char *main_menu_messages[14] = {
|
|||||||
/*02*/ "States",
|
/*02*/ "States",
|
||||||
/*03*/ "^|Load|Save|Delete",
|
/*03*/ "^|Load|Save|Delete",
|
||||||
/*04*/ "Keyboard",
|
/*04*/ "Keyboard",
|
||||||
/*05*/ "^|Type|Bind",
|
/*05*/ "^|Type|Bind|Toggle crsr",
|
||||||
/*06*/ " ",
|
/*06*/ " ",
|
||||||
/*07*/ "Game info",
|
/*07*/ "Game info",
|
||||||
/*08*/ "Networking",
|
/*08*/ "Networking",
|
||||||
@ -158,8 +158,10 @@ const char **main_menu_help[14] = {
|
|||||||
NULL,
|
NULL,
|
||||||
(const char*[]){
|
(const char*[]){
|
||||||
"Bind keyboard keys to the",
|
"Bind keyboard keys to the",
|
||||||
"joysticks, or type with",
|
"joysticks, toggle cursor",
|
||||||
"the virtual keyboard",
|
"key settings (joystick or",
|
||||||
|
"cursors) or type with the",
|
||||||
|
"virtual keyboard",
|
||||||
NULL,
|
NULL,
|
||||||
},
|
},
|
||||||
NULL,
|
NULL,
|
||||||
|
Loading…
Reference in New Issue
Block a user