projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improved code to handle special game controller buttons
[rocksndiamonds.git]
/
src
/
events.c
diff --git
a/src/events.c
b/src/events.c
index dd3e88af8721f49039488aba261eb8bc3f51c9ea..000744c9e177a90e8dff21dcd2f7ffc78ae66ff1 100644
(file)
--- a/
src/events.c
+++ b/
src/events.c
@@
-1675,6
+1675,11
@@
static void HandleKeysSpecial(Key key)
{
InsertSolutionTape();
}
{
InsertSolutionTape();
}
+ else if (is_string_suffix(cheat_input, ":play-solution-tape") ||
+ is_string_suffix(cheat_input, ":pst"))
+ {
+ PlaySolutionTape();
+ }
else if (is_string_suffix(cheat_input, ":reload-graphics") ||
is_string_suffix(cheat_input, ":rg"))
{
else if (is_string_suffix(cheat_input, ":reload-graphics") ||
is_string_suffix(cheat_input, ":rg"))
{
@@
-2418,24
+2423,38
@@
void HandleJoystick()
void HandleSpecialGameControllerButtons(Event *event)
{
#if defined(TARGET_SDL2)
void HandleSpecialGameControllerButtons(Event *event)
{
#if defined(TARGET_SDL2)
+ int key_status;
+ Key key;
+
switch (event->type)
{
case SDL_CONTROLLERBUTTONDOWN:
switch (event->type)
{
case SDL_CONTROLLERBUTTONDOWN:
- if (event->cbutton.button == SDL_CONTROLLER_BUTTON_START)
- HandleKey(KSYM_space, KEY_PRESSED);
- else if (event->cbutton.button == SDL_CONTROLLER_BUTTON_BACK)
- HandleKey(KSYM_Escape, KEY_PRESSED);
-
+ key_status = KEY_PRESSED;
break;
case SDL_CONTROLLERBUTTONUP:
break;
case SDL_CONTROLLERBUTTONUP:
- if (event->cbutton.button == SDL_CONTROLLER_BUTTON_START)
- HandleKey(KSYM_space, KEY_RELEASED);
- else if (event->cbutton.button == SDL_CONTROLLER_BUTTON_BACK)
- HandleKey(KSYM_Escape, KEY_RELEASED);
+ key_status = KEY_RELEASED;
+ break;
+
+ default:
+ return;
+ }
+ switch (event->cbutton.button)
+ {
+ case SDL_CONTROLLER_BUTTON_START:
+ key = KSYM_space;
break;
break;
+
+ case SDL_CONTROLLER_BUTTON_BACK:
+ key = KSYM_Escape;
+ break;
+
+ default:
+ return;
}
}
+
+ HandleKey(key, key_status);
#endif
}
#endif
}