X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fvehicle.cpp;h=62671fccab1c95fdad2e811fe9c77bc5895884a0;hb=508ee4bfcc0f8fb1373fb7af251c59c873ef896f;hp=cb776f413daacb20f82889076aeab17e451cc842;hpb=e3f081a762c1bd21c051590540d21ec21e9b36b1;p=r2c2.git diff --git a/source/libr2c2/vehicle.cpp b/source/libr2c2/vehicle.cpp index cb776f4..62671fc 100644 --- a/source/libr2c2/vehicle.cpp +++ b/source/libr2c2/vehicle.cpp @@ -3,6 +3,7 @@ #include "driver.h" #include "layout.h" #include "track.h" +#include "trackappearance.h" #include "trackiter.h" #include "tracktype.h" #include "vehicle.h" @@ -106,6 +107,9 @@ void Vehicle::place(const TrackOffsetIter &t, VehiclePlacement::Anchor a) { if(!t) throw invalid_argument("Vehicle::place"); + float gauge_ratio = t->get_type().get_gauge()/type.get_gauge(); + if(gauge_ratio<0.99 || gauge_ratio>1.01) + throw logic_error("Incompatible gauge"); placement.place(t, a);