(svn r8794) -Fix

Remove the possiblity to take over stations with OWNER_NONE by building a station next to it
-Fix: It was possible to take over buoys by building a station next to them
Also remove the now unnecessary special case which prevented taking over oilrigs
NOTE: 0.5 candidate
This commit is contained in:
tron 2007-02-18 08:37:39 +00:00
parent aa24d59966
commit c6743c5e11
1 changed files with 4 additions and 10 deletions

View File

@ -129,12 +129,6 @@ static Station* GetStationAround(TileIndex tile, int w, int h, StationID closest
BEGIN_TILE_LOOP(tile_cur, w + 2, h + 2, tile - TileDiffXY(1, 1))
if (IsTileType(tile_cur, MP_STATION)) {
StationID t = GetStationIndex(tile_cur);
{
Station *st = GetStation(t);
// you cannot take control of an oilrig!!
if (st->airport_type == AT_OILRIG && st->facilities == (FACIL_AIRPORT|FACIL_DOCK))
continue;
}
if (closest_station == INVALID_STATION) {
closest_station = t;
@ -910,7 +904,7 @@ int32 CmdBuildRailroadStation(TileIndex tile_org, uint32 flags, uint32 p1, uint3
if (st != NULL) {
// Reuse an existing station.
if (st->owner != OWNER_NONE && st->owner != _current_player)
if (st->owner != _current_player)
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
if (st->train_tile != 0) {
@ -1293,7 +1287,7 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
AutoPtrT<Station> st_auto_delete;
if (st != NULL) {
if (st->owner != OWNER_NONE && st->owner != _current_player) {
if (st->owner != _current_player) {
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
}
@ -1585,7 +1579,7 @@ int32 CmdBuildAirport(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
AutoPtrT<Station> st_auto_delete;
if (st != NULL) {
if (st->owner != OWNER_NONE && st->owner != _current_player)
if (st->owner != _current_player)
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
if (!st->rect.BeforeAddRect(tile, w, h, StationRect::ADD_TEST)) return CMD_ERROR;
@ -1872,7 +1866,7 @@ int32 CmdBuildDock(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
AutoPtrT<Station> st_auto_delete;
if (st != NULL) {
if (st->owner != OWNER_NONE && st->owner != _current_player)
if (st->owner != _current_player)
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
if (!st->rect.BeforeAddRect(tile, _dock_w_chk[direction], _dock_h_chk[direction], StationRect::ADD_TEST)) return CMD_ERROR;