summaryrefslogtreecommitdiff
path: root/waypoint.c
diff options
context:
space:
mode:
Diffstat (limited to 'waypoint.c')
-rw-r--r--waypoint.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/waypoint.c b/waypoint.c
index b115ad08d..23e1ceaad 100644
--- a/waypoint.c
+++ b/waypoint.c
@@ -205,7 +205,11 @@ int32 CmdBuildTrainWaypoint(int x, int y, uint32 flags, uint32 p1, uint32 p2)
_m[tile].m3 |= 16;
_m[tile].m4 = p1 & 0xff;
}
- if (reserved) PBSReserveTrack(tile, dir);
+ if (reserved) {
+ PBSReserveTrack(tile, dir);
+ } else {
+ PBSClearTrack(tile, dir);
+ }
wp->deleted = 0;
wp->xy = tile;
@@ -279,7 +283,11 @@ int32 RemoveTrainWaypoint(TileIndex tile, uint32 flags, bool justremove)
ModifyTile(tile, MP_MAP5, 1<<direction);
_m[tile].m3 &= ~16;
_m[tile].m4 = 0;
- if (reserved) PBSReserveTrack(tile, direction);
+ if (reserved) {
+ PBSReserveTrack(tile, direction);
+ } else {
+ PBSClearTrack(tile, direction);
+ }
} else {
DoClearSquare(tile);
SetSignalsOnBothDir(tile, direction);