summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-04-20 11:40:33 +0000
committerrubidium <rubidium@openttd.org>2008-04-20 11:40:33 +0000
commit650651064b5f585a876170f0ba9e4b613f0d5fd6 (patch)
tree27579cb47236c22150f5e4f424fdeef6366666b1 /src/settings.cpp
parent8186344628fb4d1c76c7e6d9994d1f18277a2412 (diff)
downloadopenttd-650651064b5f585a876170f0ba9e4b613f0d5fd6.tar.xz
(svn r12805) -Codechange: remove some bit magic related to the news display states. Patch by cirdan.
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 322b4014b..bd75029af 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -1654,15 +1654,13 @@ static const SettingDesc _currency_settings[] = {
#undef NO
#undef CR
-static uint NewsDisplayLoadConfig(IniFile *ini, const char *grpname)
+static void NewsDisplayLoadConfig(IniFile *ini, const char *grpname)
{
IniGroup *group = ini_getgroup(ini, grpname, -1);
IniItem *item;
- /* By default, set everything to full (0xAAAAAAAA = 1010101010101010) */
- uint res = 0xAAAAAAAA;
- /* If no group exists, return everything full */
- if (group == NULL) return res;
+ /* If no group exists, return */
+ if (group == NULL) return;
for (item = group->item; item != NULL; item = item->next) {
int news_item = -1;
@@ -1678,18 +1676,16 @@ static uint NewsDisplayLoadConfig(IniFile *ini, const char *grpname)
}
if (strcasecmp(item->value, "full") == 0) {
- SB(res, news_item * 2, 2, 2);
+ _news_type_data[news_item].display = ND_FULL;
} else if (strcasecmp(item->value, "off") == 0) {
- SB(res, news_item * 2, 2, 0);
+ _news_type_data[news_item].display = ND_OFF;
} else if (strcasecmp(item->value, "summarized") == 0) {
- SB(res, news_item * 2, 2, 1);
+ _news_type_data[news_item].display = ND_SUMMARY;
} else {
DEBUG(misc, 0, "Invalid display value: %s", item->value);
continue;
}
}
-
- return res;
}
/* Load a GRF configuration from the given group name */
@@ -1745,7 +1741,7 @@ static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_stati
return first;
}
-static void NewsDisplaySaveConfig(IniFile *ini, const char *grpname, uint news_display)
+static void NewsDisplaySaveConfig(IniFile *ini, const char *grpname)
{
IniGroup *group = ini_getgroup(ini, grpname, -1);
IniItem **item;
@@ -1756,9 +1752,9 @@ static void NewsDisplaySaveConfig(IniFile *ini, const char *grpname, uint news_d
for (int i = 0; i < NT_END; i++) {
const char *value;
- int v = GB(news_display, i * 2, 2);
+ int v = _news_type_data[i].display;
- value = (v == 0 ? "off" : (v == 1 ? "summarized" : "full"));
+ value = (v == ND_OFF ? "off" : (v == ND_SUMMARY ? "summarized" : "full"));
*item = ini_item_alloc(group, _news_type_data[i].name, strlen(_news_type_data[i].name));
(*item)->value = (char*)pool_strdup(&ini->pool, value, strlen(value));
@@ -1847,7 +1843,7 @@ void LoadFromConfig()
HandleSettingDescs(ini, ini_load_settings, ini_load_setting_list);
_grfconfig_newgame = GRFLoadConfig(ini, "newgrf", false);
_grfconfig_static = GRFLoadConfig(ini, "newgrf-static", true);
- _news_display_opt = NewsDisplayLoadConfig(ini, "news_display");
+ NewsDisplayLoadConfig(ini, "news_display");
CheckDifficultyLevels();
ini_free(ini);
}
@@ -1859,7 +1855,7 @@ void SaveToConfig()
HandleSettingDescs(ini, ini_save_settings, ini_save_setting_list);
GRFSaveConfig(ini, "newgrf", _grfconfig_newgame);
GRFSaveConfig(ini, "newgrf-static", _grfconfig_static);
- NewsDisplaySaveConfig(ini, "news_display", _news_display_opt);
+ NewsDisplaySaveConfig(ini, "news_display");
SaveVersionInConfig(ini);
ini_save(_config_file, ini);
ini_free(ini);