diff --git a/src/lang/english.txt b/src/lang/english.txt index 53a489d..874c2dc 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -734,6 +734,7 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Message STR_NEWS_MESSAGE_OPTIONS_CAPTION :{WHITE}Message Options STR_NEWS_MESSAGES_ALL :{YELLOW}Set all message types to: Off / Summary/ Full STR_NEWS_MESSAGES_SOUND :{YELLOW}Play sound for summarised news messages +STR_NEWS_MESSAGES_SOUND_NEW :Play sound for summarised news messages: {STRING2} STR_NEWS_MESSAGES_OFF :Off STR_NEWS_MESSAGES_SUMMARY :Summary STR_NEWS_MESSAGES_FULL :Full @@ -754,6 +755,22 @@ STR_NEWS_MESSAGE_TYPE_NEW_VEHICLES :{YELLOW}New veh STR_NEWS_MESSAGE_TYPE_CHANGES_OF_CARGO_ACCEPTANCE :{YELLOW}Changes to cargo acceptance STR_NEWS_MESSAGE_TYPE_SUBSIDIES :{YELLOW}Subsidies STR_NEWS_MESSAGE_TYPE_GENERAL_INFORMATION :{YELLOW}General information +# new messages - ER TODO - to be cleaned up in language-related patch +STR_NEWS_MESSAGE_TYPE_ARRIVAL_OF_FIRST_VEHICLE_OWN_NEW :Show arrival of first vehicle at player's station: {STRING2} +STR_NEWS_MESSAGE_TYPE_ARRIVAL_OF_FIRST_VEHICLE_OTHER_NEW :Show arrival of first vehicle at competitor's station: {STRING2} +STR_NEWS_MESSAGE_TYPE_ACCIDENTS_DISASTERS_NEW :Show accidents / disasters: {STRING2} +STR_NEWS_MESSAGE_TYPE_COMPANY_INFORMATION_NEW :Show company information: {STRING2} +STR_NEWS_MESSAGE_TYPE_INDUSTRY_OPEN_NEW :Show opening of industries: {STRING2} +STR_NEWS_MESSAGE_TYPE_INDUSTRY_CLOSE_NEW :Show closing of industries: {STRING2} +STR_NEWS_MESSAGE_TYPE_ECONOMY_CHANGES_NEW :Show economy changes: {STRING2} +STR_NEWS_MESSAGE_TYPE_INDUSTRY_CHANGES_SERVED_BY_COMPANY_NEW :Show production changes of industries served by the company: {STRING2} +STR_NEWS_MESSAGE_TYPE_INDUSTRY_CHANGES_SERVED_BY_OTHER_NEW :Show production changes of industries served by competitor(s): {STRING2} +STR_NEWS_MESSAGE_TYPE_INDUSTRY_CHANGES_UNSERVED_NEW :Show other industry production changes: {STRING2} +STR_NEWS_MESSAGE_TYPE_ADVICE_INFORMATION_ON_COMPANY_NEW :Show advice / information on company's vehicles: {STRING2} +STR_NEWS_MESSAGE_TYPE_NEW_VEHICLES_NEW :Show new vehicles: {STRING2} +STR_NEWS_MESSAGE_TYPE_CHANGES_OF_CARGO_ACCEPTANCE_NEW :Show changes to cargo acceptance: {STRING2} +STR_NEWS_MESSAGE_TYPE_SUBSIDIES_NEW :Show subsidies: {STRING2} +STR_NEWS_MESSAGE_TYPE_GENERAL_INFORMATION_NEW :Show general information: {STRING2} STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLACK}{RAW_STRING} @@ -1525,6 +1542,7 @@ STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economy STR_CONFIG_SETTING_AI :{ORANGE}Competitors STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Display options STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaction +STR_CONFIG_SETTING_NEWS_OPTIONS :{ORANGE}News STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signals STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Cargo handling STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players diff --git a/src/settings.cpp b/src/settings.cpp index e9f190e..a2eee6d 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1167,7 +1167,6 @@ static bool StationCatchmentChanged(int32 p1) return true; } - #ifdef ENABLE_NETWORK static bool UpdateClientName(int32 p1) @@ -1277,6 +1276,9 @@ static bool ConvertOldNewsSetting(const char *name, const char *value) */ static void NewsDisplayLoadConfig(IniFile *ini, const char *grpname) { + + // TODO ER CLEANUP REQUIRED + IniGroup *group = ini->GetGroup(grpname); IniItem *item; @@ -1562,6 +1564,7 @@ static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescP proc(ini, _settings, "patches", &_settings_newgame); proc(ini, _currency_settings,"currency", &_custom_currency); proc(ini, _company_settings, "company", &_settings_client.company); + proc(ini, _news_settings, "news_display", NULL); #ifdef ENABLE_NETWORK proc_list(ini, "server_bind_addresses", &_network_bind_list); diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 7a9d791..ce93550 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1455,6 +1455,7 @@ static SettingEntry _settings_ui_interaction[] = { SettingEntry("gui.right_mouse_btn_emulation"), #endif }; + /** Interaction sub-page */ static SettingsPage _settings_ui_interaction_page = {_settings_ui_interaction, lengthof(_settings_ui_interaction)}; diff --git a/src/settings_type.h b/src/settings_type.h index b182191..6f706a8 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -182,6 +182,26 @@ struct LocaleSettings { char *digit_decimal_separator; ///< decimal separator }; +/** Settings related to news */ +struct NewsSettings { + uint8 arrival_player; ///< NewsDisplay of vehicles arriving at new stations of current player + uint8 arrival_other; ///< NewsDisplay of vehicles arriving at new stations of other players + uint8 accident; ///< NewsDisplay of accidents that occur + uint8 company_info; ///< NewsDisplay of general company information + uint8 open; ///< NewsDisplay on new industry constructions + uint8 close; ///< NewsDisplay about closing industries + uint8 economy; ///< NewsDisplay on economical changes + uint8 production_player; ///< NewsDisplay of production changes of industries affecting current player + uint8 production_other; ///< NewsDisplay of production changes of industries affecting competitors + uint8 production_nobody; ///< NewsDisplay of production changes of industries affecting no one + uint8 advice; ///< NewsDisplay on advice affecting the player's vehicles + uint8 new_vehicles; ///< NewsDisplay of new vehicles becoming available + uint8 acceptance; ///< NewsDisplay on changes affecting the acceptance of cargo at stations + uint8 subsidies; ///< NewsDisplay of changes on subsidies + uint8 general; ///< NewsDisplay of other topics + bool sound_for_summarized_messages; ///< Indicates if a sound shall be played on news +}; + /** All settings related to the network. */ struct NetworkSettings { #ifdef ENABLE_NETWORK @@ -496,6 +516,7 @@ struct ClientSettings { NetworkSettings network; ///< settings related to the network CompanySettings company; ///< default values for per-company settings MusicSettings music; ///< settings related to music/sound + NewsSettings news; ///< settings related to news }; /** The current settings for this game. */ diff --git a/src/table/news_settings.ini b/src/table/news_settings.ini new file mode 100644 index 0000000..cd66da0 --- /dev/null +++ b/src/table/news_settings.ini @@ -0,0 +1,185 @@ +; $Id$ +; +; This file is part of OpenTTD. +; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . +; + +[pre-amble] + +static const char *_news_display_values = "off|summarized|full"; + +const SettingDesc _news_settings[] = { + +[post-amble] +}; + +[templates] +SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_STR = SDTG_STR($name, $type, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_END = SDTG_END() + +[defaults] +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +interval = 0 +str = STR_NULL +strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT +strval = STR_NEWS_MESSAGES_OFF +proc = NULL +load = NULL +min = 0 +max = 2 +from = 0 +to = SL_MAX_VERSION +cat = SC_ADVANCED + +[SDTG_OMANY] +name = ""news_display.arrival_player"" +var = _settings_client.news.arrival_player +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_ARRIVAL_OF_FIRST_VEHICLE_OWN_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.arrival_other"" +var = _settings_client.news.arrival_other +type = SLE_UINT8 +def = 1 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_ARRIVAL_OF_FIRST_VEHICLE_OTHER_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.accident"" +var = _settings_client.news.accident +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_ACCIDENTS_DISASTERS_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.company_info"" +var = _settings_client.news.company_info +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_COMPANY_INFORMATION_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.open"" +var = _settings_client.news.open +type = SLE_UINT8 +def = 1 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_INDUSTRY_OPEN_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.close"" +var = _settings_client.news.close +type = SLE_UINT8 +def = 1 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_INDUSTRY_CLOSE_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.economy"" +var = _settings_client.news.economy +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_ECONOMY_CHANGES_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.production_player"" +var = _settings_client.news.production_player +type = SLE_UINT8 +def = 1 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_INDUSTRY_CHANGES_SERVED_BY_COMPANY_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.production_other"" +var = _settings_client.news.production_other +type = SLE_UINT8 +def = 0 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_INDUSTRY_CHANGES_SERVED_BY_OTHER_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.production_nobody"" +var = _settings_client.news.production_nobody +type = SLE_UINT8 +def = 0 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_INDUSTRY_CHANGES_UNSERVED_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.advice"" +var = _settings_client.news.advice +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_ADVICE_INFORMATION_ON_COMPANY_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.new_vehicles"" +var = _settings_client.news.new_vehicles +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_NEW_VEHICLES_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.acceptance"" +var = _settings_client.news.acceptance +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_CHANGES_OF_CARGO_ACCEPTANCE_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.subsidies"" +var = _settings_client.news.subsidies +type = SLE_UINT8 +def = 1 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_SUBSIDIES_NEW +load = ConvertNewsOption + +[SDTG_OMANY] +name = ""news_display.general"" +var = _settings_client.news.general +type = SLE_UINT8 +def = 2 +full = _news_display_values +str = STR_NEWS_MESSAGE_TYPE_GENERAL_INFORMATION_NEW +load = ConvertNewsOption + +[SDTG_BOOL] +name = ""misc.news_ticker_sound"" +var = _settings_client.news.sound_for_summarized_messages +def = 0 +str = STR_NEWS_MESSAGES_SOUND_NEW +guiflags = 0 +strval = STR_NULL +max = 1 + +[SDTG_END] +