diff options
author | peter1138 <peter1138@openttd.org> | 2008-02-01 22:13:59 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2008-02-01 22:13:59 +0000 |
commit | 09ce7f76e963a5a368eb98dcc5f28dfe476eafea (patch) | |
tree | abb200be04b496be06263dfd2e8897ba66096c54 /src/unmovable_cmd.cpp | |
parent | 7ce12e50da88b1e56f9abfd022f644fad164f03f (diff) | |
download | openttd-09ce7f76e963a5a368eb98dcc5f28dfe476eafea.tar.xz |
(svn r12038) -Fix: Change ownership of or remove statues when merging/bankrupting companies.
Diffstat (limited to 'src/unmovable_cmd.cpp')
-rw-r--r-- | src/unmovable_cmd.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/unmovable_cmd.cpp b/src/unmovable_cmd.cpp index b73e099a5..32f6ff993 100644 --- a/src/unmovable_cmd.cpp +++ b/src/unmovable_cmd.cpp @@ -449,6 +449,19 @@ static void ChangeTileOwner_Unmovable(TileIndex tile, PlayerID old_player, Playe if (IsOwnedLand(tile) && new_player != PLAYER_SPECTATOR) { SetTileOwner(tile, new_player); + } else if (IsStatueTile(tile)) { + TownID town = GetStatueTownID(tile); + Town *t = GetTown(town); + ClrBit(t->statues, old_player); + if (new_player != PLAYER_SPECTATOR && !HasBit(t->statues, new_player)) { + /* Transfer ownership to the new company */ + SetBit(t->statues, new_player); + SetTileOwner(tile, new_player); + } else { + DoClearSquare(tile); + } + + InvalidateWindow(WC_TOWN_AUTHORITY, town); } else { DoClearSquare(tile); } |