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.
|
||||
if (race_manager->getMajorMode() != RaceManager::MAJOR_MODE_GRAND_PRIX ||
|
||||
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->getNumPlayers() > 1) return false;
|
||||
|
||||
|
@ -847,7 +847,7 @@ int handleCmdLine()
|
||||
if(CommandLine::has("--gp", &s))
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
@ -75,7 +75,6 @@ RaceManager::RaceManager()
|
||||
setTrack("jungle");
|
||||
m_default_ai_list.clear();
|
||||
setNumLocalPlayers(0);
|
||||
m_grand_prix = new GrandPrixData();
|
||||
} // RaceManager
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -284,9 +283,9 @@ void RaceManager::startNew(bool from_overworld)
|
||||
if(m_major_mode==MAJOR_MODE_GRAND_PRIX)
|
||||
{
|
||||
// GP: get tracks, laps and reverse info from grand prix
|
||||
m_tracks = m_grand_prix->getTrackNames();
|
||||
m_num_laps = m_grand_prix->getLaps();
|
||||
m_reverse_track = m_grand_prix->getReverse();
|
||||
m_tracks = m_grand_prix.getTrackNames();
|
||||
m_num_laps = m_grand_prix.getLaps();
|
||||
m_reverse_track = m_grand_prix.getReverse();
|
||||
}
|
||||
//assert(m_player_karts.size() > 0);
|
||||
|
||||
@ -349,7 +348,7 @@ void RaceManager::startNew(bool from_overworld)
|
||||
SavedGrandPrix* gp = SavedGrandPrix::getSavedGP( StateManager::get()
|
||||
->getActivePlayerProfile(0)
|
||||
->getUniqueID(),
|
||||
m_grand_prix->getId(),
|
||||
m_grand_prix.getId(),
|
||||
m_difficulty,
|
||||
m_num_karts,
|
||||
m_player_karts.size());
|
||||
@ -500,7 +499,7 @@ void RaceManager::next()
|
||||
SavedGrandPrix::getSavedGP(StateManager::get()
|
||||
->getActivePlayerProfile(0)
|
||||
->getUniqueID(),
|
||||
m_grand_prix->getId(),
|
||||
m_grand_prix.getId(),
|
||||
m_difficulty,
|
||||
m_num_karts,
|
||||
m_player_karts.size());
|
||||
@ -517,7 +516,7 @@ void RaceManager::next()
|
||||
new SavedGrandPrix(
|
||||
StateManager::get()->getActivePlayerProfile(0)
|
||||
->getUniqueID(),
|
||||
m_grand_prix->getId(),
|
||||
m_grand_prix.getId(),
|
||||
m_difficulty,
|
||||
m_player_karts.size(),
|
||||
m_track_number,
|
||||
@ -636,7 +635,7 @@ void RaceManager::exitRace(bool delete_world)
|
||||
SavedGrandPrix::getSavedGP(StateManager::get()
|
||||
->getActivePlayerProfile(0)
|
||||
->getUniqueID(),
|
||||
m_grand_prix->getId(),
|
||||
m_grand_prix.getId(),
|
||||
m_difficulty,
|
||||
m_num_karts,
|
||||
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)
|
||||
{
|
||||
assert(gp != NULL);
|
||||
|
@ -324,7 +324,7 @@ private:
|
||||
* same list of AIs is used for all tracks of a GP. */
|
||||
std::vector<std::string> m_ai_kart_list;
|
||||
int m_track_number;
|
||||
GrandPrixData* m_grand_prix;
|
||||
GrandPrixData m_grand_prix;
|
||||
int m_num_karts;
|
||||
unsigned int m_num_finished_karts;
|
||||
unsigned int m_num_finished_players;
|
||||
@ -410,9 +410,9 @@ public:
|
||||
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;
|
||||
}
|
||||
// ------------------------------------------------------------------------
|
||||
@ -525,7 +525,7 @@ public:
|
||||
// ------------------------------------------------------------------------
|
||||
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; }
|
||||
// ------------------------------------------------------------------------
|
||||
@ -682,7 +682,7 @@ public:
|
||||
* \brief Higher-level method to start a GP without having to care about
|
||||
* the exact startup sequence
|
||||
*/
|
||||
void startGP(GrandPrixData* gp, bool from_overworld,
|
||||
void startGP(const GrandPrixData* gp, bool from_overworld,
|
||||
bool continue_saved_gp);
|
||||
|
||||
/**
|
||||
|
@ -92,7 +92,7 @@ void RaceResultGUI::init()
|
||||
|
||||
// Calculate screenshot scrolling parameters
|
||||
const std::vector<std::string> tracks =
|
||||
race_manager->getGrandPrix()->getTrackNames();
|
||||
race_manager->getGrandPrix().getTrackNames();
|
||||
int n_tracks = tracks.size();
|
||||
int currentTrack = race_manager->getTrackNumber();
|
||||
m_start_track = currentTrack;
|
||||
@ -208,7 +208,7 @@ void RaceResultGUI::enableAllButtons()
|
||||
void RaceResultGUI::eventCallback(GUIEngine::Widget* widget,
|
||||
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)
|
||||
{
|
||||
m_start_track--;
|
||||
@ -1121,7 +1121,7 @@ void RaceResultGUI::enableGPProgress()
|
||||
status_label->m_h = font_height;
|
||||
status_label->add();
|
||||
status_label->setText(_("Track %i/%i", currentTrack + 1,
|
||||
race_manager->getGrandPrix()->getNumberOfTracks()), true);
|
||||
race_manager->getGrandPrix().getNumberOfTracks()), true);
|
||||
addGPProgressWidget(status_label);
|
||||
y = (status_label->m_y + status_label->m_h + 5);
|
||||
|
||||
@ -1316,7 +1316,7 @@ void RaceResultGUI::displayHighScores()
|
||||
void RaceResultGUI::displayScreenShots()
|
||||
{
|
||||
const std::vector<std::string> tracks =
|
||||
race_manager->getGrandPrix()->getTrackNames();
|
||||
race_manager->getGrandPrix().getTrackNames();
|
||||
int currentTrack = race_manager->getTrackNumber();
|
||||
|
||||
int n_sshot = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user