rnd-20071020-1-src
authorHolger Schemel <info@artsoft.org>
Sat, 20 Oct 2007 00:10:23 +0000 (02:10 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:56:37 +0000 (10:56 +0200)
* merged override and auto-override options into new override options
  with a new data type than can take the values "no", "yes" and "auto"

13 files changed:
ChangeLog
Makefile
src/conftime.h
src/files.c
src/init.c
src/libgame/misc.c
src/libgame/misc.h
src/libgame/setup.c
src/libgame/setup.h
src/libgame/system.h
src/libgame/types.h
src/screens.c
src/tools.c

index 72d8cd60481d1c65391e7d03f876bb5a8fe20620..5f4d6475e5635a4b522a82d01842796cb6715327 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-10-20
+       * merged override and auto-override options into new override options
+         with a new data type than can take the values "no", "yes" and "auto"
+
 2007-10-18
        * fixed growing steel wall to also leave behind steel wall instead of
          normal, destructible wall
index d31608d9dc111f35fa5862246c6d92536865388a..ea1154ef1c2ea54566dc97b86ab836b3fda47884 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,7 @@ CROSS_PATH_MSDOS = /usr/local/cross-msdos/i386-msdosdjgpp
 CROSS_PATH_WIN32 = /usr/local/cross-tools/i386-mingw32msvc
 
 # compile special edition of R'n'D instead of the normal (classic) version
-SPECIAL_EDITION = rnd_jue
+SPECIAL_EDITION = rnd_jue
 
 
 # -----------------------------------------------------------------------------
index 8a9e33451a6fc83210438009db055af4ba6ecdc0..2968c64d849eca1c26cfdae214c99f52c3fce905 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2007-10-18 02:23"
+#define COMPILE_DATE_STRING "2007-10-20 02:03"
index 3b51e6e28b92236f2126c769e29d3f78f924735a..45dec406063d6c3ed9d471506ecf4c70e1156710 100644 (file)
@@ -8013,9 +8013,8 @@ void SaveScore(int nr)
 #define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS    28
 #define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS      29
 #define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC       30
-#define SETUP_TOKEN_AUTO_OVERRIDE_ARTWORK      31
 
-#define NUM_GLOBAL_SETUP_TOKENS                        32
+#define NUM_GLOBAL_SETUP_TOKENS                        31
 
 /* editor setup */
 #define SETUP_TOKEN_EDITOR_EL_BOULDERDASH      0
@@ -8140,10 +8139,9 @@ static struct TokenInfo global_setup_tokens[] =
   { TYPE_STRING, &si.graphics_set,     "graphics_set"                  },
   { TYPE_STRING, &si.sounds_set,       "sounds_set"                    },
   { TYPE_STRING, &si.music_set,                "music_set"                     },
-  { TYPE_SWITCH, &si.override_level_graphics, "override_level_graphics"        },
-  { TYPE_SWITCH, &si.override_level_sounds,   "override_level_sounds"  },
-  { TYPE_SWITCH, &si.override_level_music,    "override_level_music"   },
-  { TYPE_SWITCH, &si.auto_override_artwork,   "auto_override_artwork"  },
+  { TYPE_SWITCH3,&si.override_level_graphics, "override_level_graphics"        },
+  { TYPE_SWITCH3,&si.override_level_sounds,   "override_level_sounds"  },
+  { TYPE_SWITCH3,&si.override_level_music,    "override_level_music"   },
 };
 
 static boolean not_used = FALSE;
@@ -8298,7 +8296,6 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->override_level_graphics = FALSE;
   si->override_level_sounds = FALSE;
   si->override_level_music = FALSE;
-  si->auto_override_artwork = FALSE;
 
   si->editor.el_boulderdash            = TRUE;
   si->editor.el_emerald_mine           = TRUE;
@@ -8357,7 +8354,9 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
 #if defined(CREATE_SPECIAL_EDITION_RND_JUE)
   si->handicap = FALSE;
   si->fullscreen = TRUE;
