aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2009-07-07 13:39:24 +0000
committerFilippos Karapetis2009-07-07 13:39:24 +0000
commitab8c3d56b86d93dcd2c0debeb6ad57bf87910fd2 (patch)
treeab7e798c415355ef3a923b27ecb37e4df630e662
parent09efaaa1c91854feaf19ba6fae1b702203984e26 (diff)
downloadscummvm-rg350-ab8c3d56b86d93dcd2c0debeb6ad57bf87910fd2.tar.gz
scummvm-rg350-ab8c3d56b86d93dcd2c0debeb6ad57bf87910fd2.tar.bz2
scummvm-rg350-ab8c3d56b86d93dcd2c0debeb6ad57bf87910fd2.zip
Removed the weird checks for a maximum resource number (the sci_max_resource_nr array), as it doesn't serve any real purpose and leads to strange errors: if a resource is found which is bigger than the maximum number, it will be remapped to an incorrect number from this check. This makes KQ5CD work properly again (resources would be remapped to incorrect resource numbers from this code as a result of not updating this array with the latest SCI version merges).
svn-id: r42219
-rw-r--r--engines/sci/engine/game.cpp2
-rw-r--r--engines/sci/resource.cpp13
-rw-r--r--engines/sci/resource.h2
3 files changed, 2 insertions, 15 deletions
diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp
index ea03705fc2..861294cfa6 100644
--- a/engines/sci/engine/game.cpp
+++ b/engines/sci/engine/game.cpp
@@ -95,7 +95,7 @@ int _reset_graphics_input(EngineState *s) {
font_nr = -1;
do {
resource = s->resmgr->testResource(ResourceId(kResourceTypeFont, ++font_nr));
- } while ((!resource) && (font_nr < sci_max_resource_nr[s->resmgr->_sciVersion]));
+ } while ((!resource) && (font_nr < 65536));
if (!resource) {
debug(2, "No text font was found.");
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index b66c5de092..30e917557d 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -42,8 +42,6 @@ namespace Sci {
//#define SCI_VERBOSE_RESMGR 1
-const int sci_max_resource_nr[] = {65536, 1000, 2048, 2048, 2048, 65536, 65536, 65536};
-
static const char *sci_error_types[] = {
"No error",
"I/O error",
@@ -649,16 +647,7 @@ Common::List<ResourceId> *ResourceManager::listResources(ResourceType type, int
}
Resource *ResourceManager::findResource(ResourceId id, bool lock) {
- Resource *retval;
-
- if (id.number >= sci_max_resource_nr[_sciVersion]) {
- ResourceId moddedId = ResourceId(id.type, id.number % sci_max_resource_nr[_sciVersion], id.tuple);
- warning("[resmgr] Requested invalid resource %s, mapped to %s",
- id.toString().c_str(), moddedId.toString().c_str());
- id = moddedId;
- }
-
- retval = testResource(id);
+ Resource *retval = testResource(id);
if (!retval)
return NULL;
diff --git a/engines/sci/resource.h b/engines/sci/resource.h
index 1b54b28df9..b212a36710 100644
--- a/engines/sci/resource.h
+++ b/engines/sci/resource.h
@@ -82,8 +82,6 @@ enum ResSourceType {
#define SCI1_RESMAP_ENTRIES_SIZE 6
#define SCI11_RESMAP_ENTRIES_SIZE 5
-extern const int sci_max_resource_nr[]; /**< Highest possible resource numbers */
-
enum ResourceType {
kResourceTypeView = 0,
kResourceTypePic,