From 032346cf8a21d1af604db8aecf5f03d58997e418 Mon Sep 17 00:00:00 2001 From: frosch Date: Wed, 11 Feb 2009 18:50:47 +0000 Subject: (svn r15452) -Codechange: Add DC_NO_MODIFY_TOWN_RATING. --- src/town_cmd.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/town_cmd.cpp') diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index b16afa08c..d4e23ee99 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -537,7 +537,7 @@ static CommandCost ClearTile_Town(TileIndex tile, DoCommandFlag flags) } } - ChangeTownRating(t, -rating, RATING_HOUSE_MINIMUM); + ChangeTownRating(t, -rating, RATING_HOUSE_MINIMUM, flags); if (flags & DC_EXEC) { ClearTownHouse(t, tile); } @@ -2278,7 +2278,7 @@ static void TownActionBribe(Town *t) InvalidateWindow(WC_TOWN_AUTHORITY, t->index); } } else { - ChangeTownRating(t, RATING_BRIBE_UP_STEP, RATING_BRIBE_MAXIMUM); + ChangeTownRating(t, RATING_BRIBE_UP_STEP, RATING_BRIBE_MAXIMUM, DC_EXEC); } } @@ -2591,10 +2591,17 @@ static int GetRating(const Town *t) return t->ratings[_current_company]; } -void ChangeTownRating(Town *t, int add, int max) +/** + * Changes town rating of the current company + * @param t Town to affect + * @param add Value to add + * @param max Minimum (add < 0) resp. maximum (add > 0) rating that should be archievable with this change + * @param flags Command flags, especially DC_NO_MODIFY_TOWN_RATING is tested + */ +void ChangeTownRating(Town *t, int add, int max, DoCommandFlag flags) { /* if magic_bulldozer cheat is active, town doesn't penaltize for removing stuff */ - if (t == NULL || + if (t == NULL || (flags & DC_NO_MODIFY_TOWN_RATING) || !IsValidCompanyID(_current_company) || (_cheats.magic_bulldozer.value && add < 0)) { return; -- cgit v1.2.3-54-g00ecf