]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
default.uae and missing input device: replace with none, not layout A.
authorToni Wilen <twilen@winuae.net>
Fri, 16 Sep 2016 14:36:38 +0000 (17:36 +0300)
committerToni Wilen <twilen@winuae.net>
Fri, 16 Sep 2016 14:36:38 +0000 (17:36 +0300)
inputdevice.cpp

index 6bb419c248e3bbbf17e29f3c770dc7b741a5c6c0..61515c3023bd61cd8e20e70cd4a5c0871e238dd6 100644 (file)
@@ -8419,11 +8419,17 @@ static bool fixjport (struct jport *port, int add, bool always)
        return wasinvalid;
 }
 
-static void inputdevice_get_previous_joy(struct uae_prefs *p, int portnum)
+static void inputdevice_get_previous_joy(struct uae_prefs *p, int portnum, bool userconfig)
 {
+       struct jport *jpx = &p->jports[portnum];
+
+       if (!userconfig) {
+               // default.uae with unplugged device -> NONE
+               p->jports[portnum].id = JPORT_NONE;
+               return;
+       }
        bool found = false;
        int idx = 0;
-       struct jport *jpx = &p->jports[portnum];
        for (;;) {
                struct jport *jp = inputdevice_get_used_device(portnum, idx);
                if (!jp)
@@ -8678,7 +8684,7 @@ int inputdevice_joyport_config (struct uae_prefs *p, const TCHAR *value1, const
                                }
                                // joystick not found, select previously used or default
                                if (start == JSEM_JOYS && p->jports[portnum].id < JSEM_JOYS) {
-                                       inputdevice_get_previous_joy(p, portnum);
+                                       inputdevice_get_previous_joy(p, portnum, true);
                                        set_config_changed ();
                                        return 1;
                                }
@@ -8802,7 +8808,7 @@ void inputdevice_fix_prefs(struct uae_prefs *p, bool userconfig)
                                        write_log(_T("Unplugged stored, port %d '%s' (%s)\n"), i, jp->idc.name, jp->idc.configname);
                                        inputdevice_store_used_device(&jpt, i, defaultports);
                                        freejport(p, i);
-                                       inputdevice_get_previous_joy(p, i);
+                                       inputdevice_get_previous_joy(p, i, userconfig);
                                        matched[i] = true;
                                }
                        }
@@ -8813,7 +8819,7 @@ void inputdevice_fix_prefs(struct uae_prefs *p, bool userconfig)
                        struct jport *jp = &jport_config_store[i];
                        freejport(p, i);
                        if (jp->id != JPORT_NONE) {
-                               inputdevice_get_previous_joy(p, i);
+                               inputdevice_get_previous_joy(p, i, userconfig);
                                write_log(_T("Port%d: ID=%d getting previous: %d\n"), i, jp->id, p->jports[i].id);
                        } else {
                                write_log(_T("Port%d: NONE\n"), i);