changeset 17443:b78e3e26c345 draft

(svn r22197) -Cleanup: remove the distinction between conditional and non-conditional settings; with default from and to savegame versions all can be conditional. They previously were as well; the non-conditional ones were macros of the conditionals with to/from saveload versions hardcoded
author rubidium <rubidium@openttd.org>
date Sat, 05 Mar 2011 10:47:49 +0000
parents c13686e3a5dc
children bf88fe868439
files src/table/company_settings.ini src/table/currency_settings.ini src/table/gameopt_settings.ini src/table/misc_settings.ini src/table/music_settings.ini src/table/settings.h.preamble src/table/settings.ini src/table/win32_settings.ini
diffstat 8 files changed, 207 insertions(+), 254 deletions(-) [+]
line wrap: on
line diff
--- a/src/table/company_settings.ini
+++ b/src/table/company_settings.ini
@@ -3,8 +3,8 @@
 [post-amble]
 };
 [templates]
-SDT_BOOL = SDT_BOOL($base, $var,        $flags, $guiflags, $def,                        $str, $proc),
-SDT_VAR  =  SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
+SDT_BOOL = SDT_BOOL($base, $var,        $flags, $guiflags, $def,                        $str, $proc, $from, $to),
+SDT_VAR  =  SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc, $from, $to),
 SDT_END  = SDT_END()
 
 [defaults]
--- a/src/table/currency_settings.ini
+++ b/src/table/currency_settings.ini
@@ -3,9 +3,9 @@
 [post-amble]
 };
 [templates]
-SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
-SDT_CHR = SDT_CHR($base, $var,        $flags, $guiflags, $def,                        $str, $proc),
-SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def,                        $str, $proc),
+SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc, $from, $to),
+SDT_CHR = SDT_CHR($base, $var,        $flags, $guiflags, $def,                        $str, $proc, $from, $to),
+SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def,                        $str, $proc, $from, $to),
 SDT_END = SDT_END()
 
 [defaults]
--- a/src/table/gameopt_settings.ini
+++ b/src/table/gameopt_settings.ini
@@ -28,12 +28,12 @@
 [post-amble]
 };
 [templates]
-SDTG_GENERAL   = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $proc, $from, $to),
-SDT_CONDNULL   = SDT_CONDNULL($length, $from, $to),
-SDTC_CONDOMANY = SDTC_CONDOMANY(  $var, $type, $from, $to, $flags, $guiflags, $def,       $max, $full,            $str, $proc),
-SDT_OMANY      = SDT_OMANY($base, $var, $type,             $flags, $guiflags, $def,       $max, $full,            $str, $proc, $load),
-SDT_VAR        =   SDT_VAR($base, $var, $type,             $flags, $guiflags, $def, $min, $max,        $interval, $str, $proc),
-SDT_END        = SDT_END()
+SDTG_GENERAL = SDTG_GENERAL($name, $sdt_cmd, $sle_cmd, $type, $flags, $guiflags, $var, $length, $def, $min, $max, $interval, $full, $str, $proc, $from, $to),
+SDT_NULL     =   SDT_NULL($length, $from, $to),
+SDTC_OMANY   = SDTC_OMANY(       $var, $type, $flags, $guiflags, $def,       $max, $full,            $str, $proc, $from, $to),
+SDT_OMANY    =  SDT_OMANY($base, $var, $type, $flags, $guiflags, $def,       $max, $full,            $str, $proc, $from, $to, $load),
+SDT_VAR      =    SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max,        $interval, $str, $proc, $from, $to),
+SDT_END      = SDT_END()
 
 [defaults]
 flags    = 0
@@ -129,11 +129,11 @@
 min      = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
 max      = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
 
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 22
 
-[SDTC_CONDOMANY]
+[SDTC_OMANY]
 var      = gui.autosave
 type     = SLE_UINT8
 from     = 23
--- a/src/table/misc_settings.ini
+++ b/src/table/misc_settings.ini
@@ -5,12 +5,12 @@
 [post-amble]
 };
 [templates]
-SDTG_CONDLIST = SDTG_CONDLIST($name, $type, $length, $flags, $guiflags, $var, $def,                               $str, $proc, $from, $to),
-SDTG_MMANY    =    SDTG_MMANY($name, $type,          $flags, $guiflags, $var, $def,                        $full, $str, $proc),
-SDTG_STR      =      SDTG_STR($name, $type,          $flags, $guiflags, $var, $def,                               $str, $proc),
-SDTG_BOOL     =     SDTG_BOOL($name,                 $flags, $guiflags, $var, $def,                               $str, $proc),
-SDTG_VAR      =      SDTG_VAR($name, $type,          $flags, $guiflags, $var, $def, $min, $max, $interval,        $str, $proc),
-SDTG_END      = SDTG_END()
+SDTG_LIST  =  SDTG_LIST($name, $type, $length, $flags, $guiflags, $var, $def,                               $str, $proc, $from, $to),
+SDTG_MMANY = SDTG_MMANY($name, $type,          $flags, $guiflags, $var, $def,                        $full, $str, $proc, $from, $to),
+SDTG_STR   =   SDTG_STR($name, $type,          $flags, $guiflags, $var, $def,                               $str, $proc, $from, $to),
+SDTG_BOOL  =  SDTG_BOOL($name,                 $flags, $guiflags, $var, $def,                               $str, $proc, $from, $to),
+SDTG_VAR   =   SDTG_VAR($name, $type,          $flags, $guiflags, $var, $def, $min, $max, $interval,        $str, $proc, $from, $to),
+SDTG_END   = SDTG_END()
 
 [defaults]
 flags    = 0
