15 template<
typename WagonType>
18 insertWagon<WagonType>(-1);
21 template<
typename WagonType>
24 assert(targetPos < static_cast<int>(
m_wagons.size()));
25 assert(targetPos >= -1);
29 if((dynamic_cast<EngineWagon*>(wagonRaw) !=
nullptr))
35 auto newWagon = std::unique_ptr<WagonType>(wagonRaw);
39 m_wagons.push_back(std::move(newWagon));
void addWagon()
Adds a wagon of the given WagonType to the end of the train.
Definition: train.hpp:16
bool m_hasEngine
Every train needs exactly one engine.
Definition: train.h:131
void calculateWagonOffset()
Calculates offset for every wagon relative to train head.
Definition: train.cpp:159
std::vector< std::unique_ptr< AbstractWagon > > m_wagons
The vector containing all wagons.
Definition: train.h:129
void insertWagon(int targetPos)
Inserts a wagon of the given WagonType at the given position.
Definition: train.hpp:22
Definition: eventhandler.cpp:18
World & m_world
Definition: abstractgraphicsobject.h:253
WagonType
Definition: abstractwagon.h:13