gs2d::str_type::string ETHSpriteDensityManager::ChooseSpriteVersion(const gs2d::str_type::string& fullFilePath, const gs2d::VideoPtr& video, ETHSpriteDensityManager::DENSITY_LEVEL& densityLevel) { const Platform::FileManagerPtr fileManager = video->GetFileManager(); const bool shouldUseFullHdResources = ShouldUseFullHdResources(video); if (shouldUseFullHdResources) { const string fullHdVersionFileName(AssembleResourceName(fullFilePath, FULL_HD_VERSION_PATH_NAME)); if (fileManager->FileExists(fullHdVersionFileName)) { densityLevel = ETHSpriteDensityManager::FULL_HD; return fullHdVersionFileName; } } if (ShouldUseHdResources(video) || shouldUseFullHdResources) { const string hdVersionFileName(AssembleResourceName(fullFilePath, HD_VERSION_PATH_NAME)); if (fileManager->FileExists(hdVersionFileName)) { densityLevel = ETHSpriteDensityManager::HD; return hdVersionFileName; } } densityLevel = ETHSpriteDensityManager::DEFAULT; return fullFilePath; }
bool ETHScene::LoadFromFile(const str_type::string& fileName) { Platform::FileManagerPtr fileManager = m_provider->GetFileManager(); if (!fileManager->FileExists(fileName)) { ETH_STREAM_DECL(ss) << GS_L("ETHScene::Open: file not found (") << fileName << GS_L(")"); m_provider->Log(ss.str(), Platform::FileLogger::ERROR); return false; } m_minSceneHeight = 0.0f; m_maxSceneHeight = m_provider->GetVideo()->GetScreenSizeF().y; // Read the header and check if the file is valid TiXmlDocument doc(fileName); str_type::string content; fileManager->GetUTF16FileString(fileName, content); if (!doc.LoadFile(content, TIXML_ENCODING_LEGACY)) { ETH_STREAM_DECL(ss) << GS_L("ETHScene::Open: file found, but parsing failed (") << fileName << GS_L(")"); m_provider->Log(ss.str(), Platform::FileLogger::ERROR); return false; } TiXmlHandle hDoc(&doc); TiXmlHandle hRoot(0); TiXmlElement *pElement = hDoc.FirstChildElement().Element(); if (!pElement) { ETH_STREAM_DECL(ss) << GS_L("ETHScene::Open: couldn't find root element (") << fileName << GS_L(")"); m_provider->Log(ss.str(), Platform::FileLogger::ERROR); return false; } return ReadFromXMLFile(pElement); }
bool FileExists(const str_type::string& file, const Platform::FileManagerPtr& fileManager) { return fileManager->FileExists(file); }