diff options
author | Chris Apers | 2006-01-23 19:38:43 +0000 |
---|---|---|
committer | Chris Apers | 2006-01-23 19:38:43 +0000 |
commit | 8dede76784271659341c239d39163abe158a8fac (patch) | |
tree | 4be095148f6f92f700749312c280413be7df1ac2 /backends/PalmOS | |
parent | 7935b9d946de1a502789f04abe824d57f907fe27 (diff) | |
download | scummvm-rg350-8dede76784271659341c239d39163abe158a8fac.tar.gz scummvm-rg350-8dede76784271659341c239d39163abe158a8fac.tar.bz2 scummvm-rg350-8dede76784271659341c239d39163abe158a8fac.zip |
Updated and moved to be_save.cpp
svn-id: r20148
Diffstat (limited to 'backends/PalmOS')
-rw-r--r-- | backends/PalmOS/Src/palmsave.cpp | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/backends/PalmOS/Src/palmsave.cpp b/backends/PalmOS/Src/palmsave.cpp deleted file mode 100644 index 012dc009bc..0000000000 --- a/backends/PalmOS/Src/palmsave.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001 Ludvig Strigeus - * Copyright (C) 2001-2006 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $Header$ - * - */ - -#include "stdafx.h" -#include "common/savefile.h" -#include "palm.h" - -// SaveFile class - -class OldPalmSaveFile : public Common::SaveFile { -private: - FILE *fh; -public: - OldPalmSaveFile(const char *filename, bool saveOrLoad) { - fh = ::fopen(filename, (saveOrLoad? "wb" : "rb")); - } - ~OldPalmSaveFile() { - if (fh) ::fclose(fh); - } - - bool eos() const { return feof(fh) != 0; } - bool ioFailed() const { return ferror(fh) != 0; } - void clearIOFailed() { clearerr(fh); } - - bool isOpen() const { return fh != NULL; } - - uint32 read(void *buf, uint32 size); - uint32 write(const void *buf, uint32 size); - - void skip(uint32 offset) { - ::fseek(fh, offset, SEEK_CUR); - } -}; - -uint32 OldPalmSaveFile::read(void *buf, uint32 size) { - // we must return the size, where fread return nitems upon success ( 1 <=> size) - if (fh) return (::fread(buf, 1, size, fh)); - return 0; -} - -uint32 OldPalmSaveFile::write(const void *buf, uint32 size) { - // we must return the size, where fwrite return nitems upon success ( 1 <=> size) - if (fh) return ::fwrite(buf, 1, size, fh); - return 0; -} - - - - - -// SaveFileManager class - -class OldPalmSaveFileManager : public Common::SaveFileManager { -public: - virtual Common::OutSaveFile *openForSaving(const char *filename) { - return openSavefile(filename, true); - } - virtual Common::InSaveFile *openForLoading(const char *filename) { - return openSavefile(filename, false); - } - - Common::SaveFile *openSavefile(const char *filename, bool saveOrLoad); - void listSavefiles(const char *prefix, bool *marks, int num); - -protected: - Common::SaveFile *makeSaveFile(const char *filename, bool saveOrLoad); -}; - -Common::SaveFile *OldPalmSaveFileManager::openSavefile(const char *filename, bool saveOrLoad) { - char buf[256]; - - strncpy(buf, getSavePath(), sizeof(buf)); - strncat(buf, filename, sizeof(buf)); - - return makeSaveFile(buf, saveOrLoad); -} - -void OldPalmSaveFileManager::listSavefiles(const char *prefix, bool *marks, int num) { - FileRef fileRef; - // try to open the dir - Err e = VFSFileOpen(gVars->VFS.volRefNum, getSavePath(), vfsModeRead, &fileRef); - memset(marks, false, num*sizeof(bool)); - - if (e != errNone) - return; - - // enumerate all files - UInt32 dirEntryIterator = vfsIteratorStart; - Char filename[32]; - FileInfoType info = {0, filename, 32}; - UInt16 length = StrLen(prefix); - int slot = 0; - - while (dirEntryIterator != vfsIteratorStop) { - e = VFSDirEntryEnumerate (fileRef, &dirEntryIterator, &info); - - if (e != expErrEnumerationEmpty) { // there is something - - if (StrLen(info.nameP) == (length + 2)) { // consider max 99, filename length is ok - if (StrNCaselessCompare(prefix, info.nameP, length) == 0) { // this seems to be a save file - if (isdigit(info.nameP[length]) && isdigit(info.nameP[length+1])) { - - slot = StrAToI(filename + length); - if (slot >= 0 && slot < num) - *(marks+slot) = true; - - } - } - } - - } - } - - VFSFileClose(fileRef); -} - -Common::SaveFile *OldPalmSaveFileManager::makeSaveFile(const char *filename, bool saveOrLoad) { - OldPalmSaveFile *sf = new OldPalmSaveFile(filename, saveOrLoad); - - if (!sf->isOpen()) { - delete sf; - sf = 0; - } - return sf; -} - -// OSystem -Common::SaveFileManager *OSystem_PALMOS::getSavefileManager() { - return new OldPalmSaveFileManager(); -} |