added separate 3-state type values for "true" and "false" states
[rocksndiamonds.git] / src / libgame / setup.c
index 4027a6e065a4f23823b7c1050345a08330c9b6a7..a9a62d4e44df0968e1c998a44083949769840471 100644 (file)
@@ -2831,10 +2831,11 @@ SetupFileHash *loadSetupFileHash(char *filename)
 #define LEVELINFO_TOKEN_HANDICAP               29
 #define LEVELINFO_TOKEN_TIME_LIMIT             30
 #define LEVELINFO_TOKEN_SKIP_LEVELS            31
-#define LEVELINFO_TOKEN_USE_EMC_TILES          32
-#define LEVELINFO_TOKEN_INFO_SCREENS_FROM_MAIN 33
+#define LEVELINFO_TOKEN_ALLOW_SKIPPING_LEVELS  32
+#define LEVELINFO_TOKEN_USE_EMC_TILES          33
+#define LEVELINFO_TOKEN_INFO_SCREENS_FROM_MAIN 34
 
-#define NUM_LEVELINFO_TOKENS                   34
+#define NUM_LEVELINFO_TOKENS                   35
 
 static LevelDirTree ldi;
 
@@ -2858,6 +2859,8 @@ static struct TokenInfo levelinfo_tokens[] =
   { TYPE_BOOLEAN,      &ldi.latest_engine,     "latest_engine"         },
   { TYPE_BOOLEAN,      &ldi.level_group,       "level_group"           },
   { TYPE_BOOLEAN,      &ldi.readonly,          "readonly"              },
+  { TYPE_STRING,       &ldi.graphics_set_ecs,  "graphics_set.old"      },
+  { TYPE_STRING,       &ldi.graphics_set_aga,  "graphics_set.new"      },
   { TYPE_STRING,       &ldi.graphics_set_ecs,  "graphics_set.ecs"      },
   { TYPE_STRING,       &ldi.graphics_set_aga,  "graphics_set.aga"      },
   { TYPE_STRING,       &ldi.graphics_set,      "graphics_set"          },
@@ -3230,7 +3233,7 @@ void setSetupInfo(struct TokenInfo *token_info,
       *(boolean *)setup_value = get_boolean_from_string(token_value);
       break;
 
-    case TYPE_SWITCH3:
+    case TYPE_SWITCH_3_STATES:
       *(int *)setup_value = get_switch3_from_string(token_value);
       break;
 
@@ -4859,9 +4862,10 @@ 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"));
+    case TYPE_SWITCH_3_STATES:
+      strcpy(value_string, (*(int *)value == MODE_AUTO  ? "auto" :
+                           *(int *)value == MODE_ASK   ? "ask" :
+                           *(int *)value == MODE_FALSE ? "off" : "on"));
       break;
 
     case TYPE_YES_NO:
@@ -4869,8 +4873,13 @@ char *getSetupValue(int type, void *value)
       break;
 
     case TYPE_YES_NO_AUTO:
-      strcpy(value_string, (*(int *)value == AUTO  ? "auto" :
-                           *(int *)value == FALSE ? "no" : "yes"));
+      strcpy(value_string, (*(int *)value == MODE_AUTO  ? "auto" :
+                           *(int *)value == MODE_FALSE ? "no" : "yes"));
+      break;
+
+    case TYPE_YES_NO_ASK:
+      strcpy(value_string, (*(int *)value == MODE_ASK   ? "ask" :
+                           *(int *)value == MODE_FALSE ? "no" : "yes"));
       break;
 
     case TYPE_ECS_AGA: