From 9e68c9b87fd1d062f5d0f98b18c69fc73bd3ce9f Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 8 Dec 2006 12:31:34 +0000 Subject: (svn r7433) -Fix (r2301): Town ratings were not reset when a company went bankrupt. --- economy.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/economy.c b/economy.c index 83b166751..61dc1a20d 100644 --- a/economy.c +++ b/economy.c @@ -244,6 +244,7 @@ int UpdateCompanyRatingAndValue(Player *p, bool update) // use PLAYER_SPECTATOR as new_player to delete the player. void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player) { + Town *t; PlayerID old = _current_player; _current_player = old_player; @@ -266,10 +267,9 @@ void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player) } /* Take care of rating in towns */ - if (new_player != PLAYER_SPECTATOR) { - Town *t; - FOR_ALL_TOWNS(t) { - /* If a player takes over, give the ratings to that player. */ + FOR_ALL_TOWNS(t) { + /* If a player takes over, give the ratings to that player. */ + if (new_player != PLAYER_SPECTATOR) { if (HASBIT(t->have_ratings, old_player)) { if (HASBIT(t->have_ratings, new_player)) { // use max of the two ratings. @@ -279,10 +279,11 @@ void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player) t->ratings[new_player] = t->ratings[old_player]; } } - - t->ratings[old_player] = 500; - CLRBIT(t->have_ratings, old_player); } + + /* Reset the ratings for the old player */ + t->ratings[old_player] = 500; + CLRBIT(t->have_ratings, old_player); } { -- cgit v1.2.3-70-g09d2