branch | custombridgeheads |
changeset 5632 | 025c3b25f1fd |
parent 5623 | ef2a8a524a95 |
child 5636 | 2f3e7fb56cae |
5631:932c1a268feb | 5632:025c3b25f1fd |
---|---|
650 |
650 |
651 // Same bit, used in different contexts |
651 // Same bit, used in different contexts |
652 sigvar = HASBIT(p1, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC; |
652 sigvar = HASBIT(p1, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC; |
653 pre_signal = HASBIT(p1, 3); |
653 pre_signal = HASBIT(p1, 3); |
654 |
654 |
655 if (!ValParamTrackOrientation(track) || !IsTileType(tile, MP_RAILWAY) || !EnsureNoVehicle(tile)) |
655 if (!ValParamTrackOrientation(track) || |
656 !(IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_RAILWAY_BRIDGE)) || |
|
657 !EnsureNoVehicle(tile)) { |
|
656 return CMD_ERROR; |
658 return CMD_ERROR; |
659 } |
|
657 |
660 |
658 /* Protect against invalid signal copying */ |
661 /* Protect against invalid signal copying */ |
659 if (p2 != 0 && (p2 & SignalOnTrack(track)) == 0) return CMD_ERROR; |
662 if (p2 != 0 && (p2 & SignalOnTrack(track)) == 0) return CMD_ERROR; |
660 |
663 |
661 /* You can only build signals on plain rail tiles, and the selected track must exist */ |
664 /* You can only build signals on plain rail tiles, and the selected track must exist */ |
828 int32 CmdRemoveSingleSignal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
831 int32 CmdRemoveSingleSignal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
829 { |
832 { |
830 Track track = (Track)(p1 & 0x7); |
833 Track track = (Track)(p1 & 0x7); |
831 |
834 |
832 if (!ValParamTrackOrientation(track) || |
835 if (!ValParamTrackOrientation(track) || |
833 !IsTileType(tile, MP_RAILWAY) || |
836 !(IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_RAILWAY_BRIDGE)) || |
834 !EnsureNoVehicle(tile) || |
837 !EnsureNoVehicle(tile) || |
835 !HasSignalOnTrack(tile, track)) { |
838 !HasSignalOnTrack(tile, track)) { |
836 return CMD_ERROR; |
839 return CMD_ERROR; |
837 } |
840 } |
838 |
841 |
1252 |
1255 |
1253 if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) DrawCatenary(ti); |
1256 if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) DrawCatenary(ti); |
1254 |
1257 |
1255 } |
1258 } |
1256 |
1259 |
1257 static void DrawSignals(TileIndex tile, TrackBits rails) |
1260 void DrawSignals(TileIndex tile, TrackBits rails) |
1258 { |
1261 { |
1259 #define MAYBE_DRAW_SIGNAL(x,y,z) if (IsSignalPresent(tile, x)) DrawSingleSignal(tile, GetSingleSignalState(tile, x), y - 0x4FB, z) |
1262 #define MAYBE_DRAW_SIGNAL(x,y,z) if (IsSignalPresent(tile, x)) DrawSingleSignal(tile, GetSingleSignalState(tile, x), y - 0x4FB, z) |
1260 |
1263 |
1261 if (!(rails & TRACK_BIT_Y)) { |
1264 if (!(rails & TRACK_BIT_Y)) { |
1262 if (!(rails & TRACK_BIT_X)) { |
1265 if (!(rails & TRACK_BIT_X)) { |