(svn r13872) -Feature: Split the news message announcing opening and closure of industries into two news of their own
authorbelugas
Wed, 30 Jul 2008 01:53:03 +0000
changeset 9739 9cf125da8789
parent 9738 404c804ac68a
child 9740 12948a9e22fb
(svn r13872) -Feature: Split the news message announcing opening and closure of industries into two news of their own
src/industry_cmd.cpp
src/lang/english.txt
src/news_gui.cpp
src/news_type.h
src/settings.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;
--- 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)
--- 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),
--- 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
--- 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;
 		}