#include "driver.h"
#include "layout.h"
#include "track.h"
+#include "trackappearance.h"
#include "trackiter.h"
#include "tracktype.h"
#include "vehicle.h"
{
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);
return -1;
}
-bool Vehicle::collide_ray(const Ray &ray) const
+bool Vehicle::collide_ray(const Ray &ray, float *d) const
{
if(is_placed())
- return Object::collide_ray(ray);
+ return Object::collide_ray(ray, d);
else
return false;
}