strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER));
#endif
- if (handle_gadgets && HandleGadgets(mx, my, button))
+ if (HandleGlobalAnimClicks(mx, my, button))
{
/* do not handle this button event anymore */
- mx = my = -32; /* force mouse event to be outside screen tiles */
+ return; /* force mouse event not to be handled at all */
}
- if (HandleGlobalAnimClicks(mx, my, button))
+ if (handle_gadgets && HandleGadgets(mx, my, button))
{
/* do not handle this button event anymore */
- return; /* force mouse event not to be handled at all */
+ mx = my = -32; /* force mouse event to be outside screen tiles */
}
if (button_hold && game_status == GAME_MODE_PLAYING && tape.pausing)
{
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"))
{
DumpBrush_Small();
}
}
+
+ /* special key shortcuts for all game modes */
+ if (is_string_suffix(cheat_input, ":dump-event-actions") ||
+ is_string_suffix(cheat_input, ":dea") ||
+ is_string_suffix(cheat_input, ":DEA"))
+ {
+ DumpGadgetIdentifiers();
+ DumpScreenIdentifiers();
+ }
}
void HandleKeysDebug(Key key)
void HandleSpecialGameControllerButtons(Event *event)
{
#if defined(TARGET_SDL2)
+ int key_status;
+ Key key;
+
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:
- 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;
+ case SDL_CONTROLLER_BUTTON_BACK:
+ key = KSYM_Escape;
break;
+
+ default:
+ return;
}
+
+ HandleKey(key, key_status);
#endif
}