@@ -101,7 +101,7 @@
 def      = NULL
 
 ; workaround for implicit lengthof() in SDTG_LIST
-[SDTG_CONDLIST]
+[SDTG_LIST]
 name     = ""resolution""
 type     = SLE_INT
 length   = 2
--- a/src/table/music_settings.ini
+++ b/src/table/music_settings.ini
@@ -3,9 +3,9 @@
 [post-amble]
 };
 [templates]
-SDT_BOOL = SDT_BOOL($base, $var,        $flags, $guiflags, $def,                        $str, $proc),
-SDT_VAR  =  SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc),
-SDT_LIST = SDT_LIST($base, $var, $type, $flags, $guiflags, $def,                        $str, $proc),
+SDT_BOOL = SDT_BOOL($base, $var,        $flags, $guiflags, $def,                        $str, $proc, $from, $to),
+SDT_VAR  =  SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $proc, $from, $to),
+SDT_LIST = SDT_LIST($base, $var, $type, $flags, $guiflags, $def,                        $str, $proc, $from, $to),
 SDT_END  = SDT_END()
 
 [defaults]
--- a/src/table/settings.h.preamble
+++ b/src/table/settings.h.preamble
@@ -67,10 +67,6 @@
  * SettingDescGlobVarList section meaning global variables. The other uses a
  * Base/Offset and runtime variable selection mechanism, known from the saveload
  * convention (it also has global so it should not be hard).
- * Of each type there are again two versions, the normal one and one prefixed
- * with 'COND'.
- * COND means that the setting is only valid in certain savegame versions
- * (since settings are saved to the savegame, this bookkeeping is necessary.
  * Now there are a lot of types. Easy ones are:
  * - VAR:  any number type, 'type' field specifies what number. eg int8 or uint32
  * - BOOL: a boolean number type
@@ -78,10 +74,6 @@
  * A bit more difficult to use are MMANY (meaning ManyOfMany) and OMANY (OneOfMany)
  * These are actually normal numbers, only bitmasked. In MMANY several bits can
  * be set, in the other only one.
- * The most complex type is INTLIST. This is basically an array of numbers. If
- * the intlist is only valid in certain savegame versions because for example
- * it has grown in size its length cannot be automatically be calculated so
- * use SDT(G)_CONDLISTO() meaning Old.
  * If nothing fits you, you can use the GENERAL macros, but it exposes the
  * internal structure somewhat so it needs a little looking. There are _NULL()
  * macros as well, these fill up space so you can add more settings there (in
@@ -102,38 +94,26 @@
 #define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, proc, from, to)\
 	{NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, proc, NULL), SLEG_GENERAL(sle_cmd, var, type | flags, length, from, to)}
 
-#define SDTG_CONDVAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc, from, to)\
+#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc, from, to)\
 	SDTG_GENERAL(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, proc, from, to)
-#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc)\
-	SDTG_CONDVAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc, 0, SL_MAX_VERSION)
 
-#define SDTG_CONDBOOL(name, flags, guiflags, var, def, str, proc, from, to)\
+#define SDTG_BOOL(name, flags, guiflags, var, def, str, proc, from, to)\
 	SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, proc, from, to)
-#define SDTG_BOOL(name, flags, guiflags, var, def, str, proc)\
-	SDTG_CONDBOOL(name, flags, guiflags, var, def, str, proc, 0, SL_MAX_VERSION)
 
-#define SDTG_CONDLIST(name, type, length, flags, guiflags, var, def, str, proc, from, to)\
+#define SDTG_LIST(name, type, length, flags, guiflags, var, def, str, proc, from, to)\
 	SDTG_GENERAL(name, SDT_INTLIST, SL_ARR, type, flags, guiflags, var, length, def, 0, 0, 0, NULL, str, proc, from, to)
-#define SDTG_LIST(name, type, flags, guiflags, var, def, str, proc)\
-	SDTG_GENERAL(name, SDT_INTLIST, SL_ARR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, proc, 0, SL_MAX_VERSION)
 
-#define SDTG_CONDSTR(name, type, length, flags, guiflags, var, def, str, proc, from, to)\
-	SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, length, def, 0, 0, 0, NULL, str, proc, from, to)
-#define SDTG_STR(name, type, flags, guiflags, var, def, str, proc)\
-	SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, proc, 0, SL_MAX_VERSION)
+#define SDTG_STR(name, type, flags, guiflags, var, def, str, proc, from, to)\
+	SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, proc, from, to)
 
-#define SDTG_CONDOMANY(name, type, flags, guiflags, var, def, max, full, str, proc, from, to)\
+#define SDTG_OMANY(name, type, flags, guiflags, var, def, max, full, str, proc, from, to)\
 	SDTG_GENERAL(name, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, max, 0, full, str, proc, from, to)
-#define SDTG_OMANY(name, type, flags, guiflags, var, def, max, full, str, proc)\
-	SDTG_CONDOMANY(name, type, flags, guiflags, var, def, max, full, str, proc, 0, SL_MAX_VERSION)
 
-#define SDTG_CONDMMANY(name, type, flags, guiflags, var, def, full, str, proc, from, to)\
+#define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, proc, from, to)\
 	SDTG_GENERAL(name, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, 0, 0, full, str, proc, from, to)
