diff --git a/pom.xml b/pom.xml
index d27c120..20bfd9b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.srsoftware
web4rail
- 1.4.24
+ 1.4.25
Web4Rail
jar
Java Model Railway Control
diff --git a/src/main/java/de/srsoftware/web4rail/moving/Train.java b/src/main/java/de/srsoftware/web4rail/moving/Train.java
index 517aeef..86273c3 100644
--- a/src/main/java/de/srsoftware/web4rail/moving/Train.java
+++ b/src/main/java/de/srsoftware/web4rail/moving/Train.java
@@ -993,7 +993,11 @@ public class Train extends BaseClass implements Comparable {
public String start(boolean auto) {
LOG.debug("{}.start({})",this,auto?"auto":"");
- autopilot |= auto;
+ if (auto != autopilot) {
+ autopilot |= auto;
+ if (isSet(currentBlock)) plan.place(currentBlock);
+ }
+
if (isSet(nextPreparedRoute)) {
LOG.debug("starting nextPreparedRoute: {}",nextPreparedRoute);
if (nextPreparedRoute.startNow()) {
@@ -1049,10 +1053,12 @@ public class Train extends BaseClass implements Comparable {
endBrake();
setSpeed(0);
quitAutopilot();
- if (isSet(route) && route.hasTriggeredContacts()) {
+ if (isSet(route)) {
+ if (route.hasTriggeredContacts()) {
stuckTrace = new HashSet();
- for (Tile tile : route.path()) { // collect occupied tiles of route. stuckTrace is considered during next route search
- if (trace.contains(tile)) stuckTrace.add(tile);
+ for (Tile tile : route.path()) { // collect occupied tiles of route. stuckTrace is considered during next route search
+ if (trace.contains(tile)) stuckTrace.add(tile);
+ }
}
route.reset();
route = null;
@@ -1169,7 +1175,7 @@ public class Train extends BaseClass implements Comparable {
}
}
}
- for (Tile tile : trace) tile.free(this);
+ dropTrace(false);
trace = newTrace;
return context;
}