merge gameport settings with current input configuration
| 7590 | |
| 7591 | // merge gameport settings with current input configuration |
| 7592 | static void compatibility_copy (struct uae_prefs *prefs, bool gameports) |
| 7593 | { |
| 7594 | int used[MAX_INPUT_DEVICES] = { 0 }; |
| 7595 | int i, joy; |
| 7596 | |
| 7597 | for (i = 0; i < MAX_JPORTS; i++) { |
| 7598 | joymodes[i] = prefs->jports[i].mode; |
| 7599 | joysubmodes[i] = prefs->jports[i].submode; |
| 7600 | joyinputs[i] = NULL; |
| 7601 | // remove all mappings from this port |
| 7602 | if (gameports) |
| 7603 | remove_compa_config (prefs, i); |
| 7604 | remove_custom_config (prefs, i); |
| 7605 | setjoyinputs (prefs, i); |
| 7606 | } |
| 7607 | |
| 7608 | for (i = 0; i < 2; i++) { |
| 7609 | if (prefs->jports[i].id >= 0 && joymodes[i] <= 0) { |
| 7610 | int mode = prefs->jports[i].mode; |
| 7611 | if (jsem_ismouse (i, prefs) >= 0) { |
| 7612 | switch (mode) |
| 7613 | { |
| 7614 | case JSEM_MODE_DEFAULT: |
| 7615 | case JSEM_MODE_MOUSE: |
| 7616 | case JSEM_MODE_WHEELMOUSE: |
| 7617 | default: |
| 7618 | joymodes[i] = JSEM_MODE_WHEELMOUSE; |
| 7619 | joyinputs[i] = i ? ip_mouse2 : ip_mouse1; |
| 7620 | break; |
| 7621 | case JSEM_MODE_LIGHTPEN: |
| 7622 | joymodes[i] = JSEM_MODE_LIGHTPEN; |
| 7623 | joyinputs[i] = getlightpen(i, joysubmodes[i]); |
| 7624 | break; |
| 7625 | case JSEM_MODE_MOUSE_CDTV: |
| 7626 | joymodes[i] = JSEM_MODE_MOUSE_CDTV; |
| 7627 | joyinputs[i] = ip_mousecdtv; |
| 7628 | break; |
| 7629 | } |
| 7630 | } else if (jsem_isjoy (i, prefs) >= 0) { |
| 7631 | switch (mode) |
| 7632 | { |
| 7633 | case JSEM_MODE_DEFAULT: |
| 7634 | case JSEM_MODE_JOYSTICK: |
| 7635 | case JSEM_MODE_GAMEPAD: |
| 7636 | case JSEM_MODE_JOYSTICK_CD32: |
| 7637 | default: |
| 7638 | { |
| 7639 | bool iscd32 = mode == JSEM_MODE_JOYSTICK_CD32 || (mode == JSEM_MODE_DEFAULT && prefs->cs_cd32cd); |
| 7640 | if (iscd32) { |
| 7641 | joymodes[i] = JSEM_MODE_JOYSTICK_CD32; |
| 7642 | joyinputs[i] = i ? ip_joycd322 : ip_joycd321; |
| 7643 | } else if (mode == JSEM_MODE_GAMEPAD) { |
| 7644 | joymodes[i] = JSEM_MODE_GAMEPAD; |
| 7645 | joyinputs[i] = i ? ip_joypad2 : ip_joypad1; |
| 7646 | } else { |
| 7647 | joymodes[i] = JSEM_MODE_JOYSTICK; |
| 7648 | joyinputs[i] = i ? ip_joy2 : ip_joy1; |
| 7649 | } |
no test coverage detected