Changed m_grand_prix of RaceManager to be an object (and not a pointer to
an object) anymore, which fixes a memory leak (and I also reverted my quick fix from last night de7ceb0c2d6e31a25651993e77cd945e1b3bb126 to fix a crash, which now not necessary anymore.
This commit is contained in:
parent
887438a0d0
commit
32707b8f88
@ -458,7 +458,7 @@ bool ChallengeData::isGPFulfilled() const
|
|||||||
// is no world objects to query at this stage.
|
// is no world objects to query at this stage.
|
||||||
if (race_manager->getMajorMode() != RaceManager::MAJOR_MODE_GRAND_PRIX ||
|
if (race_manager->getMajorMode() != RaceManager::MAJOR_MODE_GRAND_PRIX ||
|
||||||
race_manager->getMinorMode() != m_minor ||
|
race_manager->getMinorMode() != m_minor ||
|
||||||
race_manager->getGrandPrix()->getId() != m_gp_id ||
|
race_manager->getGrandPrix().getId() != m_gp_id ||
|
||||||
race_manager->getNumberOfKarts() < (unsigned int)m_num_karts[d] ||
|
race_manager->getNumberOfKarts() < (unsigned int)m_num_karts[d] ||
|
||||||
race_manager->getNumPlayers() > 1) return false;
|
race_manager->getNumPlayers() > 1) return false;
|
||||||
|
|
||||||
|
@ -847,7 +847,7 @@ int handleCmdLine()
|
|||||||
if(CommandLine::has("--gp", &s))
|
if(CommandLine::has("--gp", &s))
|
||||||
{
|
{
|
||||||
race_manager->setMajorMode(RaceManager::MAJOR_MODE_GRAND_PRIX);
|
race_manager->setMajorMode(RaceManager::MAJOR_MODE_GRAND_PRIX);
|
||||||
GrandPrixData *gp = grand_prix_manager->getGrandPrix(s);
|
const GrandPrixData *gp = grand_prix_manager->getGrandPrix(s);
|
||||||
|
|
||||||
if (!gp)
|
if (!gp)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,6 @@ RaceManager::RaceManager()
|
|||||||
setTrack("jungle");
|
setTrack("jungle");
|
||||||
m_default_ai_list.clear();
|
m_default_ai_list.clear();
|
||||||
setNumLocalPlayers(0);
|
setNumLocalPlayers(0);
|
||||||
m_grand_prix = new GrandPrixData();
|
|
||||||
} // RaceManager
|
} // RaceManager
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -284,9 +283,9 @@ void RaceManager::startNew(bool from_overworld)
|
|||||||
if(m_major_mode==MAJOR_MODE_GRAND_PRIX)
|
if(m_major_mode==MAJOR_MODE_GRAND_PRIX)
|
||||||
{
|
{
|
||||||
// GP: get tracks, laps and reverse info from grand prix
|
// GP: get tracks, laps and reverse info from grand prix
|
||||||
m_tracks = m_grand_prix->getTrackNames();
|
m_tracks = m_grand_prix.getTrackNames();
|
||||||
m_num_laps = m_grand_prix->getLaps();
|
m_num_laps = m_grand_prix.getLaps();
|
||||||
m_reverse_track = m_grand_prix->getReverse();
|
m_reverse_track = m_grand_prix.getReverse();
|
||||||
}
|
}
|
||||||
//assert(m_player_karts.size() > 0);
|
//assert(m_player_karts.size() > 0);
|
||||||
|
|
||||||
@ -349,7 +348,7 @@ void RaceManager::startNew(bool from_overworld)
|
|||||||
SavedGrandPrix* gp = SavedGrandPrix::getSavedGP( StateManager::get()
|
SavedGrandPrix* gp = SavedGrandPrix::getSavedGP( StateManager::get()
|
||||||
->getActivePlayerProfile(0)
|
->getActivePlayerProfile(0)
|
||||||
->getUniqueID(),
|
->getUniqueID(),
|
||||||
m_grand_prix->getId(),
|
m_grand_prix.getId(),
|
||||||
m_difficulty,
|
m_difficulty,
|
||||||
m_num_karts,
|
m_num_karts,
|
||||||
m_player_karts.size());
|
m_player_karts.size());
|
||||||
@ -500,7 +499,7 @@ void RaceManager::next()
|
|||||||
SavedGrandPrix::getSavedGP(StateManager::get()
|
SavedGrandPrix::getSavedGP(StateManager::get()
|
||||||
->getActivePlayerProfile(0)
|
->getActivePlayerProfile(0)
|
||||||
->getUniqueID(),
|
->getUniqueID(),
|
||||||
m_grand_prix->getId(),
|
m_grand_prix.getId(),
|
||||||
m_difficulty,
|
m_difficulty,
|
||||||
m_num_karts,
|
m_num_karts,
|
||||||
m_player_karts.size());
|
m_player_karts.size());
|
||||||
@ -517,7 +516,7 @@ void RaceManager::next()
|
|||||||
new SavedGrandPrix(
|
new SavedGrandPrix(
|
||||||
StateManager::get()->getActivePlayerProfile(0)
|
StateManager::get()->getActivePlayerProfile(0)
|
||||||
->getUniqueID(),
|
->getUniqueID(),
|
||||||
m_grand_prix->getId(),
|
m_grand_prix.getId(),
|
||||||
m_difficulty,
|
m_difficulty,
|
||||||
m_player_karts.size(),
|
m_player_karts.size(),
|
||||||
m_track_number,
|
m_track_number,
|
||||||
@ -636,7 +635,7 @@ void RaceManager::exitRace(bool delete_world)
|
|||||||
SavedGrandPrix::getSavedGP(StateManager::get()
|
SavedGrandPrix::getSavedGP(StateManager::get()
|
||||||
->getActivePlayerProfile(0)
|
->getActivePlayerProfile(0)
|
||||||
->getUniqueID(),
|
->getUniqueID(),
|
||||||
m_grand_prix->getId(),
|
m_grand_prix.getId(),
|
||||||
m_difficulty,
|
m_difficulty,
|
||||||
m_num_karts,
|
m_num_karts,
|
||||||
m_player_karts.size());
|
m_player_karts.size());
|
||||||
@ -768,7 +767,7 @@ void RaceManager::rerunRace()
|
|||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void RaceManager::startGP(GrandPrixData* gp, bool from_overworld,
|
void RaceManager::startGP(const GrandPrixData* gp, bool from_overworld,
|
||||||
bool continue_saved_gp)
|
bool continue_saved_gp)
|
||||||
{
|
{
|
||||||
assert(gp != NULL);
|
assert(gp != NULL);
|
||||||
|
@ -324,7 +324,7 @@ private:
|
|||||||
* same list of AIs is used for all tracks of a GP. */
|
* same list of AIs is used for all tracks of a GP. */
|
||||||
std::vector<std::string> m_ai_kart_list;
|
std::vector<std::string> m_ai_kart_list;
|
||||||
int m_track_number;
|
int m_track_number;
|
||||||
GrandPrixData* m_grand_prix;
|
GrandPrixData m_grand_prix;
|
||||||
int m_num_karts;
|
int m_num_karts;
|
||||||
unsigned int m_num_finished_karts;
|
unsigned int m_num_finished_karts;
|
||||||
unsigned int m_num_finished_players;
|
unsigned int m_num_finished_players;
|
||||||
@ -410,9 +410,9 @@ public:
|
|||||||
void setDifficulty(Difficulty diff);
|
void setDifficulty(Difficulty diff);
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
void setGrandPrix(GrandPrixData* gp)
|
void setGrandPrix(const GrandPrixData *gp)
|
||||||
{
|
{
|
||||||
m_grand_prix = gp;
|
m_grand_prix = *gp;
|
||||||
m_coin_target = 0;
|
m_coin_target = 0;
|
||||||
}
|
}
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
@ -525,7 +525,7 @@ public:
|
|||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
const std::string& getTrackName() const { return m_tracks[m_track_number];}
|
const std::string& getTrackName() const { return m_tracks[m_track_number];}
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
GrandPrixData* getGrandPrix() const { return m_grand_prix; }
|
const GrandPrixData& getGrandPrix() const { return m_grand_prix; }
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
unsigned int getFinishedKarts() const { return m_num_finished_karts; }
|
unsigned int getFinishedKarts() const { return m_num_finished_karts; }
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
@ -682,7 +682,7 @@ public:
|
|||||||
* \brief Higher-level method to start a GP without having to care about
|
* \brief Higher-level method to start a GP without having to care about
|
||||||
* the exact startup sequence
|
* the exact startup sequence
|
||||||
*/
|
*/
|
||||||
void startGP(GrandPrixData* gp, bool from_overworld,
|
void startGP(const GrandPrixData* gp, bool from_overworld,
|
||||||
bool continue_saved_gp);
|
bool continue_saved_gp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -92,7 +92,7 @@ void RaceResultGUI::init()
|
|||||||
|
|
||||||
// Calculate screenshot scrolling parameters
|
// Calculate screenshot scrolling parameters
|
||||||
const std::vector<std::string> tracks =
|
const std::vector<std::string> tracks =
|
||||||
race_manager->getGrandPrix()->getTrackNames();
|
race_manager->getGrandPrix().getTrackNames();
|
||||||
int n_tracks = tracks.size();
|
int n_tracks = tracks.size();
|
||||||
int currentTrack = race_manager->getTrackNumber();
|
int currentTrack = race_manager->getTrackNumber();
|
||||||
m_start_track = currentTrack;
|
m_start_track = currentTrack;
|
||||||
@ -208,7 +208,7 @@ void RaceResultGUI::enableAllButtons()
|
|||||||
void RaceResultGUI::eventCallback(GUIEngine::Widget* widget,
|
void RaceResultGUI::eventCallback(GUIEngine::Widget* widget,
|
||||||
const std::string& name, const int playerID)
|
const std::string& name, const int playerID)
|
||||||
{
|
{
|
||||||
int n_tracks = race_manager->getGrandPrix()->getNumberOfTracks();
|
int n_tracks = race_manager->getGrandPrix().getNumberOfTracks();
|
||||||
if (name == "up_button" && n_tracks > m_max_tracks && m_start_track > 0)
|
if (name == "up_button" && n_tracks > m_max_tracks && m_start_track > 0)
|
||||||
{
|
{
|
||||||
m_start_track--;
|
m_start_track--;
|
||||||
@ -1121,7 +1121,7 @@ void RaceResultGUI::enableGPProgress()
|
|||||||
status_label->m_h = font_height;
|
status_label->m_h = font_height;
|
||||||
status_label->add();
|
status_label->add();
|
||||||
status_label->setText(_("Track %i/%i", currentTrack + 1,
|
status_label->setText(_("Track %i/%i", currentTrack + 1,
|
||||||
race_manager->getGrandPrix()->getNumberOfTracks()), true);
|
race_manager->getGrandPrix().getNumberOfTracks()), true);
|
||||||
addGPProgressWidget(status_label);
|
addGPProgressWidget(status_label);
|
||||||
y = (status_label->m_y + status_label->m_h + 5);
|
y = (status_label->m_y + status_label->m_h + 5);
|
||||||
|
|
||||||
@ -1316,7 +1316,7 @@ void RaceResultGUI::displayHighScores()
|
|||||||
void RaceResultGUI::displayScreenShots()
|
void RaceResultGUI::displayScreenShots()
|
||||||
{
|
{
|
||||||
const std::vector<std::string> tracks =
|
const std::vector<std::string> tracks =
|
||||||
race_manager->getGrandPrix()->getTrackNames();
|
race_manager->getGrandPrix().getTrackNames();
|
||||||
int currentTrack = race_manager->getTrackNumber();
|
int currentTrack = race_manager->getTrackNumber();
|
||||||
|
|
||||||
int n_sshot = 1;
|
int n_sshot = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user