SuperTuxKart
Loading...
Searching...
No Matches
follow_the_leader.hpp
1// SuperTuxKart - a fun racing game with go-kart
2// Copyright (C) 2004-2015 SuperTuxKart-Team
3//
4// This program is free software; you can redistribute it and/or
5// modify it under the terms of the GNU General Public License
6// as published by the Free Software Foundation; either version 3
7// of the License, or (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program; if not, write to the Free Software
16// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18#ifndef _follow_the_leader_hpp_
19#define _follow_the_leader_hpp_
20
21#include "modes/linear_world.hpp"
22
28{
29private:
30 // time till elimination in follow leader
31 std::vector<float> m_leader_intervals;
32
35
39public:
40
42 virtual ~FollowTheLeaderRace();
43
44 // clock events
45 virtual void countdownReachedZero() OVERRIDE;
46 virtual int getScoreForPosition(int p) OVERRIDE;
47
48 // overriding World methods
49 virtual void reset(bool restart=false) OVERRIDE;
50 virtual const std::string& getIdent() const OVERRIDE;
51 virtual const btTransform &getStartTransform(int index) OVERRIDE;
52 virtual void getKartsDisplayInfo(
53 std::vector<RaceGUIBase::KartIconDisplayInfo> *info) OVERRIDE;
54 virtual void init() OVERRIDE;
55 virtual void terminateRace() OVERRIDE;
56 virtual bool isRaceOver() OVERRIDE;
57 // ------------------------------------------------------------------------
59 virtual bool raceHasLaps() OVERRIDE { return false; }
60 // ------------------------------------------------------------------------
62 virtual bool useFastMusicNearEnd() const OVERRIDE { return false; }
63
64 bool isLeader(int kart_id) { return (kart_id == 0); }
65 void leaderHit();
66 // For now, use a similar countdown change as with leaderHit
67 void leaderRescued() { leaderHit(); }
68}; // FollowTheLeader
69
70
71#endif
An implementation of World, based on LinearWorld, to provide the Follow-the-leader game mode.
Definition: follow_the_leader.hpp:28
virtual int getScoreForPosition(int p) OVERRIDE
Returns the number of points for a kart at a specified position.
Definition: follow_the_leader.cpp:98
void leaderHit()
If the leader kart is hit, increase the delay to the next elimination.
Definition: follow_the_leader.cpp:227
virtual const std::string & getIdent() const OVERRIDE
Returns the internal identifier for this kind of race.
Definition: follow_the_leader.cpp:284
virtual bool isRaceOver() OVERRIDE
The follow the leader race is over if there is only one kart left (plus the leader),...
Definition: follow_the_leader.cpp:204
virtual void countdownReachedZero() OVERRIDE
Called when a kart must be eliminated.
Definition: follow_the_leader.cpp:123
virtual void init() OVERRIDE
Called immediately after the constructor.
Definition: follow_the_leader.cpp:56
virtual bool raceHasLaps() OVERRIDE
Returns if this type of race has laps.
Definition: follow_the_leader.hpp:59
virtual void terminateRace() OVERRIDE
Called at the end of a race.
Definition: follow_the_leader.cpp:240
virtual void reset(bool restart=false) OVERRIDE
Called just before a race is started.
Definition: follow_the_leader.cpp:79
virtual const btTransform & getStartTransform(int index) OVERRIDE
Returns the start coordinates for a kart with a given index.
Definition: follow_the_leader.cpp:109
virtual void getKartsDisplayInfo(std::vector< RaceGUIBase::KartIconDisplayInfo > *info) OVERRIDE
Sets the title for all karts that is displayed in the icon list.
Definition: follow_the_leader.cpp:293
virtual bool useFastMusicNearEnd() const OVERRIDE
Returns if faster music should be used at the end.
Definition: follow_the_leader.hpp:62
float m_last_eliminated_time
Time the last kart was eliminated.
Definition: follow_the_leader.hpp:38
float m_is_over_delay
A timer used before terminating the race.
Definition: follow_the_leader.hpp:34
Definition: linear_world.hpp:36
An abstract base class for the two race guis (race_gui and race_result gui)
Definition: race_gui_base.hpp:50