mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-10 08:00:05 +00:00
(svn r20114) -Add: Show an specific error message when trying to remove rail or build/convert/remove signals over nonexistant railways.
This commit is contained in:
parent
40e58f78ba
commit
191389fa8d
@ -3549,6 +3549,7 @@ STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Can't bu
|
|||||||
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Can't remove railway track from here...
|
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Can't remove railway track from here...
|
||||||
STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Can't remove signals from here...
|
STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Can't remove signals from here...
|
||||||
STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}Can't convert signals here...
|
STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}Can't convert signals here...
|
||||||
|
STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}...there is no railway track
|
||||||
|
|
||||||
STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Can't convert railtype here...
|
STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Can't convert railtype here...
|
||||||
|
|
||||||
|
@ -517,7 +517,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
|
|
||||||
switch (GetTileType(tile)) {
|
switch (GetTileType(tile)) {
|
||||||
case MP_ROAD: {
|
case MP_ROAD: {
|
||||||
if (!IsLevelCrossing(tile) || GetCrossingRailBits(tile) != trackbit) return CMD_ERROR;
|
if (!IsLevelCrossing(tile) || GetCrossingRailBits(tile) != trackbit) return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
|
|
||||||
if (_current_company != OWNER_WATER) {
|
if (_current_company != OWNER_WATER) {
|
||||||
CommandCost ret = CheckTileOwnership(tile);
|
CommandCost ret = CheckTileOwnership(tile);
|
||||||
@ -545,8 +545,8 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
|
|
||||||
case MP_RAILWAY: {
|
case MP_RAILWAY: {
|
||||||
TrackBits present;
|
TrackBits present;
|
||||||
|
/* There are no rails present at depots. */
|
||||||
if (!IsPlainRail(tile)) return CMD_ERROR;
|
if (!IsPlainRail(tile)) return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
|
|
||||||
if (_current_company != OWNER_WATER) {
|
if (_current_company != OWNER_WATER) {
|
||||||
CommandCost ret = CheckTileOwnership(tile);
|
CommandCost ret = CheckTileOwnership(tile);
|
||||||
@ -557,7 +557,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
if (ret.Failed()) return ret;
|
if (ret.Failed()) return ret;
|
||||||
|
|
||||||
present = GetTrackBits(tile);
|
present = GetTrackBits(tile);
|
||||||
if ((present & trackbit) == 0) return CMD_ERROR;
|
if ((present & trackbit) == 0) return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
if (present == (TRACK_BIT_X | TRACK_BIT_Y)) crossing = true;
|
if (present == (TRACK_BIT_X | TRACK_BIT_Y)) crossing = true;
|
||||||
|
|
||||||
cost.AddCost(RailClearCost(GetRailType(tile)));
|
cost.AddCost(RailClearCost(GetRailType(tile)));
|
||||||
@ -590,7 +590,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default: return CMD_ERROR;
|
default: return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
@ -923,7 +923,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
/* You can only build signals on plain rail tiles, and the selected track must exist */
|
/* You can only build signals on plain rail tiles, and the selected track must exist */
|
||||||
if (!ValParamTrackOrientation(track) || !IsPlainRailTile(tile) ||
|
if (!ValParamTrackOrientation(track) || !IsPlainRailTile(tile) ||
|
||||||
!HasTrack(tile, track)) {
|
!HasTrack(tile, track)) {
|
||||||
return CMD_ERROR;
|
return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
}
|
}
|
||||||
CommandCost ret = EnsureNoTrainOnTrack(tile, track);
|
CommandCost ret = EnsureNoTrainOnTrack(tile, track);
|
||||||
if (ret.Failed()) return ret;
|
if (ret.Failed()) return ret;
|
||||||
@ -1149,7 +1149,7 @@ static CommandCost CmdSignalTrackHelper(TileIndex tile, DoCommandFlag flags, uin
|
|||||||
TileIndex end_tile = p1;
|
TileIndex end_tile = p1;
|
||||||
if (signal_density == 0 || signal_density > 20) return CMD_ERROR;
|
if (signal_density == 0 || signal_density > 20) return CMD_ERROR;
|
||||||
|
|
||||||
if (!IsPlainRailTile(tile)) return CMD_ERROR;
|
if (!IsPlainRailTile(tile)) return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
|
|
||||||
/* for vertical/horizontal tracks, double the given signals density
|
/* for vertical/horizontal tracks, double the given signals density
|
||||||
* since the original amount will be too dense (shorter tracks) */
|
* since the original amount will be too dense (shorter tracks) */
|
||||||
@ -1284,10 +1284,10 @@ CommandCost CmdRemoveSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1
|
|||||||
{
|
{
|
||||||
Track track = Extract<Track, 0, 3>(p1);
|
Track track = Extract<Track, 0, 3>(p1);
|
||||||
|
|
||||||
if (!ValParamTrackOrientation(track) ||
|
if (!ValParamTrackOrientation(track) || !IsPlainRailTile(tile) || !HasTrack(tile, track)) {
|
||||||
!IsPlainRailTile(tile) ||
|
return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
|
||||||
!HasTrack(tile, track) ||
|
}
|
||||||
!HasSignalOnTrack(tile, track)) {
|
if (!HasSignalOnTrack(tile, track)) {
|
||||||
return CMD_ERROR;
|
return CMD_ERROR;
|
||||||
}
|
}
|
||||||
CommandCost ret = EnsureNoTrainOnTrack(tile, track);
|
CommandCost ret = EnsureNoTrainOnTrack(tile, track);
|
||||||
|
Loading…
Reference in New Issue
Block a user