diff options
author | smatz <smatz@openttd.org> | 2008-09-16 20:57:49 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2008-09-16 20:57:49 +0000 |
commit | 7ae255a553aa6c970bc2b68abbe395c42638aaca (patch) | |
tree | 9ebff093300fc9e6d80ace96bf9b70e7f6227c8e /src | |
parent | c9983422064228ef404cb7a3b5b149a1c4a82c0b (diff) | |
download | openttd-7ae255a553aa6c970bc2b68abbe395c42638aaca.tar.xz |
(svn r14348) -Fix (r1667): signs were not updated on company bankrupcy/sell, they have colour of invalid player
Diffstat (limited to 'src')
-rw-r--r-- | src/economy.cpp | 6 | ||||
-rw-r--r-- | src/openttd.cpp | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index a80ea602d..8629fc270 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -45,6 +45,7 @@ #include "gfx_func.h" #include "autoreplace_func.h" #include "player_gui.h" +#include "signs_base.h" #include "table/strings.h" #include "table/sprites.h" @@ -467,6 +468,11 @@ void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player) } } + Sign *si; + FOR_ALL_SIGNS(si) { + if (si->owner == old_player) si->owner = new_player == PLAYER_SPECTATOR ? OWNER_NONE : new_player; + } + /* Change color of existing windows */ if (new_player != PLAYER_SPECTATOR) ChangeWindowOwner(old_player, new_player); diff --git a/src/openttd.cpp b/src/openttd.cpp index 23c2b81ce..1b690e2a2 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -2560,6 +2560,13 @@ bool AfterLoadGame() } } + if (CheckSavegameVersion(103)) { + /* signs with invalid owner left from older savegames */ + Sign *si; + FOR_ALL_SIGNS(si) { + if (si->owner != OWNER_NONE && !IsValidPlayerID(si->owner)) si->owner = OWNER_NONE; + } + } GamelogPrintDebug(1); |