-  si->auto_override_artwork = TRUE;
+  si->override_level_graphics = AUTO;
+  si->override_level_sounds = AUTO;
+  si->override_level_music = AUTO;
 #endif
 }
 
index 5d862c6f3689a860c6e6f51ecd23335a123eba30..6ef48aee97da2ced884db8f8a24a540967fe1740 100644 (file)
@@ -5758,71 +5758,94 @@ static boolean CheckArtworkConfigForCustomElements(char *filename)
   return redefined_ce_found;
 }
 
-static void InitOverrideArtwork()
+static boolean CheckArtworkTypeForRedefinedCustomElements(int type)
 {
-  boolean init_override_from_setup = TRUE;
-
-  gfx.override_level_graphics = FALSE;
-  gfx.override_level_sounds   = FALSE;
-  gfx.override_level_music    = FALSE;
-
-  if (setup.auto_override_artwork)
-  {
-    char *filename_base, *filename_local;
-    boolean redefined_ce_found = FALSE;
+  char *filename_base, *filename_local;
+  boolean redefined_ce_found = FALSE;
 
-    setLevelArtworkDir(artwork.gfx_first);
+  setLevelArtworkDir(ARTWORK_FIRST_NODE(artwork, type));
 
 #if 0
-    printf("::: leveldir_current->identifier == '%s'\n",
-          leveldir_current == NULL ? "[NULL]" : leveldir_current->identifier);
-    printf("::: leveldir_current->graphics_path == '%s'\n",
-          leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_path);
-    printf("::: leveldir_current->graphics_set == '%s'\n",
-          leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_set);
-    printf("::: getLevelArtworkSet(ARTWORK_TYPE_GRAPHICS) == '%s'\n",
-          leveldir_current == NULL ? "[NULL]" : LEVELDIR_ARTWORK_SET(leveldir_current, ARTWORK_TYPE_GRAPHICS));
+  printf("::: leveldir_current->identifier == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->identifier);
+  printf("::: leveldir_current->graphics_path == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_path);
+  printf("::: leveldir_current->graphics_set == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" : leveldir_current->graphics_set);
+  printf("::: getLevelArtworkSet(ARTWORK_TYPE_GRAPHICS) == '%s'\n",
+        leveldir_current == NULL ? "[NULL]" :
+        LEVELDIR_ARTWORK_SET(leveldir_current, type));
 #endif
 
-    /* first look for special artwork configured in level series config */
-    filename_base = getCustomArtworkLevelConfigFilename(ARTWORK_TYPE_GRAPHICS);
+  /* first look for special artwork configured in level series config */
+  filename_base = getCustomArtworkLevelConfigFilename(type);
 
 #if 0
-    printf("::: filename_base == '%s'\n", filename_base);
+  printf("::: filename_base == '%s'\n", filename_base);
 #endif
 
-    if (fileExists(filename_base))
-      redefined_ce_found |= CheckArtworkConfigForCustomElements(filename_base);
+  if (fileExists(filename_base))
+    redefined_ce_found |= CheckArtworkConfigForCustomElements(filename_base);
 
-    filename_local = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS);
+  filename_local = getCustomArtworkConfigFilename(type);
 
 #if 0
-    printf("::: filename_local == '%s'\n", filename_local);
+  printf("::: filename_local == '%s'\n", filename_local);
 #endif
 
-    if (filename_local != NULL && !strEqual(filename_base, filename_local))
-      redefined_ce_found |= CheckArtworkConfigForCustomElements(filename_local);
+  if (filename_local != NULL && !strEqual(filename_base, filename_local))
+    redefined_ce_found |= CheckArtworkConfigForCustomElements(filename_local);
 
 #if 0
-    printf("::: redefined_ce_found == %d\n", redefined_ce_found);
+  printf("::: redefined_ce_found == %d\n", redefined_ce_found);
 #endif
 
-    if (!redefined_ce_found)
-    {
-      gfx.override_level_graphics = TRUE;
-      gfx.override_level_sounds   = TRUE;
-      gfx.override_level_music    = TRUE;
+  return redefined_ce_found;
+}
 
-      init_override_from_setup = FALSE;
-    }
-  }
+static void InitOverrideArtwork()
+{
+  boolean redefined_ce_found = FALSE;
+
+  /* to check if this level set redefines any CEs, do not use overriding */
+  gfx.override_level_graphics = FALSE;
+  gfx.override_level_sounds   = FALSE;
+  gfx.override_level_music    = FALSE;
+
+  /* now check if this level set has definitions for custom elements */
+  if (setup.override_level_graphics == AUTO ||
+      setup.override_level_sounds   == AUTO ||
+      setup.override_level_music    == AUTO)
+    redefined_ce_found =
+      (CheckArtworkTypeForRedefinedCustomElements(ARTWORK_TYPE_GRAPHICS) |
+       CheckArtworkTypeForRedefinedCustomElements(ARTWORK_TYPE_SOUNDS) |
+       CheckArtworkTypeForRedefinedCustomElements(ARTWORK_TYPE_MUSIC));
 
-  if (init_override_from_setup)
+#if 0
+  printf("::: redefined_ce_found == %d\n", redefined_ce_found);
+#endif
+
+  if (redefined_ce_found)
   {
-    gfx.override_level_graphics = setup.override_level_graphics;
-    gfx.override_level_sounds   = setup.override_level_sounds;
-    gfx.override_level_music    = setup.override_level_music;
+    /* this level set has CE definitions: change "AUTO" to "FALSE" */
+    gfx.override_level_graphics = (setup.override_level_graphics == TRUE);
+    gfx.override_level_sounds   = (setup.override_level_sounds   == TRUE);
+    gfx.override_level_music    = (setup.override_level_music    == TRUE);
   }
+  else
+  {
+    /* this level set has no CE definitions: change "AUTO" to "TRUE" */
+    gfx.override_level_graphics = (setup.override_level_graphics != FALSE);
+    gfx.override_level_sounds   = (setup.override_level_sounds   != FALSE);
+    gfx.override_level_music    = (setup.override_level_music    != FALSE);
+  }
+
+#if 0
+  printf("::: => %d, %d, %d\n",
+        gfx.override_level_graphics,
+        gfx.override_level_sounds,
+        gfx.override_level_music);
+#endif
 }
 
 static char *getNewArtworkIdentifier(int type)
index 9d23c75f838c42301f3b44f07ad27d530e9f124b..05dae3dd96449470e069b8de75acc4a7ba5743e4 100644 (file)
@@ -1600,6 +1600,24 @@ boolean get_boolean_from_string(char *s)
   return result;
 }
 
