diff options
author | Max Horn | 2010-10-25 23:19:39 +0000 |
---|---|---|
committer | Max Horn | 2010-10-25 23:19:39 +0000 |
commit | a7832856252828450a63fdd1d10c337cc8fb671e (patch) | |
tree | 265a3aae7e0d4dad340ce73194273e3a9800b299 /engines/sword25/package | |
parent | e0d5db0bb822f4772d90cd404fb23e89524f7b3a (diff) | |
download | scummvm-rg350-a7832856252828450a63fdd1d10c337cc8fb671e.tar.gz scummvm-rg350-a7832856252828450a63fdd1d10c337cc8fb671e.tar.bz2 scummvm-rg350-a7832856252828450a63fdd1d10c337cc8fb671e.zip |
SWORD25: Simplify FS 'wrapper' code a bit, add FIXME comments
The save system of this engine currently partially bypasses the
SaveFileManager API, by (abusing) the fact that the Lua engine allows
creating files in arbitrary places (it exposes fopen, fread, fwrite
etc.). This is used to create a 'config.lua' configuration file. This makes it non-portable.
In addition, the filenames used for the savestates ("0.b25s") do not
comply with our naming conventions for engine savestates.
It should be possible to overcome all this, but it might require hacking
the Lua engine; or we could try to replace some of the BS2.5 script
functions with our own, dynamically.
svn-id: r53838
Diffstat (limited to 'engines/sword25/package')
-rw-r--r-- | engines/sword25/package/packagemanager.cpp | 22 | ||||
-rw-r--r-- | engines/sword25/package/packagemanager.h | 17 | ||||
-rw-r--r-- | engines/sword25/package/packagemanager_script.cpp | 10 |
3 files changed, 5 insertions, 44 deletions
diff --git a/engines/sword25/package/packagemanager.cpp b/engines/sword25/package/packagemanager.cpp index ee13cd5920..bd750d0880 100644 --- a/engines/sword25/package/packagemanager.cpp +++ b/engines/sword25/package/packagemanager.cpp @@ -150,7 +150,7 @@ byte *PackageManager::getFile(const Common::String &fileName, uint *fileSizePtr) // Savegame loading logic Common::SaveFileManager *sfm = g_system->getSavefileManager(); Common::InSaveFile *file = sfm->openForLoading( - FileSystemUtil::getInstance().getPathFilename(fileName)); + FileSystemUtil::getPathFilename(fileName)); if (!file) { BS_LOG_ERRORLN("Could not load savegame \"%s\".", fileName.c_str()); return 0; @@ -214,26 +214,6 @@ Common::String PackageManager::getAbsolutePath(const Common::String &fileName) { return normalizePath(fileName, _currentDirectory); } -uint PackageManager::getFileSize(const Common::String &fileName) { - Common::SeekableReadStream *in; - Common::ArchiveMemberPtr fileNode = getArchiveMember(normalizePath(fileName, _currentDirectory)); - if (!fileNode) - return 0; - if (!(in = fileNode->createReadStream())) - return 0; - - uint fileSize = in->size(); - - return fileSize; -} - -uint PackageManager::getFileType(const Common::String &fileName) { - warning("STUB: BS_PackageManager::GetFileType(%s)", fileName.c_str()); - - //return fileNode.isDirectory() ? BS_PackageManager::FT_DIRECTORY : BS_PackageManager::FT_FILE; - return PackageManager::FT_FILE; -} - bool PackageManager::fileExists(const Common::String &fileName) { Common::ArchiveMemberPtr fileNode = getArchiveMember(normalizePath(fileName, _currentDirectory)); return fileNode; diff --git a/engines/sword25/package/packagemanager.h b/engines/sword25/package/packagemanager.h index 96f136dd83..03598012a6 100644 --- a/engines/sword25/package/packagemanager.h +++ b/engines/sword25/package/packagemanager.h @@ -190,23 +190,6 @@ public: int doSearch(Common::ArchiveMemberList &list, const Common::String &filter, const Common::String &path, uint typeFilter = FT_DIRECTORY | FT_FILE); /** - * Returns a file's size - * @param FileName The filename - * @return The file size. If an error occurs, then 0xffffffff is returned. - * @remarks For files in packages, then uncompressed size is returned. - **/ - uint getFileSize(const Common::String &fileName); - - /** - * Returns the type of a file. - * @param FileName The filename - * @return Returns the file type, either (BS_PackageManager::FT_DIRECTORY - * or BS_PackageManager::FT_FILE). - * If the file was not found, then 0 is returned. - */ - uint getFileType(const Common::String &fileName); - - /** * Determines whether a file exists * @param FileName The filename * @return Returns true if the file exists, otherwise false. diff --git a/engines/sword25/package/packagemanager_script.cpp b/engines/sword25/package/packagemanager_script.cpp index afab573511..9367ae3071 100644 --- a/engines/sword25/package/packagemanager_script.cpp +++ b/engines/sword25/package/packagemanager_script.cpp @@ -90,17 +90,15 @@ static int getAbsolutePath(lua_State *L) { } static int getFileSize(lua_State *L) { - PackageManager *pPM = getPM(); - - lua_pushnumber(L, pPM->getFileSize(luaL_checkstring(L, 1))); + // This function apparently is not used by the game scripts + lua_pushnumber(L, 0); return 1; } static int getFileType(lua_State *L) { - PackageManager *pPM = getPM(); - - lua_pushnumber(L, pPM->getFileType(luaL_checkstring(L, 1))); + // This function apparently is not used by the game scripts + lua_pushnumber(L, 0); return 1; } |