Mercurial > hg > openttd
changeset 11945:2064815ee61e draft
(svn r16348) -Fix (r16280): buoys with invalid station ID could be left in the game
author | smatz <smatz@openttd.org> |
---|---|
date | Mon, 18 May 2009 00:33:24 +0000 |
parents | 0eb2a7a73a5f |
children | d5716f5a9844 |
files | src/station_cmd.cpp src/terraform_gui.cpp |
diffstat | 2 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2086,8 +2086,8 @@ static CommandCost RemoveBuoy(Station *st, DoCommandFlag flags) { - /* XXX: strange stuff */ - if (!Company::IsValidID(_current_company)) return_cmd_error(INVALID_STRING_ID); + /* XXX: strange stuff, allow clearing as invalid company when clearing landscape */ + if (!Company::IsValidID(_current_company) && !(flags & DC_BANKRUPT)) return_cmd_error(INVALID_STRING_ID); TileIndex tile = st->dock_tile;
--- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -640,8 +640,8 @@ Station *st; FOR_ALL_STATIONS(st) { /* There can be buoys, remove them */ - if (IsBuoyTile(st->xy)) DoCommand(st->xy, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); - delete st; + if (st->IsBuoy() && IsBuoyTile(st->xy)) DoCommand(st->xy, 0, 0, DC_EXEC | DC_BANKRUPT, CMD_LANDSCAPE_CLEAR); + if (st->facilities == 0) delete st; } /* The same for waypoints */