Cleaned up "/" usage (avoid "//"), and in the way fixed problems

with textures that were not found (due to ealier not completely
finished clean ups).


git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@12404 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
hikerstk 2013-01-21 23:27:39 +00:00
parent 21eafebd92
commit bc237e8cef
5 changed files with 29 additions and 31 deletions

View File

@ -850,7 +850,7 @@ bool FileManager::isDirectory(const std::string &path) const
{
struct stat mystat;
std::string s(path);
// At least on windows stat returns an error if there is
// At least on windows stat returns an error if there is
// a '/' at the end of the path.
if(s[s.size()-1]=='/')
s.erase(s.end()-1, s.end());
@ -873,11 +873,7 @@ void FileManager::listFiles(std::set<std::string>& result,
{
result.clear();
#if defined(WIN32)
std::string path = is_full_path ? dir : m_root_dir+"/"+dir;
#else
std::string path = is_full_path ? dir + "/" : m_root_dir+"/"+dir + "/";
#endif
std::string path = is_full_path ? dir : m_root_dir+dir;
#ifndef ANDROID
if(!isDirectory(path))

View File

@ -172,7 +172,7 @@ void KartProperties::load(const std::string &filename, const std::string &node)
m_kart_model = new KartModel(/*is_master*/true);
const XMLNode * root = 0;
m_root = StringUtils::getPath(filename);
m_root = StringUtils::getPath(filename)+"/";
m_ident = StringUtils::getBasename(StringUtils::getPath(filename));
try
{
@ -202,14 +202,14 @@ void KartProperties::load(const std::string &filename, const std::string &node)
// Load material
std::string materials_file = m_root+"/materials.xml";
std::string materials_file = m_root+"materials.xml";
file_manager->pushModelSearchPath (m_root);
file_manager->pushTextureSearchPath(m_root);
// addShared makes sure that these textures/material infos stay in memory
material_manager->addSharedMaterial(materials_file);
m_icon_file = m_root+"/"+m_icon_file;
m_icon_file = m_root+m_icon_file;
// Make permanent is important, since otherwise icons can get deleted
// (e.g. when freeing temp. materials from a track, the last icon
@ -218,7 +218,7 @@ void KartProperties::load(const std::string &filename, const std::string &node)
/*is_full+path*/true,
/*make_permanent*/true);
if(m_minimap_icon_file!="")
m_minimap_icon = irr_driver->getTexture(m_root+"/"+m_minimap_icon_file);
m_minimap_icon = irr_driver->getTexture(m_root+m_minimap_icon_file);
else
m_minimap_icon = NULL;

View File

@ -169,7 +169,7 @@ void KartPropertiesManager::loadAllKarts(bool loading_icon)
for(std::set<std::string>::const_iterator subdir=result.begin();
subdir!=result.end(); subdir++)
{
const bool loaded = loadKart(*dir+"/"+*subdir);
const bool loaded = loadKart(*dir+*subdir);
if (loaded && loading_icon)
{
@ -189,9 +189,8 @@ void KartPropertiesManager::loadAllKarts(bool loading_icon)
bool KartPropertiesManager::loadKart(const std::string &dir)
{
std::string config_filename=dir+"/kart.xml";
FILE *f=fopen(config_filename.c_str(), "r");
if(!f) return false;
fclose(f);
if(!file_manager->fileExists(config_filename))
return false;
KartProperties* kart_properties;
try

View File

@ -81,8 +81,12 @@ Track::Track(const std::string &filename)
m_materials_loaded = false;
m_filename = filename;
m_root = StringUtils::getPath(StringUtils::removeExtension(m_filename));
m_root =
StringUtils::getPath(StringUtils::removeExtension(m_filename));
m_ident = StringUtils::getBasename(m_root);
// The directory should always have a '/' at the end, but getBasename
// above returns "" if a "/" is at the end, so we add the "/" here.
m_root += "/";
m_designer = "";
m_screenshot = "";
m_version = 0;
@ -362,11 +366,11 @@ void Track::loadTrackInfo()
if(xml_node) loadCurves(*xml_node);
// Set the correct paths
m_screenshot = m_root+"/"+m_screenshot;
m_screenshot = m_root+m_screenshot;
delete root;
std::string dir = StringUtils::getPath(m_filename);
std::string easter_name = dir+"/easter_eggs.xml";
std::string easter_name = dir+"easter_eggs.xml";
m_has_easter_eggs = file_manager->fileExists(easter_name);
} // loadTrackInfo
@ -394,7 +398,7 @@ void Track::getMusicInformation(std::vector<std::string>& filenames,
{
for(int i=0; i<(int)filenames.size(); i++)
{
std::string full_path = m_root+"/"+filenames[i];
std::string full_path = m_root+filenames[i];
MusicInformation* mi = music_manager->getMusicInformation(full_path);
if(!mi)
{
@ -438,8 +442,8 @@ void Track::startMusic() const
*/
void Track::loadQuadGraph(unsigned int mode_id, const bool reverse)
{
QuadGraph::create(m_root+"/"+m_all_modes[mode_id].m_quad_name,
m_root+"/"+m_all_modes[mode_id].m_graph_name,
QuadGraph::create(m_root+m_all_modes[mode_id].m_quad_name,
m_root+m_all_modes[mode_id].m_graph_name,
reverse);
QuadGraph::get()->setupPaths();
@ -718,7 +722,7 @@ bool Track::loadMainTrack(const XMLNode &root)
const XMLNode *track_node= root.getNode("track");
std::string model_name;
track_node->get("model", &model_name);
std::string full_path = m_root+"/"+model_name;
std::string full_path = m_root+model_name;
scene::IMesh *mesh = irr_driver->getMesh(full_path);
if(!mesh)
{
@ -921,7 +925,7 @@ bool Track::loadMainTrack(const XMLNode &root)
scene::ISceneNode* scene_node;
model_name="";
n->get("model", &model_name);
full_path = m_root+"/"+model_name;
full_path = m_root+model_name;
// a special challenge orb object for overworld
std::string challenge;
@ -1183,7 +1187,7 @@ void Track::createWater(const XMLNode &node)
{
std::string model_name;
node.get("model", &model_name);
std::string full_path = m_root+"/"+model_name;
std::string full_path = m_root+model_name;
scene::IMesh *mesh = irr_driver->getMesh(full_path);
if (mesh == NULL) return;
@ -1295,7 +1299,7 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
// First read the temporary materials.dat file if it exists
try
{
std::string materials_file = m_root+"/materials.xml";
std::string materials_file = m_root+"materials.xml";
if(m_cache_track)
{
if(!m_materials_loaded)
@ -1312,7 +1316,7 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
}
// Start building the scene graph
std::string path = m_root+"/"+m_all_modes[mode_id].m_scene;
std::string path = m_root+m_all_modes[mode_id].m_scene;
XMLNode *root = file_manager->createXMLTree(path);
// Make sure that we have a track (which is used for raycasts to
@ -1682,7 +1686,7 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
if(easter_world)
{
std::string dir = StringUtils::getPath(m_filename);
easter_world->readData(dir+"/easter_eggs.xml");
easter_world->readData(dir+"easter_eggs.xml");
}
} // loadTrackModel

View File

@ -148,7 +148,7 @@ void TrackManager::loadTrackList()
subdir != dirs.end(); subdir++)
{
if(*subdir=="." || *subdir=="..") continue;
loadTrack(dir+*subdir);
loadTrack(dir+*subdir+"/");
} // for dir in dirs
} // for i <m_track_search_path.size()
} // loadTrackList
@ -160,10 +160,9 @@ void TrackManager::loadTrackList()
*/
bool TrackManager::loadTrack(const std::string& dirname)
{
std::string config_file = dirname+"/track.xml";
FILE *f=fopen(config_file.c_str(),"r");
if(!f) return false;
fclose(f);
std::string config_file = dirname+"track.xml";
if(!file_manager->fileExists(config_file))
return false;
Track *track;