diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-03-01 02:19:37 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-03-01 02:19:37 +0300 |
commit | 0f172abb004bed203f8bf329e4f43eb174a8a58c (patch) | |
tree | 3ad72517bf0a64a646c7360cf027234c7fc68737 /src/fs/physfs/virtfs.cpp | |
parent | af8edd3f2f53cb2ece9a7b1f6a62bd5e7ce57a9a (diff) | |
download | manaverse-0f172abb004bed203f8bf329e4f43eb174a8a58c.tar.gz manaverse-0f172abb004bed203f8bf329e4f43eb174a8a58c.tar.bz2 manaverse-0f172abb004bed203f8bf329e4f43eb174a8a58c.tar.xz manaverse-0f172abb004bed203f8bf329e4f43eb174a8a58c.zip |
Fix compilation without physfs.
Also split fs related files to virtfs and physfs.
Diffstat (limited to 'src/fs/physfs/virtfs.cpp')
-rw-r--r-- | src/fs/physfs/virtfs.cpp | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/src/fs/physfs/virtfs.cpp b/src/fs/physfs/virtfs.cpp new file mode 100644 index 000000000..7a1484081 --- /dev/null +++ b/src/fs/physfs/virtfs.cpp @@ -0,0 +1,207 @@ +/* + * The ManaPlus Client + * Copyright (C) 2013-2017 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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 + * 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, see <http://www.gnu.org/licenses/>. + */ + +#include "fs/virtfs.h" + +#include "fs/physfs/virtfsphys.h" +#include "fs/virtfile.h" +#include "fs/virtfsfuncs.h" +#include "fs/virtlist.h" + +#include "debug.h" + +const char *dirSeparator = nullptr; + +namespace VirtFs +{ + void init(const std::string &restrict name) + { + VirtFsPhys::init(name); + updateDirSeparator(); + } + + void updateDirSeparator() + { + dirSeparator = VirtFsPhys::getDirSeparator(); + } + + const char *getDirSeparator() + { + return dirSeparator; + } + + const char *getBaseDir() + { + return VirtFsPhys::getBaseDir(); + } + + const char *getUserDir() + { + return VirtFsPhys::getUserDir(); + } + + bool exists(const std::string &restrict name) + { + return VirtFsPhys::exists(name); + } + + VirtList *enumerateFiles(std::string dirName) + { + return VirtFsPhys::enumerateFiles(dirName); + } + + bool isDirectory(std::string name) + { + return VirtFsPhys::isDirectory(name); + } + + bool isSymbolicLink(const std::string &restrict name) + { + return VirtFsPhys::isSymbolicLink(name); + } + + void freeList(VirtList *restrict const handle) + { + delete handle; + } + + VirtFile *openRead(std::string filename) + { + return VirtFsPhys::openRead(filename); + } + + VirtFile *openWrite(const std::string &restrict filename) + { + return VirtFsPhys::openWrite(filename); + } + + VirtFile *openAppend(const std::string &restrict filename) + { + return VirtFsPhys::openAppend(filename); + } + + bool setWriteDir(const std::string &restrict newDir) + { + return VirtFsPhys::setWriteDir(newDir); + } + + bool addDirToSearchPath(const std::string &restrict newDir, + const Append append) + { + return VirtFsPhys::addDirToSearchPath(newDir, append); + } + + bool removeDirFromSearchPath(const std::string &restrict oldDir) + { + return VirtFsPhys::removeDirFromSearchPath(oldDir); + } + + bool addZipToSearchPath(const std::string &restrict newDir, + const Append append) + { + return VirtFsPhys::addZipToSearchPath(newDir, append); + } + + bool removeZipFromSearchPath(const std::string &restrict oldDir) + { + return VirtFsPhys::removeZipFromSearchPath(oldDir); + } + + std::string getRealDir(std::string filename) + { + return VirtFsPhys::getRealDir(filename); + } + + bool mkdir(const std::string &restrict dirname) + { + return VirtFsPhys::mkdir(dirname); + } + + bool remove(const std::string &restrict filename) + { + return VirtFsPhys::remove(filename); + } + + bool deinit() + { + return VirtFsPhys::deinit(); + } + + void permitLinks(const bool val) + { + VirtFsPhys::permitLinks(val); + } + + const char *getLastError() + { + return VirtFsPhys::getLastError(); + } + + int close(VirtFile *restrict const file) + { + if (file == nullptr) + return 0; + return file->funcs->close(file); + } + + int64_t read(VirtFile *restrict const file, + void *restrict const buffer, + const uint32_t objSize, + const uint32_t objCount) + { + return file->funcs->read(file, + buffer, + objSize, + objCount); + } + + int64_t write(VirtFile *restrict const file, + const void *restrict const buffer, + const uint32_t objSize, + const uint32_t objCount) + { + return file->funcs->write(file, + buffer, + objSize, + objCount); + } + + int64_t fileLength(VirtFile *restrict const file) + { + return file->funcs->fileLength(file); + } + + int64_t tell(VirtFile *restrict const file) + { + return file->funcs->tell(file); + } + + int seek(VirtFile *restrict const file, + const uint64_t pos) + { + return file->funcs->seek(file, + pos); + } + + int eof(VirtFile *restrict const file) + { + return file->funcs->eof(file); + } +} // namespace VirtFs |