diff options
author | Paul Gilbert | 2016-04-03 16:16:35 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-04-03 16:16:35 -0400 |
commit | 1efbed540948edcbf3ac2c72c0984def044274cf (patch) | |
tree | 63b4543753951b55c756a9b81cd5df5ab2718943 /engines/titanic/support/files_manager.cpp | |
parent | 432153274385295a9a4eb01e56bfcc72cc5f202e (diff) | |
download | scummvm-rg350-1efbed540948edcbf3ac2c72c0984def044274cf.tar.gz scummvm-rg350-1efbed540948edcbf3ac2c72c0984def044274cf.tar.bz2 scummvm-rg350-1efbed540948edcbf3ac2c72c0984def044274cf.zip |
TITANIC: Move most of the root classes into new support/ folder
Diffstat (limited to 'engines/titanic/support/files_manager.cpp')
-rw-r--r-- | engines/titanic/support/files_manager.cpp | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/engines/titanic/support/files_manager.cpp b/engines/titanic/support/files_manager.cpp new file mode 100644 index 0000000000..179d77f24f --- /dev/null +++ b/engines/titanic/support/files_manager.cpp @@ -0,0 +1,106 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#include "common/file.h" +#include "titanic/support/files_manager.h" +#include "titanic/game_manager.h" + +namespace Titanic { + +CFilesManager::CFilesManager() : _gameManager(nullptr), + _assetsPath("Assets"), _exeResources(nullptr), _field0(0), + _drive(-1), _field18(0), _field1C(0), _field3C(0) { +} + +CFilesManager::~CFilesManager() { + delete _exeResources; +} + +bool CFilesManager::fileExists(const CString &name) { + Common::File f; + return f.exists(name); +} + +bool CFilesManager::scanForFile(const CString &name) { + if (name.empty()) + return false; + + CString filename = name; + filename.toLowercase(); + + if (filename[0] == 'y' || filename[0] == 'z') + return true; + else if (filename[0] < 'a' || filename[0] > 'c') + return false; + + CString fname = filename; + int idx = fname.indexOf('#'); + if (idx >= 0) { + fname = fname.left(idx); + fname += ".st"; + } + + if (_gameManager) + _gameManager->viewChange(); + + // The original had a bunch of code here handling determining + // which asset path, if any, the filename was present for, + // and storing the "active asset path" it was found on. + // This is redundant for ScummVM, which takes care of the paths + return fileExists(fname); +} + +void CFilesManager::loadDrive() { + assert(_drive == -1); + resetView(); +} + +void CFilesManager::debug(CScreenManager *screenManager) { + warning("TODO: CFilesManager::debug"); +} + +void CFilesManager::resetView() { + if (_gameManager) { + _gameManager->_gameState.setMode(GSMODE_SELECTED); + _gameManager->initBounds(); + } +} + +void CFilesManager::fn4(const CString &name) { + warning("TODO: CFilesManager::fn4"); +} + +void CFilesManager::fn5(const CString &name) { + warning("TODO: CFilesManager::fn5"); +} + +Common::SeekableReadStream *CFilesManager::getResource(const CString &name, + const CString &area) { + if (!_exeResources) { + _exeResources = new Common::NEResources(); + _exeResources->loadFromEXE("st.exe"); + } + + return nullptr; +} + +} // End of namespace Titanic |