diff options
Diffstat (limited to 'src/game/racetrack.h')
-rw-r--r-- | src/game/racetrack.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/game/racetrack.h b/src/game/racetrack.h new file mode 100644 index 0000000..733051a --- /dev/null +++ b/src/game/racetrack.h @@ -0,0 +1,63 @@ +/* + game/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_GAME_RACETRACK_H__ +#define __INCLUDED_GAME_RACETRACK_H__ + +#include "core/entity.h" +#include "core/player.h" +#include "math/mathlib.h" + +#include <string> + +namespace game { + +class CheckPoint; + +/* ---- class RaceTrack -------------------------------------------- */ + +class RaceTrack : public core::EntityDynamic { + +public: + typedef std::list<CheckPoint *> 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_GAME_NAVPOINT_H__ + |