diff options
Diffstat (limited to 'engines/scumm/file_nes.h')
| -rw-r--r-- | engines/scumm/file_nes.h | 81 | 
1 files changed, 81 insertions, 0 deletions
diff --git a/engines/scumm/file_nes.h b/engines/scumm/file_nes.h new file mode 100644 index 0000000000..d601c2c496 --- /dev/null +++ b/engines/scumm/file_nes.h @@ -0,0 +1,81 @@ +/* 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. + * + * $URL$ + * $Id$ + * + */ + +#ifndef SCUMM_FILE_NES_H +#define SCUMM_FILE_NES_H + +#include "common/file.h" + +#include "scumm/file.h" + +namespace Scumm { + +class ScummNESFile : public BaseScummFile { +public: +	enum ROMset { +		kROMsetUSA, +		kROMsetEurope, +		kROMsetSweden, +		kROMsetFrance, +		kROMsetGermany, +		kROMsetSpain, +		kROMsetNum +	}; + +	struct Resource; +	struct LFLEntry; +	struct LFL; + +private: +	Common::MemoryReadStream *_stream; +	ROMset _ROMset; +	byte *_buf; + +	bool generateIndex(); +	bool generateResource(int res); +	uint16 extractResource(Common::WriteStream *out, const Resource *res); + +	byte fileReadByte(); +	uint16 fileReadUint16LE(); + +public: +	ScummNESFile(); +	void setEnc(byte value); + +	bool open(const Common::String &filename, AccessMode mode = kFileReadMode); +	bool openSubFile(const Common::String &filename); + +	void close(); +	bool eof() { return _stream->eos(); } +	uint32 pos() { return _stream->pos(); } +	uint32 size() { return _stream->size(); } +	void seek(int32 offs, int whence = SEEK_SET) { _stream->seek(offs, whence); } +	uint32 read(void *dataPtr, uint32 dataSize) { return _stream->read(dataPtr, dataSize); } +	uint32 write(const void *dataPtr, uint32 dataSize); +}; + +} // End of namespace Scumm + +#endif  | 
