void OSystem_SDL::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { #ifdef DATA_PATH // Add the global DATA_PATH to the directory search list // FIXME: We use depth = 4 for now, to match the old code. May want to change that Common::FSNode dataNode(DATA_PATH); if (dataNode.exists() && dataNode.isDirectory()) { s.add(DATA_PATH, new Common::FSDirectory(dataNode, 4), priority); } #endif #ifdef MACOSX // Get URL of the Resource directory of the .app bundle CFURLRef fileUrl = CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()); if (fileUrl) { // Try to convert the URL to an absolute path UInt8 buf[MAXPATHLEN]; if (CFURLGetFileSystemRepresentation(fileUrl, true, buf, sizeof(buf))) { // Success: Add it to the search path Common::String bundlePath((const char *)buf); s.add("__OSX_BUNDLE__", new Common::FSDirectory(bundlePath), priority); } CFRelease(fileUrl); } #endif }
void OSystem_GP2XWIZ::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { /* Setup default extra data paths for engine data files and plugins */ char workDirName[PATH_MAX+1]; if (getcwd(workDirName, PATH_MAX) == NULL) { error("Error: Could not obtain current working directory."); } Common::FSNode workdirNode(workDirName); if (workdirNode.exists() && workdirNode.isDirectory()) { s.add("__GP2XWIZ_WORKDIR__", new Common::FSDirectory(workDirName), priority); } char enginedataPath[PATH_MAX+1]; strcpy(enginedataPath, workDirName); strcat(enginedataPath, "/engine-data"); Common::FSNode engineNode(enginedataPath); if (engineNode.exists() && engineNode.isDirectory()) { s.add("__GP2XWIZ_ENGDATA__", new Common::FSDirectory(enginedataPath), priority); } char pluginsPath[PATH_MAX+1]; strcpy(pluginsPath, workDirName); strcat(pluginsPath, "/plugins"); Common::FSNode pluginsNode(pluginsPath); if (pluginsNode.exists() && pluginsNode.isDirectory()) { s.add("__GP2XWIZ_PLUGINS__", new Common::FSDirectory(pluginsPath), priority); } }
void JNI::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { JNIEnv *env = JNI::getEnv(); s.add("ASSET", _asset_archive, priority, false); jobjectArray array = (jobjectArray)env->CallObjectMethod(_jobj, _MID_getSysArchives); if (env->ExceptionCheck()) { LOGE("Error finding system archive path"); env->ExceptionDescribe(); env->ExceptionClear(); return; } jsize size = env->GetArrayLength(array); for (jsize i = 0; i < size; ++i) { jstring path_obj = (jstring)env->GetObjectArrayElement(array, i); const char *path = env->GetStringUTFChars(path_obj, 0); if (path != 0) { s.addDirectory(path, path, priority); env->ReleaseStringUTFChars(path_obj, path); } env->DeleteLocalRef(path_obj); } }
void OSystem_SDL::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { #ifdef DATA_PATH // Add the global DATA_PATH to the directory search list // FIXME: We use depth = 4 for now, to match the old code. May want to change that Common::FSNode dataNode(DATA_PATH); if (dataNode.exists() && dataNode.isDirectory()) { s.add(DATA_PATH, new Common::FSDirectory(dataNode, 4), priority); } #endif }
void OSystem_IPHONE::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { // Get URL of the Resource directory of the .app bundle CFURLRef fileUrl = CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()); if (fileUrl) { // Try to convert the URL to an absolute path UInt8 buf[MAXPATHLEN]; if (CFURLGetFileSystemRepresentation(fileUrl, true, buf, sizeof(buf))) { // Success: Add it to the search path Common::String bundlePath((const char *)buf); s.add("__OSX_BUNDLE__", new Common::FSDirectory(bundlePath), priority); } CFRelease(fileUrl); } }
void OSystem_POSIX::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { #ifdef DATA_PATH const char *snap = getenv("SNAP"); if (snap) { Common::String dataPath = Common::String(snap) + DATA_PATH; Common::FSNode dataNode(dataPath); if (dataNode.exists() && dataNode.isDirectory()) { // This is the same priority which is used for the data path (below), // but we insert this one first, so it will be searched first. s.add(dataPath, new Common::FSDirectory(dataNode, 4), priority); } } #endif // For now, we always add the data path, just in case SNAP doesn't make sense. OSystem_SDL::addSysArchivesToSearchSet(s, priority); }
void OSystem_OP::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { /* Setup default extra data paths for engine data files and plugins */ char workDirName[PATH_MAX+1]; if (getcwd(workDirName, PATH_MAX) == NULL) { error("Error: Could not obtain current working directory."); } char enginedataPath[PATH_MAX+1]; strcpy(enginedataPath, workDirName); strcat(enginedataPath, "/../data"); printf("Default engine data directory: %s\n", enginedataPath); Common::FSNode engineNode(enginedataPath); if (engineNode.exists() && engineNode.isDirectory()) { s.add("__OP_ENGDATA__", new Common::FSDirectory(enginedataPath), priority); } }
void OSystem_SDL_Symbian::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { Common::FSNode pluginsNode(Symbian::GetExecutablePath()); if (pluginsNode.exists() && pluginsNode.isDirectory()) { s.add("SYMBIAN_DATAFOLDER", new Common::FSDirectory(Symbian::GetExecutablePath()), priority); } }
void OSystem_Win32::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { s.add("Win32Res", new Win32ResourceArchive(), priority); OSystem_SDL::addSysArchivesToSearchSet(s, priority); }