-#define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, proc)\
-	SDTG_CONDMMANY(name, type, flags, guiflags, var, def, full, str, proc, 0, SL_MAX_VERSION)
 
-#define SDTG_CONDNULL(length, from, to)\
-	{{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLEG_CONDNULL(length, from, to)}
+#define SDTG_NULL(length, from, to)\
+	{{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLEG_NULL(length, from, to)}
 
 #define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLEG_END()}
 
@@ -142,71 +122,45 @@
 #define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, proc, load, from, to)\
 	{NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, proc, load), SLE_GENERAL(sle_cmd, base, var, type | flags, length, from, to)}
 
-#define SDT_CONDVAR(base, var, type, from, to, flags, guiflags, def, min, max, interval, str, proc)\
+#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, proc, from, to)\
 	SDT_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, proc, NULL, from, to)
-#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, proc)\
-	SDT_CONDVAR(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, min, max, interval, str, proc)
 
-#define SDT_CONDBOOL(base, var, from, to, flags, guiflags, def, str, proc)\
+#define SDT_BOOL(base, var, flags, guiflags, def, str, proc, from, to)\
 	SDT_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, base, var, 1, def, 0, 1, 0, NULL, str, proc, NULL, from, to)
-#define SDT_BOOL(base, var, flags, guiflags, def, str, proc)\
-	SDT_CONDBOOL(base, var, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc)
 
-#define SDT_CONDLIST(base, var, type, from, to, flags, guiflags, def, str, proc)\
+#define SDT_LIST(base, var, type, flags, guiflags, def, str, proc, from, to)\
 	SDT_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, proc, NULL, from, to)
-#define SDT_LIST(base, var, type, flags, guiflags, def, str, proc)\
-	SDT_CONDLIST(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc)
 
-#define SDT_CONDSTR(base, var, type, from, to, flags, guiflags, def, str, proc)\
+#define SDT_STR(base, var, type, flags, guiflags, def, str, proc, from, to)\
 	SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, proc, NULL, from, to)
-#define SDT_STR(base, var, type, flags, guiflags, def, str, proc)\
-	SDT_CONDSTR(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc)
-#define SDT_CONDSTRO(base, var, length, type, from, to, flags, def, str, proc)\
-	SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, 0, base, var, length, def, 0, 0, NULL, str, proc, from, to)
 
-#define SDT_CONDCHR(base, var, from, to, flags, guiflags, def, str, proc)\
+#define SDT_CHR(base, var, flags, guiflags, def, str, proc, from, to)\
 	SDT_GENERAL(#var, SDT_STRING, SL_VAR, SLE_CHAR, flags, guiflags, base, var, 1, def, 0, 0, 0, NULL, str, proc, NULL, from, to)
-#define SDT_CHR(base, var, flags, guiflags, def, str, proc)\
-	SDT_CONDCHR(base, var, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc)
 
-#define SDT_CONDOMANY(base, var, type, from, to, flags, guiflags, def, max, full, str, proc, load)\
+#define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, proc, from, to, load)\
 	SDT_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, max, 0, full, str, proc, load, from, to)
-#define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, proc, load)\
-	SDT_CONDOMANY(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, max, full, str, proc, load)
 
-#define SDT_CONDMMANY(base, var, type, from, to, flags, guiflags, def, full, str, proc)\
+#define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc, from, to)\
 	SDT_GENERAL(#var, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, 0, 0, full, str, proc, NULL, from, to)
-#define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc)\
-	SDT_CONDMMANY(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, full, str, proc)
 
-#define SDT_CONDNULL(length, from, to)\
+#define SDT_NULL(length, from, to)\
 	{{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLE_CONDNULL(length, from, to)}
 
 
-#define SDTC_CONDVAR(var, type, from, to, flags, guiflags, def, min, max, interval, str, proc)\
+#define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, proc, from, to)\
 	SDTG_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, min, max, interval, NULL, str, proc, from, to)
-#define SDTC_VAR(var, type, flags, guiflags, def, min, max, interval, str, proc)\
-	SDTC_CONDVAR(var, type, 0, SL_MAX_VERSION, flags, guiflags, def, min, max, interval, str, proc)
 
-#define SDTC_CONDBOOL(var, from, to, flags, guiflags, def, str, proc)\
+#define SDTC_BOOL(var, flags, guiflags, def, str, proc, from, to)\
 	SDTG_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, _settings_client.var, 1, def, 0, 1, 0, NULL, str, proc, from, to)
-#define SDTC_BOOL(var, flags, guiflags, def, str, proc)\
-	SDTC_CONDBOOL(var, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc)
 
-#define SDTC_CONDLIST(var, type, length, flags, guiflags, def, str, proc, from, to)\
+#define SDTC_LIST(var, type, length, flags, guiflags, def, str, proc, from, to)\
 	SDTG_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, _settings_client.var, length, def, 0, 0, 0, NULL, str, proc, from, to)
-#define SDTC_LIST(var, type, flags, guiflags, def, str, proc)\
-	SDTG_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, proc, 0, SL_MAX_VERSION)
 
-#define SDTC_CONDSTR(var, type, length, flags, guiflags, def, str, proc, from, to)\
-	SDTG_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, _settings_client.var, length, def, 0, 0, 0, NULL, str, proc, from, to)
-#define SDTC_STR(var, type, flags, guiflags, def, str, proc)\
-	SDTG_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, proc, 0, SL_MAX_VERSION)
+#define SDTC_STR(var, type, flags, guiflags, def, str, proc, from, to)\
+	SDTG_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, _settings_client.var, lengthof(_settings_client.var), def, 0, 0, 0, NULL, str, proc, from, to)
 