+int get_switch3_from_string(char *s)
+{
+  char *s_lower = getStringToLower(s);
+  int result = FALSE;
+
+  if (strEqual(s_lower, "true") ||
+      strEqual(s_lower, "yes") ||
+      strEqual(s_lower, "on") ||
+      get_integer_from_string(s) == 1)
+    result = TRUE;
+  else if (strEqual(s_lower, "auto"))
+    result = AUTO;
+
+  free(s_lower);
+
+  return result;
+}
+
 
 /* ------------------------------------------------------------------------- */
 /* functions for generic lists                                               */
index 29aaee7043fe7b4701c6c2cc5450bec8e99c0b6f..66dbda052f7cef02f52481e947d1790e9dbb2e6f 100644 (file)
@@ -169,6 +169,7 @@ char getValidConfigValueChar(char);
 
 int get_integer_from_string(char *);
 boolean get_boolean_from_string(char *);
+int get_switch3_from_string(char *);
 
 ListNode *newListNode(void);
 void addNodeToList(ListNode **, char *, void *);
index 65e504e5665476814a33cf3969c2c37bde2c6d60..3e5392498dbdb63474df4b3e75b19c22488452d5 100644 (file)
@@ -2687,6 +2687,10 @@ void setSetupInfo(struct TokenInfo *token_info,
       *(boolean *)setup_value = get_boolean_from_string(token_value);
       break;
 
+    case TYPE_SWITCH3:
+      *(int *)setup_value = get_switch3_from_string(token_value);
+      break;
+
     case TYPE_KEY:
       *(Key *)setup_value = getKeyFromKeyName(token_value);
       break;
@@ -3749,10 +3753,20 @@ char *getSetupValue(int type, void *value)
       strcpy(value_string, (*(boolean *)value ? "on" : "off"));
       break;
 
+    case TYPE_SWITCH3:
+      strcpy(value_string, (*(int *)value == AUTO  ? "auto" :
+                           *(int *)value == FALSE ? "off" : "on"));
+      break;
+
     case TYPE_YES_NO:
       strcpy(value_string, (*(boolean *)value ? "yes" : "no"));
       break;
 
+    case TYPE_YES_NO_AUTO:
+      strcpy(value_string, (*(int *)value == AUTO  ? "auto" :
+                           *(int *)value == FALSE ? "no" : "yes"));
+      break;
+
     case TYPE_ECS_AGA:
       strcpy(value_string, (*(boolean *)value ? "AGA" : "ECS"));
       break;
index 02a815ab8c02edbf8bf7fbfc8a909664ef03e52b..414cf74e7ad2db66db009756387c0d644f68bbce 100644 (file)
 /* values for setup file handling */
 #define TYPE_BOOLEAN                   (1 << 0)
 #define TYPE_SWITCH                    (1 << 1)
-#define TYPE_YES_NO                    (1 << 2)
-#define TYPE_ECS_AGA                   (1 << 3)
-#define TYPE_KEY                       (1 << 4)
-#define TYPE_KEY_X11                   (1 << 5)
-#define TYPE_INTEGER                   (1 << 6)
-#define TYPE_STRING                    (1 << 7)
-#define TYPE_ELEMENT                   (1 << 8)
-#define TYPE_GRAPHIC                   (1 << 9)
+#define TYPE_SWITCH3                   (1 << 2)
+#define TYPE_YES_NO                    (1 << 3)
+#define TYPE_YES_NO_AUTO               (1 << 4)
+#define TYPE_ECS_AGA                   (1 << 5)
+#define TYPE_KEY                       (1 << 6)
+#define TYPE_KEY_X11                   (1 << 7)
+#define TYPE_INTEGER                   (1 << 8)
+#define TYPE_STRING                    (1 << 9)
+#define TYPE_ELEMENT                   (1 << 10)
+#define TYPE_GRAPHIC                   (1 << 11)
 
 /* additional values for setup screen */
-#define TYPE_ENTER_SCREEN              (1 << 10)
-#define TYPE_LEAVE_SCREEN              (1 << 11)
-#define TYPE_ENTER_MENU                        (1 << 12)
-#define TYPE_LEAVE_MENU                        (1 << 13)
-#define TYPE_ENTER_LIST                        (1 << 14)
-#define TYPE_LEAVE_LIST                        (1 << 15)
-#define TYPE_EMPTY                     (1 << 16)
-#define TYPE_KEYTEXT                   (1 << 17)
-
-#define TYPE_GHOSTED                   (1 << 18)
-#define TYPE_QUERY                     (1 << 19)
+#define TYPE_ENTER_SCREEN              (1 << 12)
+#define TYPE_LEAVE_SCREEN              (1 << 13)
+#define TYPE_ENTER_MENU                        (1 << 14)
+#define TYPE_LEAVE_MENU                        (1 << 15)
+#define TYPE_ENTER_LIST                        (1 << 16)
+#define TYPE_LEAVE_LIST                        (1 << 17)
+#define TYPE_EMPTY                     (1 << 18)
+#define TYPE_KEYTEXT                   (1 << 19)
+
+#define TYPE_GHOSTED                   (1 << 20)
+#define TYPE_QUERY                     (1 << 21)
 
 /* additional values for internal purposes */
-#define TYPE_BITFIELD                  (1 << 20)
-#define TYPE_CONTENT                   (1 << 21)
-#define TYPE_ELEMENT_LIST              (1 << 22)
-#define TYPE_CONTENT_LIST              (1 << 23)
+#define TYPE_BITFIELD                  (1 << 22)
+#define TYPE_CONTENT                   (1 << 23)
+#define TYPE_ELEMENT_LIST              (1 << 24)
+#define TYPE_CONTENT_LIST              (1 << 25)
 
 /* derived values for setup file handling */
 #define TYPE_BOOLEAN_STYLE             (TYPE_BOOLEAN | \
@@ -57,6 +59,8 @@
 
 /* derived values for setup screen */
 #define TYPE_VALUE                     (TYPE_BOOLEAN_STYLE     | \
+                                        TYPE_SWITCH3           | \
+                                        TYPE_YES_NO_AUTO       | \
                                         TYPE_KEY               | \
                                         TYPE_KEY_X11           | \
                                         TYPE_INTEGER           | \
index 28e5a2eaf8a6395656e09f0ea84753d5aed7df34..3791f1e6523b07e16e7d70b6886f5b22a01cefc0 100644 (file)
@@ -870,10 +870,9 @@ struct SetupInfo
   char *graphics_set;
   char *sounds_set;
   char *music_set;
-  boolean override_level_graphics;
-  boolean override_level_sounds;
-  boolean override_level_music;
-  boolean auto_override_artwork;
+  int override_level_graphics;         /* not boolean -- can also be "AUTO" */
+  int override_level_sounds;           /* not boolean -- can also be "AUTO" */
+  int override_level_music;            /* not boolean -- can also be "AUTO" */
 
   struct SetupEditorInfo editor;
   struct SetupEditorCascadeInfo editor_cascade;
index f4d0e820847c59c9a0aef9240014d02dcf288a3f..d6f49bdd68026c47a6557575f8eb15ad2e8c1d86 100644 (file)
@@ -26,11 +26,22 @@ typedef int boolean;
 typedef unsigned char byte;
 #endif
 
-#ifndef FALSE
-#define FALSE          0
-#define TRUE           (!FALSE)
+#ifdef TRUE
+#undef TRUE
+#endif
+
+#ifdef FALSE
+#undef FALSE
 #endif
 
+#ifdef AUTO
+#undef AUTO
+#endif
+
+#define TRUE           1
+#define FALSE          0
+#define AUTO           -1
+
 #ifndef MIN
 #define MIN(a,b)       ((a) < (b) ? (a) : (b))
 #endif
index 9b2a6ef91dd7e6d445b804002f4257c11f783f2b..6097a04b2a160d90abc753fe317673a3cc836f3d 100644 (file)
@@ -2010,7 +2010,8 @@ void HandleInfoScreen_Main(int mx, int my, int dx, int dy, int button)
 
       if (info_info[choice].type & menu_navigation_type ||
          info_info[choice].type & TYPE_ENTER_SCREEN ||
-         info_info[choice].type & TYPE_BOOLEAN_STYLE)
+         info_info[choice].type & TYPE_BOOLEAN_STYLE ||
+         info_info[choice].type & TYPE_YES_NO_AUTO)
        button = MB_MENU_CHOICE;
     }
     else if (dy)
