Minor mode checks clean-up
This commit is contained in:
parent
4f388b2c87
commit
ff2ccdbde3
@ -339,11 +339,8 @@ void SkiddingAI::update(int ticks)
|
||||
|
||||
// Make sure that not all AI karts use the zipper at the same
|
||||
// time in time trial at start up, so disable it during the 5 first seconds
|
||||
if(race_manager->getMinorMode()== RaceManager::MINOR_MODE_TIME_TRIAL &&
|
||||
(m_world->getTime()<5.0f) )
|
||||
{
|
||||
if(race_manager->isTimeTrialMode() && (m_world->getTime()<5.0f) )
|
||||
m_controls->setFire(false);
|
||||
}
|
||||
|
||||
/*And obviously general kart stuff*/
|
||||
AIBaseLapController::update(ticks);
|
||||
@ -1881,23 +1878,14 @@ void SkiddingAI::computeNearestKarts()
|
||||
|
||||
m_distance_leader = m_distance_ahead = m_distance_behind = 9999999.9f;
|
||||
float my_dist = m_world->getOverallDistance(m_kart->getWorldKartId());
|
||||
|
||||
if(m_kart_ahead)
|
||||
{
|
||||
m_distance_ahead =
|
||||
m_world->getOverallDistance(m_kart_ahead->getWorldKartId())
|
||||
-my_dist;
|
||||
}
|
||||
m_distance_ahead = m_world->getOverallDistance(m_kart_ahead->getWorldKartId()) - my_dist;
|
||||
if(m_kart_behind)
|
||||
{
|
||||
m_distance_behind = my_dist
|
||||
-m_world->getOverallDistance(m_kart_behind->getWorldKartId());
|
||||
}
|
||||
if(race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER &&
|
||||
m_kart->getWorldKartId() != 0)
|
||||
{
|
||||
m_distance_leader = m_world->getOverallDistance(0 /*leader kart ID*/)
|
||||
-my_dist;
|
||||
}
|
||||
m_distance_behind = my_dist - m_world->getOverallDistance(m_kart_behind->getWorldKartId());
|
||||
|
||||
if( race_manager->isFollowMode() && m_kart->getWorldKartId() != 0)
|
||||
m_distance_leader = m_world->getOverallDistance(0 /*leader kart ID*/) - my_dist;
|
||||
|
||||
// Compute distance to target player kart
|
||||
|
||||
@ -1926,10 +1914,10 @@ void SkiddingAI::computeNearestKarts()
|
||||
}
|
||||
|
||||
// Force best driving when profiling and for FTL leaders
|
||||
if(ProfileWorld::isProfileMode() ||
|
||||
(race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER &&
|
||||
m_kart->getWorldKartId() == 0))
|
||||
if( ProfileWorld::isProfileMode()
|
||||
|| ( race_manager->isFollowMode() && m_kart->getWorldKartId() == 0))
|
||||
target_overall_distance = 999999.9f;
|
||||
|
||||
// In higher difficulties, rubber band towards the first player,
|
||||
// if at all (SuperTux has currently no rubber banding at all)
|
||||
else if (race_manager->getDifficulty() == RaceManager::DIFFICULTY_HARD ||
|
||||
@ -2055,10 +2043,9 @@ void SkiddingAI::handleBraking(float max_turn_speed, float min_speed)
|
||||
// TODO : if there is still time in the countdown and the leader is faster,
|
||||
// the AI kart should not slow down too much, to stay closer to the
|
||||
// leader once overtaken.
|
||||
if(race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER &&
|
||||
m_distance_leader < 2 &&
|
||||
m_kart->getInitialPosition()>1 &&
|
||||
m_world->getOverallDistance(m_kart->getWorldKartId()) > 0 )
|
||||
if( race_manager->isFollowMode() && m_distance_leader < 2
|
||||
&& m_kart->getInitialPosition()>1
|
||||
&& m_world->getOverallDistance(m_kart->getWorldKartId()) > 0 )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
if(m_ai_debug)
|
||||
@ -2213,10 +2200,8 @@ void SkiddingAI::handleNitroAndZipper(float max_safe_speed)
|
||||
|
||||
// No point in building a big nitro reserve in nitro for FTL AIs,
|
||||
// just keep enough to help accelerating after an accident
|
||||
if(race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
{
|
||||
if(race_manager->isFollowMode())
|
||||
energy_reserve = std::min(2.0f, energy_reserve);
|
||||
}
|
||||
|
||||
// Don't use nitro or zipper if we are braking
|
||||
if(m_controls->getBrake()) return;
|
||||
|
@ -101,7 +101,7 @@ public:
|
||||
#define EASTER_EGG(ID) (3000+ID)
|
||||
#define MISC(ID) (4000+ID)
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Minor variants to the major types of race.
|
||||
* Make sure to use the 'LINEAR_RACE/BATTLE_ARENA' macros. */
|
||||
enum MinorRaceModeType
|
||||
@ -124,7 +124,7 @@ public:
|
||||
MINOR_MODE_CUTSCENE = MISC(2)
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** True if the AI should have additional abbilities, e.g.
|
||||
* nolok will get special bubble gums in the final challenge. */
|
||||
enum AISuperPower
|
||||
@ -133,7 +133,7 @@ public:
|
||||
SUPERPOWER_NOLOK_BOSS = 1
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns a string identifier for each minor race mode.
|
||||
* \param mode Minor race mode.
|
||||
*/
|
||||
@ -154,7 +154,7 @@ public:
|
||||
}
|
||||
} // getIdentOf
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns the icon for a minor race mode.
|
||||
* \param mode Minor race mode.
|
||||
*/
|
||||
@ -174,9 +174,9 @@ public:
|
||||
}
|
||||
} // getIconOf
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
static const core::stringw getNameOf(const MinorRaceModeType mode);
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns if the currently set minor game mode can be used by the AI. */
|
||||
bool hasAI()
|
||||
{
|
||||
@ -195,7 +195,7 @@ public:
|
||||
} // hasAI
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns the minor mode id from a string identifier. This function is
|
||||
* used from challenge_data, which reads the mode from a challenge file.
|
||||
* \param name The name of the minor mode.
|
||||
@ -419,90 +419,90 @@ public:
|
||||
void setDefaultAIKartList(const std::vector<std::string> &ai_list);
|
||||
void computeRandomKartList();
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool hasTimeTarget() const { return m_time_target > 0.0f; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setMaxGoal(int max_goal)
|
||||
{
|
||||
m_time_target = 0.0f;
|
||||
m_goal_target = max_goal;
|
||||
} // setMaxGoal
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getMaxGoal(){ return m_goal_target; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setCoinTarget(int num) { m_coin_target = num; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setGrandPrix(const GrandPrixData &gp)
|
||||
{
|
||||
m_grand_prix = gp;
|
||||
setCoinTarget(0);
|
||||
} // setGrandPrix
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setAIKartOverride(const std::string& kart)
|
||||
{
|
||||
m_ai_kart_override = kart;
|
||||
} // setAIKartOverride
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setAISuperPower(AISuperPower superpower)
|
||||
{
|
||||
m_ai_superpower = superpower;
|
||||
} // setAISuperPower
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
AISuperPower getAISuperPower() const { return m_ai_superpower; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setNumLaps(int num)
|
||||
{
|
||||
m_num_laps.clear();
|
||||
m_num_laps.push_back(num);
|
||||
} // setNumLaps
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setReverseTrack(bool r_t)
|
||||
{
|
||||
m_reverse_track.clear();
|
||||
m_reverse_track.push_back(r_t);
|
||||
} // setReverseTrack
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setMajorMode(MajorRaceModeType mode) { m_major_mode = mode; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setMinorMode(MinorRaceModeType mode)
|
||||
{
|
||||
m_minor_mode = mode;
|
||||
} // setMinorMode
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setNumKarts(int num)
|
||||
{
|
||||
m_num_karts = num;
|
||||
m_ai_kart_override = "";
|
||||
m_ai_superpower = SUPERPOWER_NONE;
|
||||
} // setNumKarts
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setNumRedAI(unsigned int num)
|
||||
{
|
||||
m_num_red_ai = num;
|
||||
} // setNumRedAI
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setNumBlueAI(unsigned int num)
|
||||
{
|
||||
m_num_blue_ai = num;
|
||||
} // setNumBlueAI
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setTimeTarget(float time)
|
||||
{
|
||||
m_goal_target = 0;
|
||||
m_time_target = time;
|
||||
} // setTimeTarget
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
RemoteKartInfo& getKartInfo(unsigned int n)
|
||||
{
|
||||
return m_player_karts[n];
|
||||
} // getKartInfo
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumLocalPlayers() const
|
||||
{
|
||||
return m_num_local_players;
|
||||
} // getNumLocalPlayers
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns true if the split screen display leaves an empty space that
|
||||
* can be used to display the minimap.
|
||||
*/
|
||||
@ -514,27 +514,27 @@ public:
|
||||
const int total_spaces = rows * cols;
|
||||
return (total_spaces - getNumLocalPlayers() > 0);
|
||||
} // getIfEmptyScreenSpaceExists
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns the selected number of karts (selected number of players and
|
||||
* AI karts. */
|
||||
unsigned int getNumberOfKarts() const { return m_num_karts; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumberOfAIKarts() const
|
||||
{
|
||||
return (unsigned int)m_ai_kart_list.size();
|
||||
} // getNumberOfAIKarts
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumberOfRedAIKarts() const { return m_num_red_ai; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumberOfBlueAIKarts() const { return m_num_blue_ai; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumNonGhostKarts() const
|
||||
{ return m_num_karts - m_num_ghost_karts; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
MajorRaceModeType getMajorMode() const { return m_major_mode; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
MinorRaceModeType getMinorMode() const { return m_minor_mode; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
std::string getMinorModeName() const
|
||||
{
|
||||
switch (m_minor_mode)
|
||||
@ -550,12 +550,12 @@ public:
|
||||
default: assert(false); return "";
|
||||
}
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumPlayers() const
|
||||
{
|
||||
return (unsigned int) m_player_karts.size();
|
||||
} // getNumPlayers
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief Returns the number lf laps.
|
||||
* In case of FTL or battle mode always return 9999, since they don't
|
||||
* have laps. This avoids problems in FTL GP, since in this case no laps
|
||||
@ -569,13 +569,13 @@ public:
|
||||
// else
|
||||
return 9999;
|
||||
} // getNumLaps
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \return whether the track should be reversed */
|
||||
bool getReverseTrack() const { return m_reverse_track[m_track_number]; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns the difficulty. */
|
||||
Difficulty getDifficulty() const { return m_difficulty; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns the specified difficulty as a string. */
|
||||
std::string getDifficultyAsString(Difficulty diff) const
|
||||
{
|
||||
@ -590,94 +590,94 @@ public:
|
||||
return "";
|
||||
} // getDifficultyAsString
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
core::stringw getDifficultyName(Difficulty diff) const;
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
const std::string& getTrackName() const { return m_tracks[m_track_number];}
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
const GrandPrixData& getGrandPrix() const { return m_grand_prix; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getFinishedKarts() const { return m_num_finished_karts; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getFinishedPlayers() const { return m_num_finished_players; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getKartGPRank(const int kart_id)const
|
||||
{
|
||||
return m_kart_status[kart_id].m_gp_rank;
|
||||
} // getKartGPRank
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
const std::string& getKartIdent(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_ident;
|
||||
} // getKartIdent
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getKartScore(int krt) const { return m_kart_status[krt].m_score; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getKartPrevScore(int krt) const
|
||||
{
|
||||
return m_kart_status[krt].m_last_score;
|
||||
} // getKartPrevScore
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getKartLocalPlayerId(int k) const
|
||||
{
|
||||
return m_kart_status[k].m_local_player_id;
|
||||
} // getKartLocalPlayerId
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getKartGlobalPlayerId(int k) const
|
||||
{
|
||||
return m_kart_status[k].m_global_player_id;
|
||||
} // getKartGlobalPlayerId
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
float getOverallTime(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_overall_time;
|
||||
} // getOverallTime
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
float getKartRaceTime(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_last_time;
|
||||
} // getKartRaceTime
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
KartType getKartType(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_kart_type;
|
||||
} // getKartType
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
PerPlayerDifficulty getPlayerDifficulty(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_difficulty;
|
||||
} // getPlayerDifficulty
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool hasBoostedAI(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_boosted_ai;
|
||||
} // getKartRaceTime
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setKartColor(int kart, float color)
|
||||
{
|
||||
m_kart_status[kart].m_color = color;
|
||||
} // setKartColor
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
float getKartColor(int kart) const
|
||||
{
|
||||
return m_kart_status[kart].m_color;
|
||||
} // getKartColor
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getCoinTarget() const { return m_coin_target; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
float getTimeTarget() const { return m_time_target; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getTrackNumber() const { return m_track_number; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getNumOfTracks() const { return (int)m_tracks.size(); }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns the list of AI karts to use. Used for networking, and for
|
||||
* the --ai= command line option. */
|
||||
const std::vector<std::string>& getAIKartList() const
|
||||
{
|
||||
return m_ai_kart_list;
|
||||
} // getAIKartList
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief get information about current mode (returns true if 'mode' is of
|
||||
* linear races type) */
|
||||
bool isLinearRaceMode() const
|
||||
@ -689,7 +689,7 @@ public:
|
||||
else return false;
|
||||
} // isLinearRaceMode
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief get information about given mode (returns true if 'mode' is of
|
||||
* linear races type) */
|
||||
bool isLinearRaceMode(const MinorRaceModeType mode) const
|
||||
@ -701,7 +701,7 @@ public:
|
||||
else return false;
|
||||
} // isLinearRaceMode
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief Returns true if the current mode is a battle mode. */
|
||||
bool isBattleMode() const
|
||||
{
|
||||
@ -712,7 +712,7 @@ public:
|
||||
else return false;
|
||||
} // isBattleMode
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief Returns true if the current mode is a soccer mode. */
|
||||
bool isSoccerMode() const
|
||||
{
|
||||
@ -723,30 +723,21 @@ public:
|
||||
else return false;
|
||||
} // isSoccerMode
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
bool isTutorialMode() const
|
||||
{
|
||||
return m_minor_mode == MINOR_MODE_TUTORIAL;
|
||||
} // isTutorialMode
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isTutorialMode() const { return m_minor_mode == MINOR_MODE_TUTORIAL; }
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
bool isFollowMode() const
|
||||
{
|
||||
return m_minor_mode == MINOR_MODE_FOLLOW_LEADER;
|
||||
}
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isFollowMode() const { return m_minor_mode == MINOR_MODE_FOLLOW_LEADER; }
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isCTFMode() const { return m_minor_mode == MINOR_MODE_CAPTURE_THE_FLAG; }
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
bool isEggHuntMode() const
|
||||
{
|
||||
return m_minor_mode == MINOR_MODE_EASTER_EGG;
|
||||
} // isEggHuntMode
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isEggHuntMode() const { return m_minor_mode == MINOR_MODE_EASTER_EGG; }
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
bool isTimeTrialMode() const
|
||||
{
|
||||
return m_minor_mode == MINOR_MODE_TIME_TRIAL;
|
||||
} // isTimeTrialMode
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isTimeTrialMode() const { return m_minor_mode == MINOR_MODE_TIME_TRIAL; }
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief Returns the number of second's decimals to display */
|
||||
int currentModeTimePrecision() const
|
||||
{
|
||||
@ -755,7 +746,7 @@ public:
|
||||
|
||||
return 2;//display centiseconds
|
||||
} // currentModeTimePrecision
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \brief Returns true if the current mode has laps. */
|
||||
bool modeHasLaps() const
|
||||
{
|
||||
@ -765,7 +756,7 @@ public:
|
||||
const int answer = (id-1000)/100;
|
||||
return answer!=0;
|
||||
} // modeHasLaps
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Returns true if the currently selected minor mode has highscores. */
|
||||
bool modeHasHighscores()
|
||||
{
|
||||
@ -777,13 +768,13 @@ public:
|
||||
!isSoccerMode() &&
|
||||
m_minor_mode != MINOR_MODE_FOLLOW_LEADER;
|
||||
} // modeHasHighscore
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool raceWasStartedFromOverworld() const
|
||||
{
|
||||
return m_started_from_overworld;
|
||||
} // raceWasStartedFromOverworld
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** \name Callbacks from the race classes
|
||||
* These methods are to be used by the classes that manage the various
|
||||
* races, to let the race manager know about current status
|
||||
@ -792,7 +783,7 @@ public:
|
||||
{
|
||||
return m_num_finished_players == m_player_karts.size();
|
||||
} // allPlayerFinished
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Sets the AI to use. This is used in networking mode to set the karts
|
||||
* that will be used by the server to the client. It will take precedence
|
||||
* over the random selection. */
|
||||
@ -800,58 +791,58 @@ public:
|
||||
{
|
||||
m_ai_kart_list = rkl;
|
||||
} // setAIKartList
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool haveKartLastPositionOnOverworld()
|
||||
{
|
||||
return m_have_kart_last_position_on_overworld;
|
||||
} // haveKartLastPositionOnOverworld
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setKartLastPositionOnOverworld(const Vec3 &pos)
|
||||
{
|
||||
m_have_kart_last_position_on_overworld = true;
|
||||
m_kart_last_position_on_overworld = pos;
|
||||
} // setKartLastPositionOnOverworld
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void clearKartLastPositionOnOverworld()
|
||||
{
|
||||
m_have_kart_last_position_on_overworld = false;
|
||||
} // clearKartLastPositionOnOverworld
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
Vec3 getKartLastPositionOnOverworld()
|
||||
{
|
||||
return m_kart_last_position_on_overworld;
|
||||
} // getKartLastPositionOnOverworld
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setRecordRace(bool record)
|
||||
{
|
||||
m_is_recording_race = record;
|
||||
} // setRecordRace
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setRaceGhostKarts(bool ghost)
|
||||
{
|
||||
m_has_ghost_karts = ghost;
|
||||
} // setRaceGhostKarts
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setWatchingReplay(bool watch)
|
||||
{
|
||||
m_watching_replay = watch;
|
||||
} // setWatchingReplay
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isRecordingRace() const
|
||||
{
|
||||
return m_is_recording_race;
|
||||
} // isRecordingRace
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool hasGhostKarts() const
|
||||
{
|
||||
return m_has_ghost_karts;
|
||||
} // hasGhostKarts
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool isWatchingReplay() const
|
||||
{
|
||||
return m_watching_replay;
|
||||
} // isWatchingReplay
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void addSpareTireKart(const std::string& name)
|
||||
{
|
||||
m_kart_status.push_back(KartStatus(name, 0, -1, -1,
|
||||
@ -859,45 +850,45 @@ public:
|
||||
m_num_spare_tire_karts++;
|
||||
m_num_karts++;
|
||||
} // addSpareTireKart
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setSpareTireKartNum(unsigned int i)
|
||||
{
|
||||
m_num_spare_tire_karts = i;
|
||||
} // setSpareTireKartNum
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned int getNumSpareTireKarts() const
|
||||
{
|
||||
return m_num_spare_tire_karts;
|
||||
} // getNumSpareTireKarts
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void configGrandPrixResultFromNetwork(NetworkString& ns);
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void clearNetworkGrandPrixResult();
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setHitCaptureTime(int hc, float time)
|
||||
{
|
||||
m_hit_capture_limit = hc;
|
||||
m_time_target = time;
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
int getHitCaptureLimit() const { return m_hit_capture_limit; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
bool teamEnabled() const
|
||||
{
|
||||
return m_minor_mode == MINOR_MODE_SOCCER ||
|
||||
m_minor_mode == MINOR_MODE_CAPTURE_THE_FLAG;
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setFlagReturnTicks(unsigned ticks) { m_flag_return_ticks = ticks; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned getFlagReturnTicks() const { return m_flag_return_ticks; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
void setFlagDeactivatedTicks(unsigned ticks)
|
||||
{ m_flag_deactivated_ticks = ticks; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
unsigned getFlagDeactivatedTicks() const
|
||||
{ return m_flag_deactivated_ticks; }
|
||||
// ------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------
|
||||
/** Whether the current game mode allow live joining even the current game
|
||||
*. started in network*/
|
||||
bool supportsLiveJoining() const
|
||||
|
@ -712,7 +712,7 @@ void RaceResultGUI::displayCTFResults()
|
||||
|
||||
unsigned int first_position = 1;
|
||||
unsigned int sta = race_manager->getNumSpareTireKarts();
|
||||
if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (race_manager->isFollowMode())
|
||||
first_position = 2;
|
||||
|
||||
// Use only the karts that are supposed to be displayed (and
|
||||
@ -762,13 +762,12 @@ void RaceResultGUI::displayCTFResults()
|
||||
ri->m_kart_icon = icon;
|
||||
|
||||
// FTL karts will get a time assigned, they are not shown as eliminated
|
||||
if (kart->isEliminated() &&
|
||||
race_manager->getMinorMode() != RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (kart->isEliminated() && !(race_manager->isFollowMode()))
|
||||
{
|
||||
ri->m_finish_time_string = core::stringw(_("Eliminated"));
|
||||
}
|
||||
else if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_FREE_FOR_ALL ||
|
||||
race_manager->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG)
|
||||
else if ( race_manager->getMinorMode() == RaceManager::MINOR_MODE_FREE_FOR_ALL
|
||||
|| race_manager->isCTFMode())
|
||||
{
|
||||
assert(ffa);
|
||||
ri->m_finish_time_string =
|
||||
@ -871,7 +870,7 @@ void RaceResultGUI::displayCTFResults()
|
||||
m_table_width = m_width_icon + m_width_column_space
|
||||
+ m_width_kart_name;
|
||||
|
||||
if (race_manager->getMinorMode() != RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (!race_manager->isFollowMode())
|
||||
m_table_width += m_width_finish_time + m_width_column_space;
|
||||
|
||||
// Only in GP mode are the points displayed.
|
||||
@ -1072,12 +1071,11 @@ void RaceResultGUI::displayCTFResults()
|
||||
// Second phase: update X and Y positions for the various animations
|
||||
// =================================================================
|
||||
float v = 0.9f*UserConfigParams::m_width / m_time_single_scroll;
|
||||
if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER)
|
||||
if (race_manager->isSoccerMode())
|
||||
{
|
||||
displaySoccerResults();
|
||||
}
|
||||
else if (race_manager->getMinorMode() ==
|
||||
RaceManager::MINOR_MODE_CAPTURE_THE_FLAG)
|
||||
else if (race_manager->isCTFMode())
|
||||
{
|
||||
displayCTFResults();
|
||||
}
|
||||
@ -1107,7 +1105,7 @@ void RaceResultGUI::displayCTFResults()
|
||||
WorldWithRank *wwr = dynamic_cast<WorldWithRank*>(World::getWorld());
|
||||
assert(wwr);
|
||||
int most_points;
|
||||
if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (race_manager->isFollowMode())
|
||||
most_points = wwr->getScoreForPosition(2);
|
||||
else
|
||||
most_points = wwr->getScoreForPosition(1);
|
||||
@ -1192,8 +1190,7 @@ void RaceResultGUI::displayCTFResults()
|
||||
}
|
||||
// In FTL karts do have a time, which is shown even when the kart
|
||||
// is eliminated
|
||||
if (kart->isEliminated() &&
|
||||
race_manager->getMinorMode() != RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (kart->isEliminated() && !(race_manager->isFollowMode()))
|
||||
{
|
||||
ri->m_finish_time_string = core::stringw(_("Eliminated"));
|
||||
}
|
||||
@ -1208,8 +1205,7 @@ void RaceResultGUI::displayCTFResults()
|
||||
ri->m_y_pos = (float)(m_top + rank*m_distance_between_rows);
|
||||
int p = race_manager->getKartPrevScore(kart_id);
|
||||
ri->m_current_displayed_points = (float)p;
|
||||
if (kart->isEliminated() &&
|
||||
race_manager->getMinorMode() != RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (kart->isEliminated() && !(race_manager->isFollowMode()))
|
||||
{
|
||||
ri->m_new_points = 0;
|
||||
}
|
||||
@ -1741,7 +1737,7 @@ void RaceResultGUI::displayCTFResults()
|
||||
}
|
||||
}
|
||||
|
||||
if (race_manager->getMinorMode() != RaceManager::MINOR_MODE_SOCCER)
|
||||
if (!race_manager->isSoccerMode())
|
||||
{
|
||||
// display lap count
|
||||
if (race_manager->modeHasLaps())
|
||||
|
@ -119,7 +119,7 @@ void TrackInfoScreen::beforeAddingWidget()
|
||||
m_target_type_div->setCollapsed(!m_is_soccer && !m_show_ffa_spinner, this);
|
||||
|
||||
// show 'Number of blue team AI karts' if soccer
|
||||
m_ai_blue_div->setCollapsed((race_manager->getMinorMode() != RaceManager::MINOR_MODE_SOCCER), this);
|
||||
m_ai_blue_div->setCollapsed(!(race_manager->isSoccerMode()), this);
|
||||
} // beforeAddingWidget
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -282,8 +282,8 @@ void TrackInfoScreen::init()
|
||||
|
||||
// Reverse track or random item in arena
|
||||
// -------------
|
||||
const bool reverse_available = m_track->reverseAvailable() &&
|
||||
race_manager->getMinorMode() != RaceManager::MINOR_MODE_EASTER_EGG;
|
||||
const bool reverse_available = m_track->reverseAvailable()
|
||||
&& !(race_manager->isEggHuntMode());
|
||||
const bool random_item = m_track->hasNavMesh();
|
||||
|
||||
m_option->setVisible(reverse_available || random_item);
|
||||
@ -556,7 +556,7 @@ void TrackInfoScreen::onEnterPressedInternal()
|
||||
const bool has_AI =
|
||||
(race_manager->getMinorMode() == RaceManager::MINOR_MODE_3_STRIKES ||
|
||||
race_manager->getMinorMode() == RaceManager::MINOR_MODE_FREE_FOR_ALL ||
|
||||
race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER ?
|
||||
race_manager->isSoccerMode() ?
|
||||
m_track->hasNavMesh() && (max_arena_players - local_players) > 0 :
|
||||
race_manager->hasAI());
|
||||
|
||||
|
@ -734,7 +734,7 @@ void Track::loadArenaGraph(const XMLNode &node)
|
||||
{
|
||||
// Determine if rotate minimap is needed for soccer mode (for blue team)
|
||||
// Only need to test local player
|
||||
if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER)
|
||||
if (race_manager->isSoccerMode())
|
||||
{
|
||||
const unsigned pk = race_manager->getNumPlayers();
|
||||
for (unsigned i = 0; i < pk; i++)
|
||||
@ -1878,8 +1878,7 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
|
||||
// the information about the size of the texture to render the mini
|
||||
// map to.
|
||||
// Load the un-raycasted flag position first (for minimap)
|
||||
if (m_is_ctf &&
|
||||
race_manager->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG)
|
||||
if (m_is_ctf && race_manager->isCTFMode())
|
||||
{
|
||||
for (unsigned int i=0; i<root->getNumNodes(); i++)
|
||||
{
|
||||
@ -1933,7 +1932,7 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
|
||||
|
||||
if (!m_is_arena && !m_is_soccer && !m_is_cutscene)
|
||||
{
|
||||
if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_FOLLOW_LEADER)
|
||||
if (race_manager->isFollowMode())
|
||||
{
|
||||
// In a FTL race the non-leader karts are placed at the end of the
|
||||
// field, so we need all start positions.
|
||||
@ -2196,8 +2195,7 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
|
||||
}
|
||||
main_loop->renderGUI(5700);
|
||||
|
||||
if (m_is_ctf &&
|
||||
race_manager->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG)
|
||||
if (m_is_ctf && race_manager->isCTFMode())
|
||||
{
|
||||
for (unsigned int i=0; i<root->getNumNodes(); i++)
|
||||
{
|
||||
@ -2282,8 +2280,7 @@ void Track::loadObjects(const XMLNode* root, const std::string& path,
|
||||
unsigned int start_position_counter = 0;
|
||||
|
||||
unsigned int node_count = root->getNumNodes();
|
||||
const bool is_mode_ctf = m_is_ctf && race_manager->getMinorMode() ==
|
||||
RaceManager::MINOR_MODE_CAPTURE_THE_FLAG;
|
||||
const bool is_mode_ctf = m_is_ctf && race_manager->isCTFMode();
|
||||
|
||||
// We keep track of the complexity of the scene (amount of objects loaded, etc)
|
||||
irr_driver->addSceneComplexity(node_count);
|
||||
@ -2623,8 +2620,7 @@ void Track::itemCommand(const XMLNode *node)
|
||||
{
|
||||
const std::string &name = node->getName();
|
||||
|
||||
const bool is_mode_ctf = m_is_ctf &&
|
||||
race_manager->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG;
|
||||
const bool is_mode_ctf = m_is_ctf && race_manager->isCTFMode();
|
||||
bool ctf = false;
|
||||
node->get("ctf", &ctf);
|
||||
if ((is_mode_ctf && !ctf) || (!is_mode_ctf && ctf))
|
||||
@ -2651,8 +2647,7 @@ void Track::itemCommand(const XMLNode *node)
|
||||
return;
|
||||
|
||||
// Only do easter eggs in easter egg mode.
|
||||
if(type==Item::ITEM_EASTER_EGG &&
|
||||
!(race_manager->getMinorMode()==RaceManager::MINOR_MODE_EASTER_EGG))
|
||||
if(!(race_manager->isEggHuntMode()) && type==Item::ITEM_EASTER_EGG)
|
||||
{
|
||||
Log::warn("track",
|
||||
"Found easter egg in non-easter-egg mode - ignored.\n");
|
||||
|
Loading…
Reference in New Issue
Block a user