-#define SDTC_CONDOMANY(var, type, from, to, flags, guiflags, def, max, full, str, proc)\
+#define SDTC_OMANY(var, type, flags, guiflags, def, max, full, str, proc, from, to)\
 	SDTG_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, _settings_client.var, 1, def, 0, max, 0, full, str, proc, from, to)
-#define SDTC_OMANY(var, type, flags, guiflags, def, max, full, str, proc)\
-	SDTC_CONDOMANY(var, type, 0, SL_MAX_VERSION, flags, guiflags, def, max, full, str, proc)
 
 #define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLE_END()}
 
--- a/src/table/settings.ini
+++ b/src/table/settings.ini
@@ -12,21 +12,20 @@
 [post-amble]
 };
 [templates]
-SDTG_CONDBOOL = SDTG_CONDBOOL($name,                          $flags, $guiflags, $var, $def,                        $str, $proc, $from, $to),
-SDTG_CONDVAR  =  SDTG_CONDVAR($name,       $type,             $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc, $from, $to),
-SDTC_BOOL     =     SDTC_BOOL(       $var,                    $flags, $guiflags, $def,                              $str, $proc),
-SDT_BOOL      =      SDT_BOOL($base, $var,                    $flags, $guiflags, $def,                              $str, $proc),
-SDTC_CONDBOOL = SDTC_CONDBOOL(       $var,        $from, $to, $flags, $guiflags, $def,                              $str, $proc),
-SDT_CONDBOOL  =  SDT_CONDBOOL($base, $var,        $from, $to, $flags, $guiflags, $def,                              $str, $proc),
-SDTC_OMANY    =    SDTC_OMANY(       $var, $type,             $flags, $guiflags, $def,             $max, $full,     $str, $proc),
-SDT_CONDOMANY = SDT_CONDOMANY($base, $var, $type, $from, $to, $flags, $guiflags, $def,             $max, $full,     $str, $proc, $load),
-SDT_CONDSTR   =   SDT_CONDSTR($base, $var, $type, $from, $to, $flags, $guiflags, $def,                              $str, $proc),
-SDT_CONDVAR   =   SDT_CONDVAR($base, $var, $type, $from, $to, $flags, $guiflags, $def,       $min, $max, $interval, $str, $proc),
-SDTC_STR      =      SDTC_STR(       $var, $type,             $flags, $guiflags, $def,                              $str, $proc),
-SDTC_VAR      =      SDTC_VAR(       $var, $type,             $flags, $guiflags, $def,       $min, $max, $interval, $str, $proc),
-SDT_VAR       =       SDT_VAR($base, $var, $type,             $flags, $guiflags, $def,       $min, $max, $interval, $str, $proc),
-SDT_CONDNULL  = SDT_CONDNULL($length, $from, $to),
-SDT_END       = SDT_END()
+SDTG_BOOL  =  SDTG_BOOL($name,              $flags, $guiflags, $var, $def,                        $str, $proc, $from, $to),
+SDTG_VAR   =   SDTG_VAR($name,       $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc, $from, $to),
+SDTC_BOOL  =  SDTC_BOOL(       $var,        $flags, $guiflags, $def,                              $str, $proc, $from, $to),
+SDT_BOOL   =   SDT_BOOL($base, $var,        $flags, $guiflags, $def,                              $str, $proc, $from, $to),
+SDTC_DBOOL =  SDTC_BOOL(       $var,        $flags, $guiflags, $def,                              $str, $proc, $from, $to),
+SDT_DBOOL  =   SDT_BOOL($base, $var,        $flags, $guiflags, $def,                              $str, $proc, $from, $to),
+SDTC_OMANY = SDTC_OMANY(       $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $proc, $from, $to),
+SDT_OMANY  =  SDT_OMANY($base, $var, $type, $flags, $guiflags, $def,             $max, $full,     $str, $proc, $from, $to, $load),
+SDT_STR    =    SDT_STR($base, $var, $type, $flags, $guiflags, $def,                              $str, $proc, $from, $to),
+SDTC_STR   =   SDTC_STR(       $var, $type, $flags, $guiflags, $def,                              $str, $proc, $from, $to),
+SDTC_VAR   =   SDTC_VAR(       $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $proc, $from, $to),
+SDT_VAR    =    SDT_VAR($base, $var, $type, $flags, $guiflags, $def,       $min, $max, $interval, $str, $proc, $from, $to),
+SDT_NULL   =   SDT_NULL($length, $from, $to),
+SDT_END    = SDT_END()
 
 [defaults]
 flags    = 0
@@ -42,7 +41,7 @@
 
 ; Saved settings variables.
 ; Do not ADD or REMOVE something in this "difficulty.XXX" table or before it. It breaks savegame compatability.
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.max_no_competitors
 type     = SLE_UINT8
@@ -53,12 +52,12 @@
 interval = 1
 proc     = MaxNoAIsChange
 
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 from     = 97
 to       = 109
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.number_towns
 type     = SLE_UINT8
@@ -71,7 +70,7 @@
 str      = STR_NUM_VERY_LOW
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.industry_density
 type     = SLE_UINT8
@@ -84,7 +83,7 @@
 str      = STR_FUNDING_ONLY
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.max_loan
 type     = SLE_UINT32