@@ -4210,10 +4211,16 @@ static struct TokenInfo setup_info_artwork[] =
   { TYPE_STRING,       &music_set_name,        ""                      },
   { TYPE_EMPTY,                NULL,                   ""                      },
 #if 1
+#if 1
+  { TYPE_YES_NO_AUTO,&setup.override_level_graphics,"Override Level Graphics:"},
+  { TYPE_YES_NO_AUTO,&setup.override_level_sounds,  "Override Level Sounds:"  },
+  { TYPE_YES_NO_AUTO,&setup.override_level_music,   "Override Level Music:"   },
+#else
   { TYPE_YES_NO, &setup.override_level_graphics,"Override Level Graphics:" },
   { TYPE_YES_NO, &setup.override_level_sounds, "Override Level Sounds:"   },
   { TYPE_YES_NO, &setup.override_level_music,  "Override Level Music:"    },
   { TYPE_YES_NO, &setup.auto_override_artwork, "Auto-Override Non-CE Sets:" },
+#endif
 #else
   { TYPE_STRING,       NULL,                   "Override Level Artwork:"},
   { TYPE_YES_NO,       &setup.override_level_graphics, "Graphics:"     },
@@ -4330,11 +4337,12 @@ static Key getSetupKey()
 
 static int getSetupTextFont(int type)
 {
-  if (type & (TYPE_SWITCH |
-             TYPE_YES_NO |
-             TYPE_STRING |
-             TYPE_ECS_AGA |
-             TYPE_KEYTEXT |
+  if (type & (TYPE_SWITCH      |
+             TYPE_YES_NO       |
+             TYPE_YES_NO_AUTO  |
+             TYPE_STRING       |
+             TYPE_ECS_AGA      |
+             TYPE_KEYTEXT      |
              TYPE_ENTER_LIST))
     return FONT_MENU_2;
   else
@@ -4351,6 +4359,9 @@ static int getSetupValueFont(int type, void *value)
     return FONT_VALUE_1;
   else if (type & TYPE_BOOLEAN_STYLE)
     return (*(boolean *)value ? FONT_OPTION_ON : FONT_OPTION_OFF);
+  else if (type & TYPE_YES_NO_AUTO)
+    return (*(int *)value == AUTO  ? FONT_OPTION_ON :
+           *(int *)value == FALSE ? FONT_OPTION_OFF : FONT_OPTION_ON);
   else
     return FONT_VALUE_1;
 }
@@ -4363,11 +4374,13 @@ static void drawSetupValue(int pos)
   int ypos = MENU_SCREEN_START_YPOS + pos;
   int startx = mSX + xpos * 32;
   int starty = mSY + ypos * 32;
-  int font_nr, font_width;
+  int font_nr, font_width, font_height;
   int type = setup_info[pos].type;
   void *value = setup_info[pos].value;
   char *value_string = getSetupValue(type, value);
+#if 1
   int i;
+#endif
 
   if (value_string == NULL)
     return;
@@ -4377,9 +4390,7 @@ static void drawSetupValue(int pos)
     xpos = MENU_SCREEN_START_XPOS;
 
     if (type & TYPE_QUERY)
-    {
       value_string = "<press key>";
-    }
   }
   else if (type & TYPE_STRING)
   {
@@ -4390,11 +4401,16 @@ static void drawSetupValue(int pos)
     if (strlen(value_string) > max_value_len)
       value_string[max_value_len] = '\0';
   }
+  else if (type & TYPE_YES_NO_AUTO)
+  {
+    xpos = MENU_SCREEN_VALUE_XPOS - 1;
+  }
 
   startx = mSX + xpos * 32;
   starty = mSY + ypos * 32;
   font_nr = getSetupValueFont(type, value);
   font_width = getFontWidth(font_nr);
+  font_height = getFontHeight(font_nr);
 
   /* downward compatibility correction for Juergen Bonhagen's menu settings */
   if (setup_mode != SETUP_MODE_INPUT)
@@ -4431,8 +4447,12 @@ static void drawSetupValue(int pos)
     }
   }
 
