summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-06-04 09:28:38 +0200
committerPatric Stout <github@truebrain.nl>2021-06-06 21:45:01 +0200
commit414e12d26be88043000aa7fe540edc974244dcc8 (patch)
tree0b77f714795982ffc0c8cab3d369e3a8778fb5c1 /src/settings.cpp
parent7572603c9d97215afe62cd79e25048237a637616 (diff)
downloadopenttd-414e12d26be88043000aa7fe540edc974244dcc8.tar.xz
Codechange: move SLF_NOT_IN_SAVE into settings
It is a settings-only flag, so don't pollute SaveLoad code with it.
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 60ae20d82..93caff15d 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -2023,6 +2023,8 @@ void IConsoleListSettings(const char *prefilter)
static void LoadSettings(const SettingTable &settings, void *object)
{
for (auto &osd : settings) {
+ if (osd->save.conv & SLF_NOT_IN_SAVE) continue;
+
void *ptr = GetVariableAddress(object, osd->save);
if (!SlObjectMember(ptr, osd->save)) continue;
@@ -2045,11 +2047,15 @@ static void SaveSettings(const SettingTable &settings, void *object)
* SlCalcLength() because we have a different format. So do this manually */
size_t length = 0;
for (auto &sd : settings) {
+ if (sd->save.conv & SLF_NOT_IN_SAVE) continue;
+
length += SlCalcObjMemberLength(object, sd->save);
}
SlSetLength(length);
for (auto &sd : settings) {
+ if (sd->save.conv & SLF_NOT_IN_SAVE) continue;
+
void *ptr = GetVariableAddress(object, sd->save);
SlObjectMember(ptr, sd->save);
}