(svn r16527) -Codechange: use static member functions instead of simple casts when converting Vehicle to specialised vehicle types. Includes safety check

This commit is contained in:
smatz
2009-06-06 16:54:22 +00:00
parent c90819ff6d
commit 0c10006907
36 changed files with 185 additions and 161 deletions

View File

@@ -208,7 +208,7 @@ bool IsArticulatedVehicleCarryingDifferentCargos(const Vehicle *v, CargoID *carg
switch (v->type) {
case VEH_TRAIN:
v = (EngineHasArticPart((const Train *)v) ? GetNextArticPart((const Train *)v) : NULL);
v = (EngineHasArticPart(Train::From(v)) ? GetNextArticPart(Train::From(v)) : NULL);
break;
case VEH_ROAD:
@@ -256,7 +256,7 @@ void CheckConsistencyOfArticulatedVehicle(const Vehicle *v)
switch (v->type) {
case VEH_TRAIN:
v = (EngineHasArticPart((const Train *)v) ? GetNextArticPart((const Train *)v) : NULL);
v = (EngineHasArticPart(Train::From(v)) ? GetNextArticPart(Train::From(v)) : NULL);
break;
case VEH_ROAD:
@@ -305,7 +305,7 @@ void AddArticulatedParts(Vehicle *first, VehicleType type)
default: NOT_REACHED();
case VEH_TRAIN: {
Train *front = (Train *)first;
Train *front = Train::From(first);
Train *t = new Train();
v->SetNext(t);
v = t;
@@ -328,7 +328,7 @@ void AddArticulatedParts(Vehicle *first, VehicleType type)
} break;
case VEH_ROAD: {
RoadVehicle *front = (RoadVehicle *)first;
RoadVehicle *front = RoadVehicle::From(first);
RoadVehicle *rv = new RoadVehicle();
v->SetNext(rv);
v = rv;