Skip to content

Commit d54d2d0

Browse files
committed
Add option to disable joystick
Allow gptokeyb and other outside functions to take over joystick controls, sensitivity and deadzones.
1 parent b8cd38c commit d54d2d0

3 files changed

Lines changed: 19 additions & 8 deletions

File tree

gmloader/configuration.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ void from_json(const json& j, gml_config& c) {
1212
get_if_exists("disable_controller", disable_controller);
1313
get_if_exists("disable_depth", disable_depth);
1414
get_if_exists("disable_extensions", disable_extensions);
15+
get_if_exists("disable_joystick", disable_joystick);
1516
get_if_exists("disable_rumble", disable_rumble);
16-
get_if_exists("rumble_scale", rumble_scale);
1717
get_if_exists("disable_texhack", disable_texhack);
18+
get_if_exists("rumble_scale", rumble_scale);
1819
get_if_exists("force_platform", force_platform);
1920
}
2021

@@ -25,9 +26,10 @@ void gml_config::init_defaults(){
2526
disable_controller = false;
2627
disable_depth = false;
2728
disable_extensions = true;
29+
disable_joystick = false;
2830
disable_rumble = false;
29-
rumble_scale = 1.0;
3031
disable_texhack = true; /* Disabled by default until properly tested. */
32+
rumble_scale = 1.0;
3133
force_platform = "os_android";
3234
}
3335

@@ -59,8 +61,9 @@ void gml_config::show_config(){
5961
printf("config: disable_controller = %d\n", disable_controller);
6062
printf("config: disable_depth = %d\n", disable_depth);
6163
printf("config: disable_extensions = %d\n", disable_extensions);
64+
printf("config: disable_joystick = %d\n", disable_joystick);
6265
printf("config: disable_rumble = %d\n", disable_rumble);
63-
printf("config: rumble_scale = %f\n", rumble_scale);
6466
printf("config: disable_texhack = %d\n", disable_texhack);
67+
printf("config: rumble_scale = %f\n", rumble_scale);
6568
printf("config: force_platform = %s\n", force_platform.c_str());
6669
}

gmloader/configuration.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ struct gml_config {
1414
bool disable_controller;
1515
bool disable_depth;
1616
bool disable_extensions;
17+
bool disable_joystick;
1718
bool disable_rumble;
18-
float rumble_scale;
1919
bool disable_texhack;
20+
float rumble_scale;
2021
std::string force_platform;
2122

2223
friend void from_json(const json& j, gml_config& c);

gmloader/input.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,17 @@ int update_inputs(SDL_Window *win)
362362
}
363363

364364
k = 0;
365-
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_LEFTX)) / 32767.f;
366-
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_LEFTY)) / 32767.f;
367-
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_RIGHTX)) / 32767.f;
368-
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_RIGHTY)) / 32767.f;
365+
if (gmloader_config.disable_joystick) {
366+
yoyo_gamepads[slot].axis[k++] = 0.0;
367+
yoyo_gamepads[slot].axis[k++] = 0.0;
368+
yoyo_gamepads[slot].axis[k++] = 0.0;
369+
yoyo_gamepads[slot].axis[k++] = 0.0;
370+
} else {
371+
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_LEFTX)) / 32767.0;
372+
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_LEFTY)) / 32767.0;
373+
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_RIGHTX)) / 32767.0;
374+
yoyo_gamepads[slot].axis[k++] = ((double)SDL_GameControllerGetAxis(controller->controller, SDL_CONTROLLER_AXIS_RIGHTY)) / 32767.0;
375+
}
369376
}
370377

371378
// Mouse Code

0 commit comments

Comments
 (0)