Asset* AssetSystem::createAsset(const char* pFileName) { Asset* asset = NULL; DLOG(INFO) << "New asset: " << pFileName; // does the file exist? if (::access(pFileName, R_OK) == 0) { const char* extension = strrchr(pFileName, '.'); ASSERT(extension != NULL, "Filename passed with no extension!"); if (extension) { DLOG(INFO) << "Extension is " << extension; if (strcasecmp(extension + 1, "xml") == 0) { asset = ObjectBuilderAsset::factory(); } else if (strcasecmp(extension + 1, "zip") == 0) { asset = O3DSceneAsset::factory(); } if (asset) { asset->setPath(pFileName); DLOG(INFO) << "Generated new Asset record for " << pFileName; } } } else { // no such file! DLOG(ERROR) << "Asset file not found: " << pFileName; } return asset; }