(svn r3140) Building/removing a waypoint could leave old PBS reservations behind. This ensures they are cleared.
--- a/waypoint.c Sat Nov 05 16:07:26 2005 +0000
+++ b/waypoint.c Sat Nov 05 18:13:40 2005 +0000
@@ -205,7 +205,11 @@
_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 @@
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);