# HG changeset patch # User belugas # Date 2009-01-29 03:12:31 # Node ID 0ef68a5d0f8b3b501cfd6f7111d2e5873f58856f # Parent 857844cabc20293f790eb4bc00048798df17e855 (svn r15293) -Feature [FS#2583]: Give a more meaningful message when towns refuse construction of noise-controlled airports diff --git a/src/lang/english.txt b/src/lang/english.txt --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1853,6 +1853,7 @@ STR_2032_SERVICE_SUBSIDY_AWARDED STR_2033_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Service subsidy awarded to {COMPANY}!{}{}{STRING} service from {STATION} to {STATION} will pay triple rates for the next year! STR_2034_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Service subsidy awarded to {COMPANY}!{}{}{STRING} service from {STATION} to {STATION} will pay quadruple rates for the next year! STR_2035_LOCAL_AUTHORITY_REFUSES :{WHITE}{TOWN} local authority refuses to allow another airport to be built in this town +STR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN} local authority refuses permission for airport due to noise concerns STR_2036_COTTAGES :Cottages STR_2037_HOUSES :Houses STR_2038_FLATS :Flats diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1895,23 +1895,27 @@ CommandCost CmdBuildAirport(TileIndex ti uint newnoise_level = GetAirportNoiseLevelForTown(afc, nearest->xy, tile); /* Check if local auth would allow a new airport */ - bool authority_refused; + StringID authority_refuse_message = STR_NULL; if (_settings_game.economy.station_noise_level) { /* do not allow to build a new airport if this raise the town noise over the maximum allowed by town */ - authority_refused = (nearest->noise_reached + newnoise_level) > nearest->MaxTownNoise(); + if ((nearest->noise_reached + newnoise_level) > nearest->MaxTownNoise()) { + authority_refuse_message = STR_LOCAL_AUTHORITY_REFUSES_NOISE; + } } else { uint num = 0; const Station *st; FOR_ALL_STATIONS(st) { if (st->town == t && st->facilities & FACIL_AIRPORT && st->airport_type != AT_OILRIG) num++; } - authority_refused = (num >= 2); + if (num >= 2) { + authority_refuse_message = STR_2035_LOCAL_AUTHORITY_REFUSES; + } } - if (authority_refused) { + if (authority_refuse_message != STR_NULL) { SetDParam(0, t->index); - return_cmd_error(STR_2035_LOCAL_AUTHORITY_REFUSES); + return_cmd_error(authority_refuse_message); } if (!_settings_game.station.adjacent_stations || !HasBit(p2, 0)) {