1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-11-16 21:57:15 +00:00

defaultjoy option

This commit is contained in:
Zeno Rogue
2025-11-11 18:44:54 +01:00
parent 95f34fd54a
commit 2f2bc74cc5
2 changed files with 10 additions and 3 deletions

View File

@@ -1027,6 +1027,8 @@ EX int lang() {
EX bool autojoy = false;
EX bool defaultjoy = true;
EX void paramset(charstyle& cs, string s) {
param_i(cs.charid, s + ".charid");
param_color(cs.skincolor, s + ".skincolor", true, cs.skincolor);
@@ -1462,6 +1464,9 @@ EX void initConfig() {
param_f(vid.joypanspeed, "vid.joypanspeed", ISPANDORA ? 0.0001 : 0);
param_b(autojoy, "autojoy")
-> editable("joystick moves automatically", 'J');
param_b(defaultjoy, "defaultjoy")
-> editable("apply joystick movements", 'H')
-> help("Disable this on Steam controllers, which also send key events, to avoid duplicated input.");
#endif
vid.killreduction = 0;
@@ -2646,6 +2651,7 @@ EX void showJoyConfig() {
dialog::addSelItem(XLAT("second joystick: pan threshold"), its(vid.joypanthreshold), 'c');
dialog::addSelItem(XLAT("second joystick: panning speed"), fts(vid.joypanspeed * 1000), 'd');
dialog::addSelItem(XLAT("smoothen"), its(vid.joysmooth) + " ms", 'e');
add_edit(defaultjoy);
dialog::addBreak(50);
dialog::addBack();

View File

@@ -1178,21 +1178,22 @@ EX void handle_event(SDL_Event& ev) {
if(joyhandler && joyhandler(ev)) ;
else if(ev.type == SDL_EVENT_JOYSTICK_HAT_MOTION && !normal) {
else if(ev.type == SDL_EVENT_JOYSTICK_HAT_MOTION && !normal && defaultjoy) {
if(ev.jhat.value == SDL_HAT_UP) sym = SDLK_UP;
if(ev.jhat.value == SDL_HAT_DOWN) sym = SDLK_DOWN;
if(ev.jhat.value == SDL_HAT_LEFT) sym = SDLK_LEFT;
if(ev.jhat.value == SDL_HAT_RIGHT) sym = SDLK_RIGHT;
}
else if(ev.type == SDL_EVENT_JOYSTICK_BUTTON_DOWN && normal && DEFAULTCONTROL) {
else if(ev.type == SDL_EVENT_JOYSTICK_BUTTON_DOWN && normal && DEFAULTCONTROL && defaultjoy) {
flashMessages();
movepcto(joydir);
joy_ignore_next = true;
joytime = -1;
checkjoy();
}
else if(ev.type == SDL_EVENT_JOYSTICK_BUTTON_DOWN && !normal) {
else if(ev.type == SDL_EVENT_JOYSTICK_BUTTON_DOWN && !normal && defaultjoy) {
sym = uni = SDLK_RETURN;
}
#endif