mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 07:29:44 +00:00
(svn r13872) -Feature: Split the news message announcing opening and closure of industries into two news of their own
This commit is contained in:
parent
b90dc6cc34
commit
d358eff64d
@ -1688,7 +1688,7 @@ CommandCost CmdBuildIndustry(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
} 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 @@ static void MaybeNewIndustry(void)
|
||||
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 @@ static void ChangeIndustryProduction(Industry *i, bool monthly)
|
||||
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;
|
||||
|
@ -590,7 +590,8 @@ STR_0206_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Arrival
|
||||
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)
|
||||
|
@ -132,7 +132,8 @@ static const struct NewsSubtypeData _news_subtype_data[NS_END] = {
|
||||
{ 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 @@ NewsTypeData _news_type_data[NT_END] = {
|
||||
{ "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_PLAYER, STR_0206_ARRIVAL_OF_FIRST_VEHICLE),
|
||||
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),
|
||||
|
@ -17,7 +17,8 @@ enum NewsType {
|
||||
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 @@ enum NewsSubtype {
|
||||
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
|
||||
|
@ -1890,6 +1890,30 @@ static void HandleOldDiffCustom(bool savegame)
|
||||
}
|
||||
}
|
||||
|
||||
/** 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 @@ static void NewsDisplayLoadConfig(IniFile *ini, const char *grpname)
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user