Perform sanity checks when loading challenges

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@4872 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2010-02-28 01:06:41 +00:00
parent 91386516e4
commit 8d0827dcd0

View File

@ -116,14 +116,24 @@ ChallengeData::ChallengeData(const std::string& filename)
root->get("energy", &m_energy ); // This is optional root->get("energy", &m_energy ); // This is optional
if(m_major==RaceManager::MAJOR_MODE_SINGLE) if(m_major==RaceManager::MAJOR_MODE_SINGLE)
{ {
if(!root->get("track", &m_track_name )) error("track"); if (!root->get("track", &m_track_name ))
if(!root->get("laps", &m_num_laps ) && {
m_minor!=RaceManager::MINOR_MODE_FOLLOW_LEADER) error("track");
}
if (track_manager->getTrack(m_track_name) == NULL)
{
error("track");
}
if (!root->get("laps", &m_num_laps ) && m_minor!=RaceManager::MINOR_MODE_FOLLOW_LEADER)
{
error("laps"); error("laps");
}
} }
else // GP else // GP
{ {
if(!root->get("gp", &m_gp_id )) error("gp"); if (!root->get("gp", &m_gp_id )) error("gp");
if (grand_prix_manager->getGrandPrix(m_gp_id) == NULL) error("gp");
} }
getUnlocks(root, "unlock-track", UNLOCK_TRACK); getUnlocks(root, "unlock-track", UNLOCK_TRACK);
@ -149,8 +159,7 @@ void ChallengeData::error(const char *id) const
std::cerr << "ChallengeData : " << msg.str() << std::endl; std::cerr << "ChallengeData : " << msg.str() << std::endl;
// FIXME: disable this till all tracks are converted throw std::runtime_error(msg.str());
// FIXME throw std::runtime_error(msg.str());
} // error } // error
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------