# HG changeset patch # User belugas # Date 1217382783 0 # Node ID 9cf125da8789886ef4a1c6b04bd6a3bacbd642db # Parent 404c804ac68ae20fadce6fd53ae29227b065506b (svn r13872) -Feature: Split the news message announcing opening and closure of industries into two news of their own diff -r 404c804ac68a -r 9cf125da8789 src/industry_cmd.cpp --- a/src/industry_cmd.cpp Tue Jul 29 22:19:37 2008 +0000 +++ b/src/industry_cmd.cpp Wed Jul 30 01:53:03 2008 +0000 @@ -1688,7 +1688,7 @@ } else { SetDParam(1, ind->town->index); } - AddNewsItem(indspec->new_industry_text, NS_OPENCLOSE, ind->xy, 0); + AddNewsItem(indspec->new_industry_text, NS_INDUSTRY_OPEN, ind->xy, 0); } return CommandCost(EXPENSES_OTHER, indspec->GetConstructionCost()); @@ -1890,7 +1890,7 @@ SetDParam(1, ind->town->index); } AddNewsItem(ind_spc->new_industry_text, - NS_OPENCLOSE, ind->xy, 0); + NS_INDUSTRY_OPEN, ind->xy, 0); } /** @@ -2205,7 +2205,7 @@ NewsSubtype ns; /* Compute news category */ if (closeit) { - ns = NS_OPENCLOSE; + ns = NS_INDUSTRY_CLOSE; } else { switch (WhoCanServiceIndustry(i)) { case 0: ns = NS_INDUSTRY_NOBODY; break; diff -r 404c804ac68a -r 9cf125da8789 src/lang/english.txt --- a/src/lang/english.txt Tue Jul 29 22:19:37 2008 +0000 +++ b/src/lang/english.txt Wed Jul 30 01:53:03 2008 +0000 @@ -590,7 +590,8 @@ STR_0207_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Arrival of first vehicle at competitor's station STR_0208_ACCIDENTS_DISASTERS :{YELLOW}Accidents / disasters STR_0209_COMPANY_INFORMATION :{YELLOW}Company information -STR_NEWS_OPEN_CLOSE :{YELLOW}Open / close of industries +STR_NEWS_INDUSTRY_OPEN :{YELLOW}Opening of industries +STR_NEWS_INDUSTRY_CLOSE :{YELLOW}Closing of industries STR_020A_ECONOMY_CHANGES :{YELLOW}Economy changes STR_INDUSTRY_CHANGES_SERVED_BY_PLAYER :{YELLOW}Production changes of industries served by the player STR_INDUSTRY_CHANGES_SERVED_BY_OTHER :{YELLOW}Production changes of industries served by competitor(s) diff -r 404c804ac68a -r 9cf125da8789 src/news_gui.cpp --- a/src/news_gui.cpp Tue Jul 29 22:19:37 2008 +0000 +++ b/src/news_gui.cpp Wed Jul 30 01:53:03 2008 +0000 @@ -132,7 +132,8 @@ { NT_COMPANY_INFO, NM_NORMAL, NF_NONE, DrawNewsBankrupcy }, ///< NS_COMPANY_MERGER { NT_COMPANY_INFO, NM_NORMAL, NF_NONE, DrawNewsBankrupcy }, ///< NS_COMPANY_BANKRUPT { NT_COMPANY_INFO, NM_NORMAL, NF_TILE, DrawNewsBankrupcy }, ///< NS_COMPANY_NEW - { NT_OPENCLOSE, NM_THIN, NF_VIEWPORT|NF_TILE, NULL }, ///< NS_OPENCLOSE + { NT_INDUSTRY_OPEN, NM_THIN, NF_VIEWPORT|NF_TILE, NULL }, ///< NS_INDUSTRY_OPEN + { NT_INDUSTRY_CLOSE, NM_THIN, NF_VIEWPORT|NF_TILE, NULL }, ///< NS_INDUSTRY_CLOSE { NT_ECONOMY, NM_NORMAL, NF_NONE, NULL }, ///< NS_ECONOMY { NT_INDUSTRY_PLAYER, NM_THIN, NF_VIEWPORT|NF_TILE, NULL }, ///< NS_INDUSTRY_PLAYER { NT_INDUSTRY_OTHER, NM_THIN, NF_VIEWPORT|NF_TILE, NULL }, ///< NS_INDUSTRY_OTHER @@ -153,7 +154,8 @@ { "arrival_other", 60, SND_1D_APPLAUSE, ND_FULL }, ///< NT_ARRIVAL_OTHER { "accident", 90, SND_BEGIN, ND_FULL }, ///< NT_ACCIDENT { "company_info", 60, SND_BEGIN, ND_FULL }, ///< NT_COMPANY_INFO - { "openclose", 90, SND_BEGIN, ND_FULL }, ///< NT_OPENCLOSE + { "open", 90, SND_BEGIN, ND_FULL }, ///< NT_INDUSTRY_OPEN + { "close", 90, SND_BEGIN, ND_FULL }, ///< NT_INDUSTRY_CLOSE { "economy", 30, SND_BEGIN, ND_FULL }, ///< NT_ECONOMY { "production_player", 30, SND_BEGIN, ND_FULL }, ///< NT_INDUSTRY_PLAYER { "production_other", 30, SND_BEGIN, ND_FULL }, ///< NT_INDUSTRY_OTHER @@ -947,7 +949,8 @@ NEWS_SETTINGS_LINE(26, NT_ARRIVAL_OTHER, STR_0207_ARRIVAL_OF_FIRST_VEHICLE), NEWS_SETTINGS_LINE(26, NT_ACCIDENT, STR_0208_ACCIDENTS_DISASTERS), NEWS_SETTINGS_LINE(26, NT_COMPANY_INFO, STR_0209_COMPANY_INFORMATION), -NEWS_SETTINGS_LINE(26, NT_OPENCLOSE, STR_NEWS_OPEN_CLOSE), +NEWS_SETTINGS_LINE(26, NT_INDUSTRY_OPEN, STR_NEWS_INDUSTRY_OPEN), +NEWS_SETTINGS_LINE(26, NT_INDUSTRY_CLOSE, STR_NEWS_INDUSTRY_CLOSE), NEWS_SETTINGS_LINE(26, NT_ECONOMY, STR_020A_ECONOMY_CHANGES), NEWS_SETTINGS_LINE(26, NT_INDUSTRY_PLAYER, STR_INDUSTRY_CHANGES_SERVED_BY_PLAYER), NEWS_SETTINGS_LINE(26, NT_INDUSTRY_OTHER, STR_INDUSTRY_CHANGES_SERVED_BY_OTHER), diff -r 404c804ac68a -r 9cf125da8789 src/news_type.h --- a/src/news_type.h Tue Jul 29 22:19:37 2008 +0000 +++ b/src/news_type.h Wed Jul 30 01:53:03 2008 +0000 @@ -17,7 +17,8 @@ NT_ARRIVAL_OTHER, ///< Cargo arrived for competitor NT_ACCIDENT, ///< An accident or disaster has occurred NT_COMPANY_INFO, ///< Company info (new companies, bankrupcy messages) - NT_OPENCLOSE, ///< Opening and closing of industries + NT_INDUSTRY_OPEN, ///< Opening of industries + NT_INDUSTRY_CLOSE, ///< Closing of industries NT_ECONOMY, ///< Economic changes (recession, industry up/dowm) NT_INDUSTRY_PLAYER, ///< Production changes of industry serviced by local player NT_INDUSTRY_OTHER, ///< Production changes of industry serviced by competitor(s) @@ -42,7 +43,8 @@ NS_COMPANY_MERGER, ///< NT_COMPANY_INFO (merger) NS_COMPANY_BANKRUPT, ///< NT_COMPANY_INFO (bankrupt) NS_COMPANY_NEW, ///< NT_COMPANY_INFO (new company) - NS_OPENCLOSE, ///< NT_OPENCLOSE + NS_INDUSTRY_OPEN, ///< NS_INDUSTRY_OPEN + NS_INDUSTRY_CLOSE, ///< NS_INDUSTRY_CLOSE NS_ECONOMY, ///< NT_ECONOMY NS_INDUSTRY_PLAYER, ///< NT_INDUSTRY_PLAYER NS_INDUSTRY_OTHER, ///< NT_INDUSTRY_OTHER diff -r 404c804ac68a -r 9cf125da8789 src/settings.cpp --- a/src/settings.cpp Tue Jul 29 22:19:37 2008 +0000 +++ b/src/settings.cpp Wed Jul 30 01:53:03 2008 +0000 @@ -1890,6 +1890,30 @@ } } +/** tries to convert newly introduced news settings based on old ones + * @param name pointer to the string defining name of the old news config + * @param value pointer to the string defining value of the old news config + * @returns true if conversion could have been made */ +bool ConvertOldNewsSetting(const char *name, const char *value) +{ + if (strcasecmp(name, "openclose") == 0) { + /* openclose has been split in "open" and "close". + * So the job is now to decrypt the value of the old news config + * and give it to the two newly introduced ones*/ + + NewsDisplay display = ND_OFF; //default + if (strcasecmp(value, "full") == 0) { + display = ND_FULL; + } else if (strcasecmp(value, "summarized") == 0) { + display = ND_SUMMARY; + } + /* tranfert of values */ + _news_type_data[NT_INDUSTRY_OPEN].display = display; + _news_type_data[NT_INDUSTRY_CLOSE].display = display; + return true; + } + return false; +} static void NewsDisplayLoadConfig(IniFile *ini, const char *grpname) { @@ -1907,8 +1931,14 @@ break; } } + + /* the config been read is not within current aceptable config */ if (news_item == -1) { - DEBUG(misc, 0, "Invalid display option: %s", item->name); + /* if the conversion function cannot process it, advice by a debug warning*/ + if (!ConvertOldNewsSetting(item->name, item->value)) { + DEBUG(misc, 0, "Invalid display option: %s", item->name); + } + /* in all cases, there is nothing left to do */ continue; }