(svn r16348) -Fix (r16280): buoys with invalid station ID could be left in the game
This commit is contained in:
@@ -2086,8 +2086,8 @@ bool HasStationInUse(StationID station, CompanyID company)
|
|||||||
|
|
||||||
static CommandCost RemoveBuoy(Station *st, DoCommandFlag flags)
|
static CommandCost RemoveBuoy(Station *st, DoCommandFlag flags)
|
||||||
{
|
{
|
||||||
/* XXX: strange stuff */
|
/* XXX: strange stuff, allow clearing as invalid company when clearing landscape */
|
||||||
if (!Company::IsValidID(_current_company)) return_cmd_error(INVALID_STRING_ID);
|
if (!Company::IsValidID(_current_company) && !(flags & DC_BANKRUPT)) return_cmd_error(INVALID_STRING_ID);
|
||||||
|
|
||||||
TileIndex tile = st->dock_tile;
|
TileIndex tile = st->dock_tile;
|
||||||
|
|
||||||
|
@@ -640,8 +640,8 @@ static void ResetLandscapeConfirmationCallback(Window *w, bool confirmed)
|
|||||||
Station *st;
|
Station *st;
|
||||||
FOR_ALL_STATIONS(st) {
|
FOR_ALL_STATIONS(st) {
|
||||||
/* There can be buoys, remove them */
|
/* There can be buoys, remove them */
|
||||||
if (IsBuoyTile(st->xy)) DoCommand(st->xy, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
|
if (st->IsBuoy() && IsBuoyTile(st->xy)) DoCommand(st->xy, 0, 0, DC_EXEC | DC_BANKRUPT, CMD_LANDSCAPE_CLEAR);
|
||||||
delete st;
|
if (st->facilities == 0) delete st;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The same for waypoints */
|
/* The same for waypoints */
|
||||||
|
Reference in New Issue
Block a user