shithub: choc

Download patch

ref: ec169fd1c28b2ba3b6b6fc7e7123e9d27516dd5f
parent: 5130b54658ab03f3fc18727615b529d6e241566c
author: Simon Howard <fraggle@gmail.com>
date: Thu Jan 13 15:34:55 EST 2011

In configuration files, use the scan code for right shift, not left
shift, to match Vanilla (thanks AlexXav).

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 2238

--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,8 @@
 
     Bugs fixed:
      * Menu navigation when using joystick/joypad (thanks AlexXav).
+     * For configuration file value for shift keys, use scan code for
+       right shift, not left shift (thanks AlexXav).
 
 1.5.0 (2011-01-02):
 
--- a/setup/configfile.c
+++ b/setup/configfile.c
@@ -417,8 +417,18 @@
                 
                 v = * (int *) defaults[i].location;
 
-                if (defaults[i].untranslated
-                 && v == defaults[i].original_translated)
+                if (v == KEY_RSHIFT)
+                {
+                    // Special case: for shift, force scan code for
+                    // right shift, as this is what Vanilla uses.
+                    // This overrides the change check below, to fix
+                    // configuration files made by old versions that
+                    // mistakenly used the scan code for left shift.
+
+                    v = 54;
+                }
+                else if (defaults[i].untranslated
+                      && v == defaults[i].original_translated)
                 {
                     // Has not been changed since the last time we
                     // read the config file.
--- a/src/m_config.c
+++ b/src/m_config.c
@@ -1217,8 +1217,18 @@
                 
                 v = * (int *) defaults[i].location;
 
-                if (defaults[i].untranslated
-                 && v == defaults[i].original_translated)
+                if (v == KEY_RSHIFT)
+                {
+                    // Special case: for shift, force scan code for
+                    // right shift, as this is what Vanilla uses.
+                    // This overrides the change check below, to fix
+                    // configuration files made by old versions that
+                    // mistakenly used the scan code for left shift.
+
+                    v = 54;
+                }
+                else if (defaults[i].untranslated
+                      && v == defaults[i].original_translated)
                 {
                     // Has not been changed since the last time we
                     // read the config file.