+#if 0
+  DrawBackground(startx, starty, SX + SXSIZE - startx, font_height);
+#else
   for (i = 0; i <= MENU_SCREEN_MAX_XPOS - xpos; i++)
     DrawText(startx + i * font_width, starty, " ", font_nr);
+#endif
 
   DrawText(startx, starty, value_string, font_nr);
 
@@ -4440,12 +4460,21 @@ static void drawSetupValue(int pos)
     getFontBitmapInfo(font_nr)->draw_xoffset = font_draw_xoffset_old;
 }
 
-static void changeSetupValue(int pos)
+static void changeSetupValue(int pos, int dx)
 {
   if (setup_info[pos].type & TYPE_BOOLEAN_STYLE)
   {
     *(boolean *)setup_info[pos].value ^= TRUE;
   }
+  else if (setup_info[pos].type & TYPE_YES_NO_AUTO)
+  {
+    *(int *)setup_info[pos].value =
+      (dx == -1 ?
+       (*(int *)setup_info[pos].value == AUTO ? TRUE :
+       *(int *)setup_info[pos].value == TRUE ? FALSE : AUTO) :
+       (*(int *)setup_info[pos].value == TRUE ? AUTO :
+       *(int *)setup_info[pos].value == AUTO ? FALSE : TRUE));
+  }
   else if (setup_info[pos].type & TYPE_KEY)
   {
     Key key;
@@ -4658,7 +4687,8 @@ void HandleSetupScreen_Generic(int mx, int my, int dx, int dy, int button)
       int menu_navigation_type = (dx < 0 ? TYPE_LEAVE : TYPE_ENTER);
 
       if (setup_info[choice].type & menu_navigation_type ||
-         setup_info[choice].type & TYPE_BOOLEAN_STYLE)
+         setup_info[choice].type & TYPE_BOOLEAN_STYLE ||
+         setup_info[choice].type & TYPE_YES_NO_AUTO)
        button = MB_MENU_CHOICE;
     }
     else if (dy)
