mirror of https://github.com/OpenTTD/OpenTTD
(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 candidaterelease/0.6
parent
aa24d59966
commit
c6743c5e11
|
@ -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))
|
BEGIN_TILE_LOOP(tile_cur, w + 2, h + 2, tile - TileDiffXY(1, 1))
|
||||||
if (IsTileType(tile_cur, MP_STATION)) {
|
if (IsTileType(tile_cur, MP_STATION)) {
|
||||||
StationID t = GetStationIndex(tile_cur);
|
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) {
|
if (closest_station == INVALID_STATION) {
|
||||||
closest_station = t;
|
closest_station = t;
|
||||||
|
@ -910,7 +904,7 @@ int32 CmdBuildRailroadStation(TileIndex tile_org, uint32 flags, uint32 p1, uint3
|
||||||
|
|
||||||
if (st != NULL) {
|
if (st != NULL) {
|
||||||
// Reuse an existing station.
|
// 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);
|
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
|
||||||
|
|
||||||
if (st->train_tile != 0) {
|
if (st->train_tile != 0) {
|
||||||
|
@ -1293,7 +1287,7 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
AutoPtrT<Station> st_auto_delete;
|
AutoPtrT<Station> st_auto_delete;
|
||||||
|
|
||||||
if (st != NULL) {
|
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);
|
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;
|
AutoPtrT<Station> st_auto_delete;
|
||||||
|
|
||||||
if (st != NULL) {
|
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);
|
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
|
||||||
|
|
||||||
if (!st->rect.BeforeAddRect(tile, w, h, StationRect::ADD_TEST)) return CMD_ERROR;
|
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;
|
AutoPtrT<Station> st_auto_delete;
|
||||||
|
|
||||||
if (st != NULL) {
|
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);
|
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;
|
if (!st->rect.BeforeAddRect(tile, _dock_w_chk[direction], _dock_h_chk[direction], StationRect::ADD_TEST)) return CMD_ERROR;
|
||||||
|
|
Loading…
Reference in New Issue