void FileUtils::loadFilenameLookupDictionaryFromFile(const std::string &filename) { const std::string fullPath = fullPathForFilename(filename); if (fullPath.length() > 0) { ValueMap dict = FileUtils::getInstance()->getValueMapFromFile(fullPath); if (!dict.empty()) { ValueMap& metadata = dict["metadata"].asValueMap(); int version = metadata["version"].asInt(); if (version != 1) { CCLOG("cocos2d: ERROR: Invalid filenameLookup dictionary version: %d. Filename: %s", version, filename.c_str()); return; } setFilenameLookupDictionary( dict["filenames"].asValueMap()); } } }
void CCFileUtils::loadFilenameLookupDictionaryFromFile(const char* filename) { std::string fullPath = this->fullPathForFilename(filename); if (fullPath.length() > 0) { CCDictionary* pDict = CCDictionary::createWithContentsOfFile(fullPath.c_str()); if (pDict) { CCDictionary* pMetadata = (CCDictionary*)pDict->objectForKey("metadata"); int version = ((CCString*)pMetadata->objectForKey("version"))->intValue(); if (version != 1) { CCLOG("cocos2d: ERROR: Invalid filenameLookup dictionary version: %ld. Filename: %s", (long)version, filename); return; } setFilenameLookupDictionary((CCDictionary*)pDict->objectForKey("filenames")); } } }
void TestFilenameLookup::onEnter() { FileUtilsDemo::onEnter(); auto sharedFileUtils = FileUtils::getInstance(); ValueMap dict; dict["grossini.bmp"] = Value("Images/grossini.png"); dict["grossini.xcf"] = Value("Images/grossini.png"); sharedFileUtils->setFilenameLookupDictionary(dict); // Instead of loading carlitos.xcf, it will load grossini.png auto sprite = Sprite::create("grossini.xcf"); this->addChild(sprite); auto s = Director::getInstance()->getWinSize(); sprite->setPosition(s.width/2, s.height/2); }