mirror of https://github.com/OpenTTD/OpenTTD
(svn r11046) -Codechange: added function to get the next movable (non-articulated, non-read end of dualheaded engine) vehicle in a train
parent
7cdf6d1cbe
commit
f7d1c125b1
|
@ -249,8 +249,7 @@ static CommandCost ReplaceVehicle(Vehicle **w, byte flags, Money total_cost)
|
||||||
CommandCost tmp_move;
|
CommandCost tmp_move;
|
||||||
|
|
||||||
if (old_v->type == VEH_TRAIN && IsFrontEngine(old_v)) {
|
if (old_v->type == VEH_TRAIN && IsFrontEngine(old_v)) {
|
||||||
Vehicle *next_veh = GetNextVehicle(old_v);
|
Vehicle *next_veh = GetNextUnit(old_v); // don't try to move the rear multiheaded engine or articulated parts
|
||||||
if (IsRearDualheaded(next_veh)) next_veh = next_veh->Next(); // don't try to move the rear multiheaded engine
|
|
||||||
if (next_veh != NULL) {
|
if (next_veh != NULL) {
|
||||||
/* Verify that the wagons can be placed on the engine in question.
|
/* Verify that the wagons can be placed on the engine in question.
|
||||||
* This is done by building an engine, test if the wagons can be added and then sell the test engine. */
|
* This is done by building an engine, test if the wagons can be added and then sell the test engine. */
|
||||||
|
|
13
src/train.h
13
src/train.h
|
@ -248,6 +248,19 @@ static inline Vehicle *GetNextVehicle(const Vehicle *v)
|
||||||
return v->Next();
|
return v->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Get the next real (non-articulated part and non rear part of dualheaded engine) vehicle in the consist.
|
||||||
|
* @param v Vehicle.
|
||||||
|
* @return Next vehicle in the consist.
|
||||||
|
*/
|
||||||
|
static inline Vehicle *GetNextUnit(Vehicle *v)
|
||||||
|
{
|
||||||
|
assert(v->type == VEH_TRAIN);
|
||||||
|
v = GetNextVehicle(v);
|
||||||
|
if (v != NULL && IsRearDualheaded(v)) v = v->Next();
|
||||||
|
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
void ConvertOldMultiheadToNew();
|
void ConvertOldMultiheadToNew();
|
||||||
void ConnectMultiheadedTrains();
|
void ConnectMultiheadedTrains();
|
||||||
uint CountArticulatedParts(EngineID engine_type);
|
uint CountArticulatedParts(EngineID engine_type);
|
||||||
|
|
Loading…
Reference in New Issue