From a70f9f7d2562cf2f9ea4eb169e146f01975b828a Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 10 Aug 2008 19:11:25 +0000 Subject: forgot to add racetrack files --- src/game/racetrack.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/game/racetrack.h (limited to 'src/game/racetrack.h') 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 + +namespace game { + +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_GAME_NAVPOINT_H__ + -- cgit v1.2.3