@@ -96,7 +95,7 @@
 interval = 50000
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.initial_interest
 type     = SLE_UINT8
@@ -108,7 +107,7 @@
 interval = 1
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.vehicle_costs
 type     = SLE_UINT8
@@ -121,7 +120,7 @@
 str      = STR_SEA_LEVEL_LOW
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.competitor_speed
 type     = SLE_UINT8
@@ -133,12 +132,12 @@
 str      = STR_AI_SPEED_VERY_SLOW
 proc     = DifficultyChange
 
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 from     = 97
 to       = 109
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.vehicle_breakdowns
 type     = SLE_UINT8
@@ -150,7 +149,7 @@
 str      = STR_DISASTER_NONE
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.subsidy_multiplier
 type     = SLE_UINT8
@@ -162,7 +161,7 @@
 str      = STR_SUBSIDY_X1_5
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.construction_cost
 type     = SLE_UINT8
@@ -175,7 +174,7 @@
 str      = STR_SEA_LEVEL_LOW
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.terrain_type
 type     = SLE_UINT8
@@ -188,7 +187,7 @@
 str      = STR_TERRAIN_TYPE_VERY_FLAT
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.quantity_sea_lakes
 type     = SLE_UINT8
@@ -201,7 +200,7 @@
 str      = STR_SEA_LEVEL_VERY_LOW
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.economy
 type     = SLE_UINT8
@@ -213,7 +212,7 @@
 str      = STR_ECONOMY_STEADY
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.line_reverse_mode
 type     = SLE_UINT8
@@ -225,7 +224,7 @@
 str      = STR_REVERSE_AT_END_OF_LINE_AND_AT_STATIONS
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.disasters
 type     = SLE_UINT8
@@ -237,7 +236,7 @@
 str      = STR_DISASTERS_OFF
 proc     = DifficultyChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.town_council_tolerance
 type     = SLE_UINT8
@@ -249,7 +248,7 @@
 str      = STR_CITY_APPROVAL_PERMISSIVE
 proc     = DifficultyNoiseChange
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = difficulty.diff_level
 type     = SLE_UINT8
@@ -261,7 +260,7 @@
 
 ; There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow
 ; these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI.
-[SDT_CONDOMANY]
+[SDT_OMANY]
 base     = GameSettings
 var      = game_creation.town_name
 type     = SLE_UINT8
@@ -271,7 +270,7 @@
 max      = 255
 full     = _town_names
 
-[SDT_CONDOMANY]
+[SDT_OMANY]
 base     = GameSettings
 var      = game_creation.landscape
 type     = SLE_UINT8
@@ -282,7 +281,7 @@
 full     = _climates
 load     = ConvertLandscape
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.snow_line
 type     = SLE_UINT8
@@ -292,7 +291,7 @@
 min      = MIN_SNOWLINE_HEIGHT * TILE_HEIGHT
 max      = MAX_SNOWLINE_HEIGHT * TILE_HEIGHT
 
-[SDT_CONDOMANY]
+[SDT_OMANY]
 base     = GameSettings
 var      = vehicle.road_side
 type     = SLE_UINT8
@@ -312,7 +311,7 @@
 def      = true
 str      = STR_CONFIG_SETTING_BUILDONSLOPES
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.command_pause_level
 type     = SLE_UINT8
@@ -324,7 +323,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.terraform_per_64k_frames
 type     = SLE_UINT32
@@ -334,7 +333,7 @@
 max      = 1 << 30
 interval = 1
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.terraform_frame_burst
 type     = SLE_UINT16
@@ -344,7 +343,7 @@
 max      = 1 << 30
 interval = 1
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.clear_per_64k_frames
 type     = SLE_UINT32
@@ -354,7 +353,7 @@
 max      = 1 << 30
 interval = 1
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.clear_frame_burst
 type     = SLE_UINT16
@@ -364,7 +363,7 @@
 max      = 1 << 30
 interval = 1
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = construction.autoslope
 from     = 75
@@ -377,7 +376,7 @@
 def      = true
 str      = STR_CONFIG_SETTING_EXTRADYNAMITE
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.max_bridge_length
 type     = SLE_UINT16
@@ -389,7 +388,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.max_tunnel_length
 type     = SLE_UINT16
@@ -402,7 +401,7 @@
 str      = STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH
 
 # construction.longbridges
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 158
 
@@ -422,7 +421,7 @@
 def      = false
 str      = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.town_layout
 type     = SLE_UINT8
@@ -435,7 +434,7 @@
 str      = STR_CONFIG_SETTING_TOWN_LAYOUT
 proc     = TownFoundingChanged
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.allow_town_roads
 from     = 113
@@ -443,7 +442,7 @@
 def      = true
 str      = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.found_town
 type     = SLE_UINT8
@@ -456,7 +455,7 @@
 str      = STR_CONFIG_SETTING_TOWN_FOUNDING
 proc     = TownFoundingChanged
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.allow_town_level_crossings
 from     = 143
@@ -478,7 +477,7 @@
 str      = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL
 proc     = TrainAccelerationModelChanged
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.roadveh_acceleration_model
 type     = SLE_UINT8
@@ -491,7 +490,7 @@
 str      = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL
 proc     = RoadVehAccelerationModelChanged
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.train_slope_steepness
 type     = SLE_UINT8
@@ -503,7 +502,7 @@
 str      = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS
 proc     = TrainSlopeSteepnessChanged
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.roadveh_slope_steepness
 type     = SLE_UINT8
