]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/train.cpp
Activate allocator if an AI intends to move
[r2c2.git] / source / libr2c2 / train.cpp
index 6cb3205eb175fad4f6e6d8b18997a725df2da7b5..e8df4d890ced6478c2e083776be81f9bc58564eb 100644 (file)
@@ -53,6 +53,7 @@ Train::Train(Layout &l, const VehicleType &t, unsigned a, const string &p):
                speed_quantizer = new SpeedQuantizer(speed_steps);
 
        vehicles.push_back(new Vehicle(layout, loco_type));
+       vehicles.back()->set_train(this);
 
        layout.add_train(*this);
 
@@ -87,6 +88,7 @@ void Train::add_vehicle(const VehicleType &vt)
        Vehicle *veh = new Vehicle(layout, vt);
        vehicles.back()->attach_back(*veh);
        vehicles.push_back(veh);
+       veh->set_train(this);
 }
 
 void Train::remove_vehicle(unsigned i)
@@ -338,6 +340,8 @@ void Train::tick(const Time::TimeDelta &dt)
                        }
                }
        }
+       else if(intent_to_move && !allocator.is_active())
+               allocator.set_active(true);
        else if(allocator.is_active() && !intent_to_move && !stop_timeout)
                stop_timeout = 2*Time::sec;
 }
@@ -561,6 +565,7 @@ void Train::Loader::vehicle(ArticleNumber art_nr)
        Vehicle *veh = new Vehicle(obj.layout, vtype);
        obj.vehicles.back()->attach_back(*veh);
        obj.vehicles.push_back(veh);
+       veh->set_train(&obj);
 }
 
 } // namespace R2C2