diff --git a/src/spice2x/games/gitadora/gitadora.cpp b/src/spice2x/games/gitadora/gitadora.cpp index ec5993c..f580646 100644 --- a/src/spice2x/games/gitadora/gitadora.cpp +++ b/src/spice2x/games/gitadora/gitadora.cpp @@ -11,6 +11,7 @@ #include "util/libutils.h" #include "util/logging.h" #include "util/sigscan.h" +#include "util/socd_cleaner.h" #include "hooks/setupapihook.h" namespace games::gitadora { @@ -18,6 +19,8 @@ namespace games::gitadora { // settings bool TWOCHANNEL = false; std::optional CAB_TYPE = std::nullopt; + bool P1_LEFTY = false; + bool P2_LEFTY = false; /* * Prevent GitaDora from creating folders on F drive @@ -220,6 +223,9 @@ namespace games::gitadora { GRAPHICS_WINDOWED && !cfg::CONFIGURATOR_STANDALONE) { overlay::UI_SCALE_PERCENT = 250; } + + // for guitar wail SOCD cleaning + socd::ALGORITHM = socd::SocdAlgorithm::PreferRecent; } } diff --git a/src/spice2x/games/gitadora/gitadora.h b/src/spice2x/games/gitadora/gitadora.h index f0fb68a..12e9ad2 100644 --- a/src/spice2x/games/gitadora/gitadora.h +++ b/src/spice2x/games/gitadora/gitadora.h @@ -10,6 +10,8 @@ namespace games::gitadora { // settings extern bool TWOCHANNEL; extern std::optional CAB_TYPE; + extern bool P1_LEFTY; + extern bool P2_LEFTY; class GitaDoraGame : public games::Game { public: @@ -38,4 +40,12 @@ namespace games::gitadora { ); } + static inline bool is_player_lefty(size_t player) { + if (player == 0) { + return P1_LEFTY; + } else if (player == 1) { + return P2_LEFTY; + } + return false; + } } diff --git a/src/spice2x/games/gitadora/io.cpp b/src/spice2x/games/gitadora/io.cpp index 63dc8b8..23f32d4 100644 --- a/src/spice2x/games/gitadora/io.cpp +++ b/src/spice2x/games/gitadora/io.cpp @@ -107,9 +107,18 @@ std::string games::gitadora::get_buttons_help() { // keep to max 100 characters wide return "guitar:\n" + "\n" " < R G B Y P --- Pick ] \n" "\n" + " If you hold your guitar left-handed (frets on the right hand):\n" + " * bind the buttons here as righty and use the in-game option\n" + " to turn on LEFT mode to flip the order of buttons.\n" + " * turn on GitaDora Lefty Guitar option in Options tab so that\n" + " wailing is recognized correctly.\n" + "\n" + "\n" "drums:\n" + "\n" " LeftCymbal RightCymbal\n" " HiHat HiTom LowTom \n" " Snare FloorTom \n" @@ -117,10 +126,30 @@ std::string games::gitadora::get_buttons_help() { " Left Bass\n" " Pedal Pedal\n" "\n" - "Drums are NOT velocity-sensitive!\n" + " Drums are NOT velocity-sensitive!\n" "\n" - "For MIDI drums with Open/Closed HiHat configurations, bind variations below. " - "v2_drum algorithm might work better for those drums." + " For MIDI drums with Open/Closed HiHat configurations or pads with\n" + " multiple hit zones, ensure you bind all variation using the Pages\n" + " button at the bottom." + ; +} +std::string games::gitadora::get_analogs_help() { + // keep to max 100 characters wide + return + "guitar:\n" + "\n" + "X axis: 0% when body is held facing monitor, 50% when facing flat on a table\n" + "Y axis: 50% when held horizontal, 0% when neck is raised, 100% pointing down\n" + "Z axis: 50% at rest, 100% when swinging neck toward monitor (only used in XG series)\n" + "\n" + "You need both X and Y axis for up/down wail to work correctly in-game.\n" + "If you only have Y axis, consider using digital wailing instead.\n" + "\n" + "Ensure you clear all analog bindings if you want to use digital wailing.\n" + "\n" + "If you hold your guitar left-handed (frets on the right hand),\n" + "analog bindings will likely not work as intended.\n" + "Consider using digital wailing in Buttons tab." ; } diff --git a/src/spice2x/games/gitadora/io.h b/src/spice2x/games/gitadora/io.h index 673c283..463b210 100644 --- a/src/spice2x/games/gitadora/io.h +++ b/src/spice2x/games/gitadora/io.h @@ -209,6 +209,7 @@ namespace games::gitadora { // getters std::vector