/* base/racetrack.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_BASE_RACETRACK_H__ #define __INCLUDED_BASE_RACETRACK_H__ #include "core/entity.h" #include "core/player.h" #include "math/mathlib.h" #include namespace base { class CheckPoint; /* ---- class RaceTrack -------------------------------------------- */ class RaceTrack : public core::EntityDynamic { public: typedef std::list CheckPoints ; RaceTrack(); ~RaceTrack(); void add_checkpoint(CheckPoint *checkpoint); /// reset the race track void reset(); virtual void frame(float seconds); inline core::Player *player() { return track_player; } private: CheckPoints track_checkpoints; core::Player *track_player; float track_racestart; float track_checkpointtime; CheckPoints::iterator track_checkpoint; }; /* ---- class CheckPoint ------------------------------------------- */ class CheckPoint : public core::EntityDynamic { public: CheckPoint(RaceTrack *parent); ~CheckPoint(); private: RaceTrack *parent_track; }; } #endif // __INCLUDED_BASE_NAVPOINT_H__