X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fvehicle.h;h=bd815ab19f497bec7d07470d09700186765548ce;hb=bde934f7d5ba07a9442a305192e10024820d13ed;hp=54054bb50e325cb1babf87408fbbf637999a3ca4;hpb=2910db1364914c0ab98a0f80250cc39137821577;p=r2c2.git diff --git a/source/libr2c2/vehicle.h b/source/libr2c2/vehicle.h index 54054bb..bd815ab 100644 --- a/source/libr2c2/vehicle.h +++ b/source/libr2c2/vehicle.h @@ -33,7 +33,7 @@ public: struct Axle { const VehicleType::Axle *type; - float angle; + Angle angle; Axle(const VehicleType::Axle &); }; @@ -41,7 +41,7 @@ public: struct Bogie { const VehicleType::Bogie *type; - float direction; + Angle direction; std::vector axles; Bogie(const VehicleType::Bogie &); @@ -51,7 +51,7 @@ public: { const VehicleType::Rod *type; Vector position; - float angle; + Angle angle; Rod(const VehicleType::Rod &); }; @@ -95,7 +95,7 @@ public: // TODO implement these - should call place() with suitable parameters virtual void set_position(const Vector &) { } - virtual void set_rotation(float) { } + virtual void set_rotation(const Angle &) { } void place(Track &, unsigned, float, PlaceMode = CENTER); void unplace(); void advance(float); @@ -121,6 +121,10 @@ private: TrackPoint get_point(const TrackPosition &, float, float = 0.5) const; public: + virtual unsigned get_n_link_slots() const; + virtual Vehicle *get_link(unsigned) const; + virtual int get_link_slot(const Object &) const; + virtual bool collide_ray(const Vector &, const Vector &) const { return false; } };