From 2e634428f3b241ba940617668bb5ad6ffdc29a2a Mon Sep 17 00:00:00 2001 From: belugas Date: Thu, 29 Jan 2009 03:12:31 +0000 Subject: (svn r15293) -Feature [FS#2583]: Give a more meaningful message when towns refuse construction of noise-controlled airports --- src/lang/english.txt | 1 + src/station_cmd.cpp | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 774535918..5e4072dd4 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1853,6 +1853,7 @@ STR_2032_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT 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 index 4f1c5363c..67f1dbab6 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1895,23 +1895,27 @@ CommandCost CmdBuildAirport(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, 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)) { -- cgit v1.2.3-54-g00ecf