Add config migration paths for the renamed joystick types
Fix backwards compatibility with old integer-based config joystick type selection
This commit is contained in:
25
src/config.c
25
src/config.c
@@ -914,15 +914,30 @@ load_input_devices(void)
|
|||||||
|
|
||||||
p = config_get_string(cat, "joystick_type", NULL);
|
p = config_get_string(cat, "joystick_type", NULL);
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
|
if (!strcmp(p, "standard_2button"))
|
||||||
|
joystick_type = joystick_get_from_internal_name("2axis_2button");
|
||||||
|
else if (!strcmp(p, "standard_4button"))
|
||||||
|
joystick_type = joystick_get_from_internal_name("2axis_4button");
|
||||||
|
else if (!strcmp(p, "standard_6button"))
|
||||||
|
joystick_type = joystick_get_from_internal_name("2axis_6button");
|
||||||
|
else if (!strcmp(p, "standard_8button"))
|
||||||
|
joystick_type = joystick_get_from_internal_name("2axis_8button");
|
||||||
|
|
||||||
joystick_type = joystick_get_from_internal_name(p);
|
joystick_type = joystick_get_from_internal_name(p);
|
||||||
if (!joystick_type) {
|
if (!joystick_type) {
|
||||||
/* Try to read an integer for backwards compatibility with old configs */
|
/* Try to read an integer for backwards compatibility with old configs */
|
||||||
c = config_get_int(cat, "joystick_type", 8);
|
c = config_get_int(cat, "joystick_type", 8);
|
||||||
if ((c >= 0) && (c < 8))
|
switch (c) {
|
||||||
/* "None" was type 8 instead of 0 previously, shift the number accordingly */
|
case 0: case 1: case 2: case 3: /* 2-axis joysticks */
|
||||||
joystick_type = c + 1;
|
joystick_type = c + 1;
|
||||||
else
|
break;
|
||||||
joystick_type = 0;
|
case 4: case 5: case 6: case 7: /* other joysticks */
|
||||||
|
joystick_type = c + 3;
|
||||||
|
break;
|
||||||
|
default: /* "None" (8) or invalid value */
|
||||||
|
joystick_type = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
joystick_type = 0;
|
joystick_type = 0;
|
||||||
|
Reference in New Issue
Block a user