1
0
Fork 0

(svn r20116) -Add: Show an specific error message when trying to convert/remove nonexistant signals.

release/1.1
terkhen 2010-07-10 20:18:59 +00:00
parent bb24713218
commit 066aa61a45
2 changed files with 8 additions and 3 deletions

View File

@ -3551,6 +3551,7 @@ STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Can't re
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_THERE_IS_NO_RAILROAD_TRACK :{WHITE}...there is no railway track
STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}...there are no signals
STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Can't convert railtype here... STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Can't convert railtype here...

View File

@ -948,7 +948,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
if (HasBit(p1, 17) && HasSignalOnTrack(tile, track)) return CommandCost(); if (HasBit(p1, 17) && HasSignalOnTrack(tile, track)) return CommandCost();
/* you can not convert a signal if no signal is on track */ /* you can not convert a signal if no signal is on track */
if (convert_signal && !HasSignalOnTrack(tile, track)) return CMD_ERROR; if (convert_signal && !HasSignalOnTrack(tile, track)) return_cmd_error(STR_ERROR_THERE_ARE_NO_SIGNALS);
CommandCost cost; CommandCost cost;
if (!HasSignalOnTrack(tile, track)) { if (!HasSignalOnTrack(tile, track)) {
@ -1220,9 +1220,13 @@ static CommandCost CmdSignalTrackHelper(TileIndex tile, DoCommandFlag flags, uin
had_success = true; had_success = true;
total_cost.AddCost(ret); total_cost.AddCost(ret);
} else { } else {
/* The "No railway" error is the least important one. */
if (ret.GetErrorMessage() != STR_ERROR_THERE_IS_NO_RAILROAD_TRACK ||
last_error.GetErrorMessage() == INVALID_STRING_ID) {
last_error = ret; last_error = ret;
} }
} }
}
if (autofill) { if (autofill) {
if (!CheckSignalAutoFill(tile, trackdir, signal_ctr, remove)) break; if (!CheckSignalAutoFill(tile, trackdir, signal_ctr, remove)) break;
@ -1288,7 +1292,7 @@ CommandCost CmdRemoveSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1
return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK); return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
} }
if (!HasSignalOnTrack(tile, track)) { if (!HasSignalOnTrack(tile, track)) {
return CMD_ERROR; return_cmd_error(STR_ERROR_THERE_ARE_NO_SIGNALS);
} }
CommandCost ret = EnsureNoTrainOnTrack(tile, track); CommandCost ret = EnsureNoTrainOnTrack(tile, track);
if (ret.Failed()) return ret; if (ret.Failed()) return ret;