@@ -4709,7 +4739,7 @@ void HandleSetupScreen_Generic(int mx, int my, int dx, int dy, int button)
       else
       {
        if (setup_info[y].type & TYPE_VALUE)
-         changeSetupValue(y);
+         changeSetupValue(y, dx);
       }
     }
   }
index b26add564164aa3468f02f09a5e8bb8c9cf2fff5..804f4a35fce44eff3bd98044a249bda9d8843613 100644 (file)
@@ -503,6 +503,16 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type)
     return;
   }
 
+#if 0
+  printf("::: !!! FADING %d ... [%d] [%d]\n", fade_mode, fade_type,
+        fade_type_skip);
+#endif
+
+#if 1
+  fade_delay = fading.fade_delay;
+  post_delay = (fade_mode == FADE_MODE_FADE_OUT ? fading.post_delay : 0);
+#endif
+
   if (fade_type_skip != FADE_TYPE_NONE)
   {
 #if 0
@@ -513,7 +523,11 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type)
     if (fade_type & fade_type_skip)
       fade_type_skip = FADE_TYPE_NONE;
 
+#if 1
+    fade_delay = 0;
+#else
     return;
+#endif
   }
 
 #if 1
@@ -553,8 +567,10 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type)
     width  = FULL_SXSIZE;
     height = FULL_SYSIZE;
 
+#if 0
     fade_delay = fading.fade_delay;
     post_delay = (fade_mode == FADE_MODE_FADE_OUT ? fading.post_delay : 0);
+#endif
 
     if (border.draw_masked_when_fading)
       draw_border_function = DrawMaskedBorder_FIELD;   /* update when fading */
@@ -568,8 +584,10 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type)
     width  = WIN_XSIZE;
     height = WIN_YSIZE;
 
+#if 0
     fade_delay = fading.fade_delay;
     post_delay = (fade_mode == FADE_MODE_FADE_OUT ? fading.post_delay : 0);
+#endif
   }
 
 #if 1