treballant en redefinir els botons i axis del joystick

This commit is contained in:
2025-11-02 18:57:24 +01:00
parent 6c766be023
commit b79f30a57b
6 changed files with 243 additions and 8 deletions

View File

@@ -179,6 +179,15 @@ auto saveToFile(const std::string& file_path) -> bool {
file << "# Tecla para saltar (SDL_Scancode)\n";
file << "controls.jump " << static_cast<int>(controls.key_jump) << "\n";
file << "\n## GAMEPAD CONTROLS\n";
file << "# Botón del gamepad para mover a la izquierda\n";
file << "# Valores: 0-20+ = Botones SDL_GamepadButton, 100 = L2, 101 = R2, 200+ = Ejes\n";
file << "gamepad_controls.left " << gamepad_controls.button_left << "\n\n";
file << "# Botón del gamepad para mover a la derecha\n";
file << "gamepad_controls.right " << gamepad_controls.button_right << "\n\n";
file << "# Botón del gamepad para saltar\n";
file << "gamepad_controls.jump " << gamepad_controls.button_jump << "\n";
// Cierra el fichero
file.close();
@@ -244,6 +253,18 @@ auto setOptions(const std::string& var, const std::string& value) -> bool {
{"controls.jump", [](const std::string& v) {
int val = safeStoi(v, SDL_SCANCODE_UP);
controls.key_jump = static_cast<SDL_Scancode>(val);
}},
{"gamepad_controls.left", [](const std::string& v) {
int val = safeStoi(v, static_cast<int>(SDL_GAMEPAD_BUTTON_DPAD_LEFT));
gamepad_controls.button_left = val;
}},
{"gamepad_controls.right", [](const std::string& v) {
int val = safeStoi(v, static_cast<int>(SDL_GAMEPAD_BUTTON_DPAD_RIGHT));
gamepad_controls.button_right = val;
}},
{"gamepad_controls.jump", [](const std::string& v) {
int val = safeStoi(v, static_cast<int>(SDL_GAMEPAD_BUTTON_WEST));
gamepad_controls.button_jump = val;
}}};
auto it = OPTION_HANDLERS.find(var);