summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium42 <rubidium@openttd.org>2021-04-27 18:14:44 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-04-27 19:41:51 +0200
commitb54d8a49fb8d635545b2251bfdf41ebee60edc0c (patch)
treefee346a620a7b5f3c590459eac8cf806c090b0d3
parent4880ec29e4649655e775c36cd6bd8c0927d13ee1 (diff)
downloadopenttd-b54d8a49fb8d635545b2251bfdf41ebee60edc0c.tar.xz
Feature: allow non-ASCII currency separators
-rw-r--r--src/settings.cpp3
-rw-r--r--src/settings_gui.cpp6
-rw-r--r--src/table/currency_settings.ini4
-rw-r--r--src/table/settings.h.preamble3
4 files changed, 5 insertions, 11 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index fdb26368c..4a04784bc 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -563,8 +563,6 @@ static void IniLoadSettings(IniFile *ini, const SettingDesc *sd, const char *grp
*(char**)ptr = p == nullptr ? nullptr : stredup((const char*)p);
break;
- case SLE_VAR_CHAR: if (p != nullptr) *(char *)ptr = *(const char *)p; break;
-
default: NOT_REACHED();
}
break;
@@ -716,7 +714,6 @@ static void IniSaveSettings(IniFile *ini, const SettingDesc *sd, const char *grp
}
break;
- case SLE_VAR_CHAR: buf[0] = *(char*)ptr; buf[1] = '\0'; break;
default: NOT_REACHED();
}
break;
diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp
index f5872c648..52d900e6e 100644
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -2676,7 +2676,7 @@ struct CustomCurrencyWindow : Window {
case WID_CC_SEPARATOR:
SetDParamStr(0, _custom_currency.separator);
str = STR_JUST_RAW_STRING;
- len = 1;
+ len = sizeof(_custom_currency.separator) - 1; // Number of characters excluding '\0' termination
line = WID_CC_SEPARATOR;
break;
@@ -2684,7 +2684,7 @@ struct CustomCurrencyWindow : Window {
case WID_CC_PREFIX:
SetDParamStr(0, _custom_currency.prefix);
str = STR_JUST_RAW_STRING;
- len = 12;
+ len = sizeof(_custom_currency.prefix) - 1; // Number of characters excluding '\0' termination
line = WID_CC_PREFIX;
break;
@@ -2692,7 +2692,7 @@ struct CustomCurrencyWindow : Window {
case WID_CC_SUFFIX:
SetDParamStr(0, _custom_currency.suffix);
str = STR_JUST_RAW_STRING;
- len = 12;
+ len = sizeof(_custom_currency.suffix) - 1; // Number of characters excluding '\0' termination
line = WID_CC_SUFFIX;
break;
diff --git a/src/table/currency_settings.ini b/src/table/currency_settings.ini
index c242c83a8..3e51d0240 100644
--- a/src/table/currency_settings.ini
+++ b/src/table/currency_settings.ini
@@ -10,7 +10,6 @@ static const SettingDesc _currency_settings[] = {
};
[templates]
SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extra, $startup),
-SDT_CHR = SDT_CHR($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extra, $startup),
SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extra, $startup),
SDT_END = SDT_END()
@@ -42,9 +41,10 @@ def = 1
min = 0
max = UINT16_MAX
-[SDT_CHR]
+[SDT_STR]
base = CurrencySpec
var = separator
+type = SLE_STRBQ
def = "".""
cat = SC_BASIC
diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble
index d7084d724..c3e0678b7 100644
--- a/src/table/settings.h.preamble
+++ b/src/table/settings.h.preamble
@@ -107,9 +107,6 @@ static size_t ConvertLandscape(const char *value);
#define SDT_STR(base, var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat, extra, startup)\
SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, base, var, sizeof(((base*)8)->var), def, 0, 0, 0, nullptr, str, strhelp, strval, proc, nullptr, from, to, cat, extra, startup)
-#define SDT_CHR(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat, extra, startup)\
- SDT_GENERAL(#var, SDT_STRING, SL_VAR, SLE_CHAR, flags, guiflags, base, var, 1, def, 0, 0, 0, nullptr, str, strhelp, strval, proc, nullptr, from, to, cat, extra, startup)
-
#define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to, load, cat, extra, startup)\
SDT_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, load, from, to, cat, extra, startup)