diff options
author | Filippos Karapetis | 2009-05-13 16:52:41 +0000 |
---|---|---|
committer | Filippos Karapetis | 2009-05-13 16:52:41 +0000 |
commit | e940bcff23f0b5bf340b00a44368944489145535 (patch) | |
tree | ba53d6fc95fb49c130117a38eeeed5c9502d32a8 /engines/sci/scicore | |
parent | 9cdb4c36a7b474b36cab35215ed66e390becedd3 (diff) | |
download | scummvm-rg350-e940bcff23f0b5bf340b00a44368944489145535.tar.gz scummvm-rg350-e940bcff23f0b5bf340b00a44368944489145535.tar.bz2 scummvm-rg350-e940bcff23f0b5bf340b00a44368944489145535.zip |
- Simplified SCI version detection a bit and clarified the different version feature flags (not used yet)
- Removed the version verification functions (they were only used for two specific cases, but the SCI executable reader is able to detect the exact SCI game version anyway, so there is no point in having these)
- Removed the empty GameFlags structure and replaced it with a 32-bit integer instead
svn-id: r40524
Diffstat (limited to 'engines/sci/scicore')
-rw-r--r-- | engines/sci/scicore/resource.cpp | 1 | ||||
-rw-r--r-- | engines/sci/scicore/resource.h | 12 | ||||
-rw-r--r-- | engines/sci/scicore/versions.cpp | 90 | ||||
-rw-r--r-- | engines/sci/scicore/versions.h | 19 | ||||
-rw-r--r-- | engines/sci/scicore/vocab_debug.cpp | 2 |
5 files changed, 2 insertions, 122 deletions
diff --git a/engines/sci/scicore/resource.cpp b/engines/sci/scicore/resource.cpp index 192632a55b..0610316b32 100644 --- a/engines/sci/scicore/resource.cpp +++ b/engines/sci/scicore/resource.cpp @@ -28,6 +28,7 @@ #include "common/util.h" #include "common/debug.h" +#include "sci/sci.h" #include "sci/engine/state.h" #include "sci/engine/kernel.h" #include "sci/tools.h" diff --git a/engines/sci/scicore/resource.h b/engines/sci/scicore/resource.h index a1636ad250..82344da3b2 100644 --- a/engines/sci/scicore/resource.h +++ b/engines/sci/scicore/resource.h @@ -71,18 +71,6 @@ enum ResourceStatus { #define SCI_ERROR_CRITICAL SCI_ERROR_NO_RESOURCE_FILES_FOUND /* the first critical error number */ -/*** SCI VERSION NUMBERS ***/ -#define SCI_VERSION_AUTODETECT 0 -#define SCI_VERSION_0 1 -#define SCI_VERSION_01 2 -#define SCI_VERSION_01_VGA 3 -#define SCI_VERSION_01_VGA_ODD 4 -#define SCI_VERSION_1_EARLY 5 -#define SCI_VERSION_1_LATE 6 -#define SCI_VERSION_1_1 7 -#ifdef ENABLE_SCI32 -#define SCI_VERSION_32 8 -#endif #define SCI_VERSION_LAST SCI_VERSION_1_LATE /* The last supported SCI version */ #define SCI_VERSION_1 SCI_VERSION_1_EARLY diff --git a/engines/sci/scicore/versions.cpp b/engines/sci/scicore/versions.cpp deleted file mode 100644 index 4f771edd9a..0000000000 --- a/engines/sci/scicore/versions.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* 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$ - * - */ - -#define NEED_SCI_VERSIONS - -#include "common/system.h" -#include "common/config-manager.h" - -#include "sci/scicore/versions.h" -#include "sci/engine/state.h" -#include "sci/tools.h" - -namespace Sci { - -void version_require_earlier_than(EngineState *s, sci_version_t version) { - if (s->version_lock_flag) - return; - - if (version <= s->min_version) { - sciprintf("Version autodetect conflict: Less than %d.%03d.%03d was requested, but %d.%03d.%03d is the current minimum\n", - SCI_VERSION_MAJOR(version), SCI_VERSION_MINOR(version), SCI_VERSION_PATCHLEVEL(version), - SCI_VERSION_MAJOR(s->min_version), SCI_VERSION_MINOR(s->min_version), - SCI_VERSION_PATCHLEVEL(s->min_version)); - return; - } else if (version < s->max_version) { - s->max_version = version - 1; - if (s->max_version < s->version) - s->version = s->max_version; - } -} - -void version_require_later_than(EngineState *s, sci_version_t version) { - if (s->version_lock_flag) - return; - - if (version > s->max_version) { - sciprintf("Version autodetect conflict: More than %d.%03d.%03d was requested, but less than" - "%d.%03d.%03d is required ATM\n", - SCI_VERSION_MAJOR(version), SCI_VERSION_MINOR(version), SCI_VERSION_PATCHLEVEL(version), - SCI_VERSION_MAJOR(s->max_version), SCI_VERSION_MINOR(s->max_version), - SCI_VERSION_PATCHLEVEL(s->max_version)); - return; - } else if (version > s->min_version) { - s->min_version = version; - if (s->min_version > s->version) - s->version = s->min_version; - } -} - -int version_parse(const char *vn, sci_version_t *result) { - char *endptr[3]; - int major = strtol(vn, &endptr[0], 10); - int minor = strtol(vn + 2, &endptr[1], 10); - int patchlevel = strtol(vn + 6, &endptr[2], 10); - - if (endptr[0] != vn + 1 || endptr[1] != vn + 5 || *endptr[2] != '\0') { - warning("Failed to parse version string '%s'", vn); - return 1; - } - - *result = SCI_VERSION(major, minor, patchlevel); - - return 0; -} - -#undef VERSION_DETECT_BUF_SIZE - -} // End of namespace Sci diff --git a/engines/sci/scicore/versions.h b/engines/sci/scicore/versions.h index dba4397fd1..cccd66e949 100644 --- a/engines/sci/scicore/versions.h +++ b/engines/sci/scicore/versions.h @@ -107,25 +107,6 @@ typedef int sci_version_t; struct EngineState; -void version_require_earlier_than(EngineState *s, sci_version_t version); -/* Function used in autodetection -** Parameters: (EngineState *) s: EngineState containing the version -** (sci_version_t) version: The version that we're earlier than -*/ - -void version_require_later_than(EngineState *s, sci_version_t version); -/* Function used in autodetection (read this function "version_require_later_than_or_equal_to") -** Parameters: (EngineState *) s: EngineState containing the version -** (sci_version_t) version: The version that we're later than -*/ - -int version_parse(const char *vn, sci_version_t *result); -/* Parse a string containing an SCI version number -** Parameters: (char *) vn: The string to parse -** Returns : (int) 0 on success, 1 on failure -** (sci_version_t) *result: The resulting version number on success -*/ - } // End of namespace Sci #endif // SCI_SCICORE_VERSIONS_H diff --git a/engines/sci/scicore/vocab_debug.cpp b/engines/sci/scicore/vocab_debug.cpp index d626983058..579f61a8de 100644 --- a/engines/sci/scicore/vocab_debug.cpp +++ b/engines/sci/scicore/vocab_debug.cpp @@ -23,7 +23,7 @@ * */ - +#include "sci/sci.h" #include "sci/engine/state.h" #include "sci/scicore/resource.h" |