diff options
author | Einar Johan Trøan Sømåen | 2012-07-25 00:08:39 +0200 |
---|---|---|
committer | Einar Johan Trøan Sømåen | 2012-07-25 00:08:39 +0200 |
commit | 8be1e095fd6ab78f8f90633d254643f5bb45ffd4 (patch) | |
tree | 9e70770f66f4dd57e5804fe2fa746ce33ced18aa /engines/wintermute/base/file | |
parent | c59965ad4faca67be0dad554bc291a97f2691dff (diff) | |
download | scummvm-rg350-8be1e095fd6ab78f8f90633d254643f5bb45ffd4.tar.gz scummvm-rg350-8be1e095fd6ab78f8f90633d254643f5bb45ffd4.tar.bz2 scummvm-rg350-8be1e095fd6ab78f8f90633d254643f5bb45ffd4.zip |
WINTERMUTE: Avoid starting up the engine to perform detection.
Diffstat (limited to 'engines/wintermute/base/file')
-rw-r--r-- | engines/wintermute/base/file/base_package.cpp | 14 | ||||
-rw-r--r-- | engines/wintermute/base/file/dcpackage.h | 96 |
2 files changed, 103 insertions, 7 deletions
diff --git a/engines/wintermute/base/file/base_package.cpp b/engines/wintermute/base/file/base_package.cpp index 427f2f46f8..1706a7a50b 100644 --- a/engines/wintermute/base/file/base_package.cpp +++ b/engines/wintermute/base/file/base_package.cpp @@ -57,10 +57,10 @@ BasePackage::~BasePackage() { //////////////////////////////////////////////////////////////////////////
bool BasePackage::open() {
- if (_file) return STATUS_OK;
+ if (_file) return true;
else {
_file = getFilePointer();
- return _file ? STATUS_OK : STATUS_FAILED;
+ return _file ? true : false;
}
}
@@ -69,18 +69,18 @@ bool BasePackage::open() { bool BasePackage::close() {
delete _file;
_file = NULL;
- return STATUS_OK;
+ return true;
}
//////////////////////////////////////////////////////////////////////////
bool BasePackage::read(Common::SeekableReadStream *file, uint32 offset, byte *buffer, uint32 size) {
bool ret;
- if (DID_FAIL(ret = open())) return ret;
+ if (!(ret = open())) return ret;
else {
- if (file->seek(offset, SEEK_SET)) return STATUS_FAILED;
- if (file->read(buffer, size) != 1) return STATUS_FAILED;
- else return STATUS_OK;
+ if (file->seek(offset, SEEK_SET)) return false;
+ if (file->read(buffer, size) != 1) return false;
+ else return true;
}
}
diff --git a/engines/wintermute/base/file/dcpackage.h b/engines/wintermute/base/file/dcpackage.h new file mode 100644 index 0000000000..5e47edba56 --- /dev/null +++ b/engines/wintermute/base/file/dcpackage.h @@ -0,0 +1,96 @@ +/* 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.
+ *
+ */
+
+/*
+ * This file is based on WME Lite.
+ * http://dead-code.org/redir.php?target=wmelite
+ * Copyright (c) 2011 Jan Nedoma
+ */
+
+#ifndef _DCPACKAGE_H_
+#define _DCPACKAGE_H_
+
+
+#define PACKAGE_MAGIC_1 0xDEC0ADDE
+#define PACKAGE_MAGIC_2 0x4B4E554A // "JUNK"
+#define PACKAGE_VERSION 0x00000200
+#define PACKAGE_EXTENSION "dcp"
+
+#include "common/stream.h"
+
+namespace WinterMute {
+
+struct TPackageHeader {
+ uint32 _magic1;
+ uint32 _magic2;
+ uint32 _packageVersion;
+ uint32 _gameVersion;
+ byte _priority;
+ byte _cd;
+ bool _masterIndex;
+ uint32 _creationTime;
+ char _desc[100];
+ uint32 _numDirs;
+ // TODO: Move this out of the header.
+ void readFromStream(Common::ReadStream *stream) {
+ _magic1 = stream->readUint32LE();
+ _magic2 = stream->readUint32LE();
+ _packageVersion = stream->readUint32LE();
+
+ _gameVersion = stream->readUint32LE();
+
+ _priority = stream->readByte();
+ _cd = stream->readByte();
+ _masterIndex = stream->readByte();
+ stream->readByte(); // To align the next byte...
+
+ _creationTime = stream->readUint32LE();
+
+ stream->read(_desc, 100);
+ _numDirs = stream->readUint32LE();
+ }
+};
+
+/*
+v2: uint32 DirOffset
+
+
+Dir: byte NameLength
+ char Name [NameLength]
+ byte CD;
+ uint32 NumEntries
+
+
+Entry: byte NameLength
+ char Name [NameLength]
+ uint32 Offset
+ uint32 Length
+ uint32 CompLength
+ uint32 Flags
+v2: uint32 TimeDate1
+ uint32 TimeDate2 // not used
+
+*/
+
+} // end of namespace WinterMute
+
+#endif // _DCPACKAGE_H_
|