@@ -521,7 +520,7 @@
 def      = false
 str      = STR_CONFIG_SETTING_FORBID_90_DEG
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.max_train_length
 type     = SLE_UINT8
@@ -533,11 +532,11 @@
 str      = STR_CONFIG_SETTING_TRAIN_LENGTH
 
 ; vehicle.mammoth_trains
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 158
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.smoke_amount
 type     = SLE_UINT8
@@ -549,7 +548,7 @@
 str      = STR_CONFIG_SETTING_SMOKE_AMOUNT
 
 ; order.gotodepot
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 158
 
@@ -561,27 +560,27 @@
 def      = true
 str      = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.new_pathfinding_all
 to       = 86
 def      = false
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.yapf.ship_use_yapf
 from     = 28
 to       = 86
 def      = false
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.yapf.road_use_yapf
 from     = 28
 to       = 86
 def      = true
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.yapf.rail_use_yapf
 from     = 28
@@ -589,7 +588,7 @@
 def      = true
 
 ##
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.pathfinder_for_trains
 type     = SLE_UINT8
@@ -601,7 +600,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.pathfinder_for_roadvehs
 type     = SLE_UINT8
@@ -613,7 +612,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.pathfinder_for_ships
 type     = SLE_UINT8
@@ -672,14 +671,14 @@
 str      = STR_CONFIG_SETTING_MAX_SHIPS
 proc     = RedrawScreen
 
-[SDTG_CONDBOOL]
+[SDTG_BOOL]
 name     = NULL
 guiflags = NN
 var      = _old_vds.servint_ispercent
 def      = false
 to       = 119
 
-[SDTG_CONDVAR]
+[SDTG_VAR]
 name     = NULL
 type     = SLE_UINT16
 guiflags = D0
@@ -689,7 +688,7 @@
 max      = 800
 to       = 119
 
-[SDTG_CONDVAR]
+[SDTG_VAR]
 name     = NULL
 type     = SLE_UINT16
 guiflags = D0
@@ -699,7 +698,7 @@
 max      = 800
 to       = 119
 
-[SDTG_CONDVAR]
+[SDTG_VAR]
 name     = NULL
 type     = SLE_UINT16
 guiflags = D0
@@ -709,7 +708,7 @@
 max      = 800
 to       = 119
 
-[SDTG_CONDVAR]
+[SDTG_VAR]
 name     = NULL
 type     = SLE_UINT16
 guiflags = D0
@@ -733,7 +732,7 @@
 str      = STR_CONFIG_SETTING_WAGONSPEEDLIMITS
 proc     = UpdateConsists
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = vehicle.disable_elrails
 from     = 38
@@ -742,7 +741,7 @@
 str      = STR_CONFIG_SETTING_DISABLE_ELRAILS
 proc     = SettingsDisableElrail
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.freight_trains
 type     = SLE_UINT8
@@ -756,12 +755,12 @@
 proc     = UpdateConsists
 
 ; order.timetabling
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 from     = 67
 to       = 158
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.plane_speed
 type     = SLE_UINT8
@@ -772,7 +771,7 @@
 max      = 4
 str      = STR_CONFIG_SETTING_PLANE_SPEED
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = vehicle.dynamic_engines
 from     = 95
@@ -781,7 +780,7 @@
 str      = STR_CONFIG_SETTING_DYNAMIC_ENGINES
 proc     = ChangeDynamicEngines
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = vehicle.plane_crashes
 type     = SLE_UINT8
@@ -794,11 +793,11 @@
 str      = STR_CONFIG_SETTING_PLANE_CRASHES
 
 ; station.join_stations
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 158
 
-[SDTC_CONDBOOL]
+[SDTC_BOOL]
 var      = gui.sg_full_load_any
 from     = 22
 to       = 92
@@ -817,14 +816,14 @@
 def      = true
 str      = STR_CONFIG_SETTING_SELECTGOODS
 
-[SDTC_CONDBOOL]
+[SDTC_BOOL]
 var      = gui.sg_new_nonstop
 from     = 22
 to       = 92
 def      = false
 
 ; station.nonuniform_stations
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 158
 
@@ -851,7 +850,7 @@
 str      = STR_CONFIG_SETTING_CATCHMENT
 proc     = StationCatchmentChanged
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = order.gradual_loading
 from     = 40
@@ -859,28 +858,28 @@
 def      = true
 str      = STR_CONFIG_SETTING_GRADUAL_LOADING
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = construction.road_stop_on_town_road
 from     = 47
 def      = true
 str      = STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = construction.road_stop_on_competitor_road
 from     = 114
 def      = true
 str      = STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = station.adjacent_stations
 from     = 62
 def      = true
 str      = STR_CONFIG_SETTING_ADJACENT_STATIONS
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.station_noise_level
 from     = 96
@@ -889,7 +888,7 @@
 str      = STR_CONFIG_SETTING_NOISE_LEVEL
 proc     = InvalidateTownViewWindow
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = station.distant_join_stations
 from     = 106
@@ -915,7 +914,7 @@
 str      = STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD
 proc     = InvalidateBuildIndustryWindow
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.industry_platform
 type     = SLE_UINT8
@@ -931,7 +930,7 @@
 def      = false
 str      = STR_CONFIG_SETTING_MULTIPINDTOWN
 
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 140
 
@@ -942,7 +941,7 @@
 str      = STR_CONFIG_SETTING_BRIBE
 proc     = RedrawTownAuthority
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.exclusive_rights
 from     = 79
