]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/train.cpp
Pull the SetFlag class from mspcore
[r2c2.git] / source / libr2c2 / train.cpp
index 10227222daac98b38956c14975d0a334ad2cc3ab..d78e6276ec14bd98780badaef96ddece39ed2be7 100644 (file)
@@ -1,6 +1,7 @@
 #include <algorithm>
 #include <cmath>
 #include <msp/core/maputils.h>
+#include <msp/core/raii.h>
 #include <msp/strings/format.h>
 #include <msp/time/units.h>
 #include <msp/time/utils.h>
 using namespace std;
 using namespace Msp;
 
-namespace {
-
-struct SetFlag
-{
-       bool &flag;
-
-       SetFlag(bool &f): flag(f) { flag = true; }
-       ~SetFlag() { flag = false; }
-};
-
-}
-
-
 namespace R2C2 {
 
 Train::Train(Layout &l, const VehicleType &t, unsigned a, const string &p):
@@ -258,6 +246,8 @@ void Train::unplace()
 void Train::stop_at(Block *block)
 {
        stop_at_block = block;
+       if(active && !stop_at_block)
+               reserve_more();
 }
 
 bool Train::free_block(Block &block)