Merge branch 'signal_tunnels_bridges' into signal_tunnels_bridges-sx
This commit is contained in:
@@ -1040,7 +1040,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
}
|
}
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
if (p2 == 0 && HasWormholeSignals(tile)) { // Toggle signal if already signals present.
|
if (p2 == 0 && HasWormholeSignals(tile)) { // Toggle signal if already signals present.
|
||||||
if (IsTunnelBridgeEntrance (tile)) {
|
if (IsTunnelBridgeEntrance(tile)) {
|
||||||
ClrBitTunnelBridgeSignal(tile);
|
ClrBitTunnelBridgeSignal(tile);
|
||||||
ClrBitTunnelBridgeExit(tile_exit);
|
ClrBitTunnelBridgeExit(tile_exit);
|
||||||
SetBitTunnelBridgeExit(tile);
|
SetBitTunnelBridgeExit(tile);
|
||||||
@@ -1051,7 +1051,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
SetBitTunnelBridgeExit(tile_exit);
|
SetBitTunnelBridgeExit(tile_exit);
|
||||||
SetBitTunnelBridgeSignal(tile);
|
SetBitTunnelBridgeSignal(tile);
|
||||||
}
|
}
|
||||||
} else{
|
} else {
|
||||||
/* Create one direction tunnel/bridge if required. */
|
/* Create one direction tunnel/bridge if required. */
|
||||||
if (p2 == 0) {
|
if (p2 == 0) {
|
||||||
SetBitTunnelBridgeSignal(tile);
|
SetBitTunnelBridgeSignal(tile);
|
||||||
@@ -1071,7 +1071,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
}
|
}
|
||||||
MarkTileDirtyByTile(tile);
|
MarkTileDirtyByTile(tile);
|
||||||
MarkTileDirtyByTile(tile_exit);
|
MarkTileDirtyByTile(tile_exit);
|
||||||
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, _current_company);
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
||||||
YapfNotifyTrackLayoutChange(tile, track);
|
YapfNotifyTrackLayoutChange(tile, track);
|
||||||
}
|
}
|
||||||
return cost;
|
return cost;
|
||||||
@@ -1519,6 +1519,8 @@ CommandCost CmdRemoveSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1
|
|||||||
_m[end].m2 = 0;
|
_m[end].m2 = 0;
|
||||||
MarkTileDirtyByTile(tile);
|
MarkTileDirtyByTile(tile);
|
||||||
MarkTileDirtyByTile(end);
|
MarkTileDirtyByTile(end);
|
||||||
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
||||||
|
YapfNotifyTrackLayoutChange(tile, track);
|
||||||
return CommandCost(EXPENSES_CONSTRUCTION, cost);
|
return CommandCost(EXPENSES_CONSTRUCTION, cost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3203,6 +3203,7 @@ static bool CheckTrainStayInWormHole(Train *t, TileIndex tile)
|
|||||||
}
|
}
|
||||||
SigSegState seg_state = _settings_game.pf.reserve_paths ? SIGSEG_PBS : UpdateSignalsOnSegment(tile, INVALID_DIAGDIR, t->owner);
|
SigSegState seg_state = _settings_game.pf.reserve_paths ? SIGSEG_PBS : UpdateSignalsOnSegment(tile, INVALID_DIAGDIR, t->owner);
|
||||||
if (seg_state == SIGSEG_FULL || (seg_state == SIGSEG_PBS && !TryPathReserve(t))) {
|
if (seg_state == SIGSEG_FULL || (seg_state == SIGSEG_PBS && !TryPathReserve(t))) {
|
||||||
|
t->vehstatus |= VS_TRAIN_SLOWING;
|
||||||
t->cur_speed = 0;
|
t->cur_speed = 0;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -3423,6 +3424,7 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
|
|||||||
if (v->IsFrontEngine() && v->force_proceed == 0) {
|
if (v->IsFrontEngine() && v->force_proceed == 0) {
|
||||||
if (IsTunnelBridgeWithSignRed(gp.new_tile)) {
|
if (IsTunnelBridgeWithSignRed(gp.new_tile)) {
|
||||||
v->cur_speed = 0;
|
v->cur_speed = 0;
|
||||||
|
v->vehstatus |= VS_TRAIN_SLOWING;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (IsTunnelBridgeExit(gp.new_tile)) {
|
if (IsTunnelBridgeExit(gp.new_tile)) {
|
||||||
@@ -3511,6 +3513,7 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
|
|||||||
if (IsToCloseBehindTrain(v, gp.new_tile, distance == 0)) {
|
if (IsToCloseBehindTrain(v, gp.new_tile, distance == 0)) {
|
||||||
if (distance == 0) v->wait_counter = 0;
|
if (distance == 0) v->wait_counter = 0;
|
||||||
v->cur_speed = 0;
|
v->cur_speed = 0;
|
||||||
|
v->vehstatus |= VS_TRAIN_SLOWING;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
/* flip signal in front to red on bridges*/
|
/* flip signal in front to red on bridges*/
|
||||||
|
Reference in New Issue
Block a user