@@ -950,7 +949,7 @@
 str      = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE
 proc     = RedrawTownAuthority
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.fund_roads
 from     = 160
@@ -958,7 +957,7 @@
 str      = STR_CONFIG_SETTING_ALLOW_FUND_ROAD
 proc     = RedrawTownAuthority
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.give_money
 from     = 79
@@ -974,7 +973,7 @@
 max      = MAX_SNOWLINE_HEIGHT
 str      = STR_CONFIG_SETTING_SNOWLINE_HEIGHT
 
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 4
 to       = 143
 
@@ -989,7 +988,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_STARTING_YEAR
 
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 4
 to       = 104
 
@@ -1006,7 +1005,7 @@
 def      = false
 str      = STR_CONFIG_SETTING_ALLOW_SHARES
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.feeder_payment_share
 type     = SLE_UINT8
@@ -1016,7 +1015,7 @@
 max      = 100
 str      = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.town_growth_rate
 type     = SLE_UINT8
@@ -1027,7 +1026,7 @@
 max      = 4
 str      = STR_CONFIG_SETTING_TOWN_GROWTH
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.larger_towns
 type     = SLE_UINT8
@@ -1039,7 +1038,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_LARGER_TOWNS
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.initial_city_size
 type     = SLE_UINT8
@@ -1050,7 +1049,7 @@
 interval = 1
 str      = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = economy.mod_road_rebuild
 from     = 77
@@ -1058,7 +1057,7 @@
 str      = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD
 
 ; previously ai-new setting.
-[SDT_CONDNULL]
+[SDT_NULL]
 length   = 1
 to       = 106
 
@@ -1092,7 +1091,7 @@
 def      = false
 str      = STR_CONFIG_SETTING_AI_BUILDS_SHIPS
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = ai.ai_max_opcode_till_suspend
 type     = SLE_UINT32
@@ -1121,7 +1120,7 @@
 min      = 5
 max      = 60
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.reverse_at_signals
 from     = 159
@@ -1144,7 +1143,7 @@
 min      = 2
 max      = 255
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.town_noise_population[0]
 type     = SLE_UINT16
@@ -1153,7 +1152,7 @@
 min      = 200
 max      = 65535
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.town_noise_population[1]
 type     = SLE_UINT16
@@ -1162,7 +1161,7 @@
 min      = 400
 max      = 65535
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = economy.town_noise_population[2]
 type     = SLE_UINT16
@@ -1172,7 +1171,7 @@
 max      = 65535
 
 ##
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.wait_for_pbs_path
 type     = SLE_UINT8
@@ -1181,13 +1180,13 @@
 min      = 2
 max      = 255
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.reserve_paths
 from     = 100
 def      = false
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.path_backoff_interval
 type     = SLE_UINT8
@@ -1278,7 +1277,7 @@
 min      = 0
 max      = 100000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.npf.npf_rail_pbs_cross_penalty
 type     = SLE_UINT
@@ -1287,7 +1286,7 @@
 min      = 0
 max      = 100000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.npf.npf_rail_pbs_signal_back_penalty
 type     = SLE_UINT
@@ -1328,7 +1327,7 @@
 min      = 0
 max      = 100000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.npf.npf_road_drive_through_penalty
 type     = SLE_UINT
@@ -1337,7 +1336,7 @@
 min      = 0
 max      = 100000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.npf.npf_road_dt_occupied_penalty
 type     = SLE_UINT
@@ -1346,7 +1345,7 @@
 min      = 0
 max      = 100000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.npf.npf_road_bay_occupied_penalty
 type     = SLE_UINT
@@ -1355,7 +1354,7 @@
 min      = 0
 max      = 100000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.npf.maximum_go_to_depot_penalty
 type     = SLE_UINT
@@ -1365,13 +1364,13 @@
 max      = 1000000
 
 ##
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.yapf.disable_node_optimization
 from     = 28
 def      = false
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.max_search_nodes
 type     = SLE_UINT
@@ -1380,13 +1379,13 @@
 min      = 500
 max      = 1000000
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = pf.yapf.rail_firstred_twoway_eol
 from     = 28
 def      = false
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_firstred_penalty
 type     = SLE_UINT
@@ -1395,7 +1394,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_firstred_exit_penalty
 type     = SLE_UINT
@@ -1404,7 +1403,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_lastred_penalty
 type     = SLE_UINT
@@ -1413,7 +1412,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_lastred_exit_penalty
 type     = SLE_UINT
@@ -1422,7 +1421,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_station_penalty
 type     = SLE_UINT
@@ -1431,7 +1430,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_slope_penalty
 type     = SLE_UINT
@@ -1440,7 +1439,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_curve45_penalty
 type     = SLE_UINT
@@ -1449,7 +1448,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_curve90_penalty
 type     = SLE_UINT
@@ -1458,7 +1457,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_depot_reverse_penalty
 type     = SLE_UINT
@@ -1467,7 +1466,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_crossing_penalty
 type     = SLE_UINT
@@ -1476,7 +1475,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_look_ahead_max_signals
 type     = SLE_UINT
@@ -1485,7 +1484,7 @@
 min      = 1
 max      = 100
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_look_ahead_signal_p0
 type     = SLE_INT
@@ -1494,7 +1493,7 @@
 min      = -1000000
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_look_ahead_signal_p1
 type     = SLE_INT
@@ -1503,7 +1502,7 @@
 min      = -1000000
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_look_ahead_signal_p2
 type     = SLE_INT
@@ -1512,7 +1511,7 @@
 min      = -1000000
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_pbs_cross_penalty
 type     = SLE_UINT
@@ -1521,7 +1520,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_pbs_station_penalty
 type     = SLE_UINT
@@ -1530,7 +1529,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_pbs_signal_back_penalty
 type     = SLE_UINT
@@ -1539,7 +1538,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_doubleslip_penalty
 type     = SLE_UINT
@@ -1548,7 +1547,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_longer_platform_penalty
 type     = SLE_UINT
@@ -1557,7 +1556,7 @@
 min      = 0
 max      = 20000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_longer_platform_per_tile_penalty
 type     = SLE_UINT
@@ -1566,7 +1565,7 @@
 min      = 0
 max      = 20000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_shorter_platform_penalty
 type     = SLE_UINT
@@ -1575,7 +1574,7 @@
 min      = 0
 max      = 20000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.rail_shorter_platform_per_tile_penalty
 type     = SLE_UINT
@@ -1584,7 +1583,7 @@
 min      = 0
 max      = 20000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.road_slope_penalty
 type     = SLE_UINT
@@ -1593,7 +1592,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.road_curve_penalty
 type     = SLE_UINT
@@ -1602,7 +1601,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.road_crossing_penalty
 type     = SLE_UINT
@@ -1611,7 +1610,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.road_stop_penalty
 type     = SLE_UINT
@@ -1620,7 +1619,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.road_stop_occupied_penalty
 type     = SLE_UINT
@@ -1629,7 +1628,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.road_stop_bay_occupied_penalty
 type     = SLE_UINT
@@ -1638,7 +1637,7 @@
 min      = 0
 max      = 1000000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = pf.yapf.maximum_go_to_depot_penalty
 type     = SLE_UINT
@@ -1648,7 +1647,7 @@
 max      = 1000000
 
 ##
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.land_generator
 type     = SLE_UINT8
@@ -1659,7 +1658,7 @@
 max      = 1
 str      = STR_CONFIG_SETTING_LAND_GENERATOR
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.oil_refinery_limit
 type     = SLE_UINT8
@@ -1669,7 +1668,7 @@
 max      = 48
 str      = STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.tgen_smoothness
 type     = SLE_UINT8
@@ -1689,7 +1688,7 @@
 min      = 0
 max      = 5
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.generation_seed
 type     = SLE_UINT32
@@ -1698,7 +1697,7 @@
 min      = 0
 max      = UINT32_MAX
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.tree_placer
 type     = SLE_UINT8
@@ -1749,7 +1748,7 @@
 min      = MIN_MAP_SIZE_BITS
 max      = MAX_MAP_SIZE_BITS
 
-[SDT_CONDBOOL]
+[SDT_BOOL]
 base     = GameSettings
 var      = construction.freeform_edges
 from     = 111
@@ -1757,7 +1756,7 @@
 str      = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES
 proc     = CheckFreeformEdges
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.water_borders
 type     = SLE_UINT8
@@ -1766,7 +1765,7 @@
 min      = 0
 max      = 16
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.custom_town_number
 type     = SLE_UINT16
@@ -1775,7 +1774,7 @@
 min      = 1
 max      = 5000
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = construction.extra_tree_placement
 type     = SLE_UINT8
@@ -1786,7 +1785,7 @@
 max      = 2
 str      = STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT
 
-[SDT_CONDVAR]
+[SDT_VAR]
 base     = GameSettings
 var      = game_creation.custom_sea_level
 type     = SLE_UINT8
@@ -1797,7 +1796,7 @@
 
 ; locale
 
-[SDT_CONDOMANY]
+[SDT_OMANY]
 base     = GameSettings
 var      = locale.currency
 type     = SLE_UINT8
@@ -1808,7 +1807,7 @@
 full     = _locale_currencies
 proc     = RedrawScreen
 
-[SDT_CONDOMANY]
+[SDT_OMANY]
 base     = GameSettings
 var      = locale.units
 type     = SLE_UINT8
@@ -1819,7 +1818,7 @@
 full     = _locale_units
 proc     = RedrawScreen
 
-[SDT_CONDSTR]
+[SDT_STR]
 base     = GameSettings
 var      = locale.digit_group_separator
 type     = SLE_STRQ
@@ -1828,7 +1827,7 @@
 def      = NULL
 proc     = RedrawScreen
 
-[SDT_CONDSTR]
+[SDT_STR]
 base     = GameSettings
 var      = locale.digit_group_separator_currency
 type     = SLE_STRQ
@@ -1837,7 +1836,7 @@
 def      = NULL
 proc     = RedrawScreen
 
-[SDT_CONDSTR]
+[SDT_STR]
 base     = GameSettings
 var      = locale.digit_decimal_separator
 type     = SLE_STRQ
--- a/src/table/win32_settings.ini
+++ b/src/table/win32_settings.ini
@@ -9,8 +9,8 @@
 };
 #endif /* WIN32 */
 [templates]
-SDTG_BOOL = SDTG_BOOL($name,        $flags, $guiflags, $var, $def,                        $str, $proc),
-SDTG_VAR  =  SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc),
+SDTG_BOOL = SDTG_BOOL($name,        $flags, $guiflags, $var, $def,                        $str, $proc, $from, $to),
+SDTG_VAR  =  SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $proc, $from, $to),
 SDTG_END  = SDTG_END()
 
 [defaults]