diff options
author | James Brown | 2002-05-08 06:57:27 +0000 |
---|---|---|
committer | James Brown | 2002-05-08 06:57:27 +0000 |
commit | b9be9d1065fd68deecd985b6557d54411eebc71c (patch) | |
tree | 2f6756c6153ca7c1e61ea9053b833d5ba4183c3b | |
parent | 713152fcef1fcb169c757c735d8504e6c2897270 (diff) | |
download | scummvm-rg350-b9be9d1065fd68deecd985b6557d54411eebc71c.tar.gz scummvm-rg350-b9be9d1065fd68deecd985b6557d54411eebc71c.tar.bz2 scummvm-rg350-b9be9d1065fd68deecd985b6557d54411eebc71c.zip |
Fix a mistake in the resource loader.
svn-id: r4239
-rw-r--r-- | resource.cpp | 11 | ||||
-rw-r--r-- | script_v1.cpp | 10 |
2 files changed, 11 insertions, 10 deletions
diff --git a/resource.cpp b/resource.cpp index 9cf7105718..a617595c51 100644 --- a/resource.cpp +++ b/resource.cpp @@ -470,7 +470,7 @@ int Scumm::loadResource(int type, int idx) uint32 fileOffs; uint32 size, tag; -// debug(1, "loadResource(%s,%d)", resTypeFromId(type),idx); + // debug(1, "loadResource(%s,%d)", resTypeFromId(type),idx); if (type == rtCharset && (_features & GF_SMALL_HEADER)) { loadCharset(idx); @@ -478,9 +478,12 @@ int Scumm::loadResource(int type, int idx) } roomNr = getResourceRoomNr(type, idx); - if (roomNr == 0 || idx >= res.num[type]) { - error("%s %d undefined", res.name[type], idx); - } + + if (idx >= res.num[type]) + error("%s %d undefined %d %d", res.name[type], idx, res.num[type], roomNr); + + if (roomNr == 0) + roomNr = _roomResource; if (type == rtRoom) { fileOffs = 0; diff --git a/script_v1.cpp b/script_v1.cpp index 87ddf658a5..aaf2de02c0 100644 --- a/script_v1.cpp +++ b/script_v1.cpp @@ -825,19 +825,17 @@ void Scumm::o5_actorSetClass() { int act = getVarOrDirectWord(0x80); int newClass; - + while ((_opcode = fetchScriptByte()) != 0xFF) { newClass = getVarOrDirectWord(0x80); if (newClass == 0) { _classData[act] = 0; - - if( _features & GF_SMALL_HEADER) + if((_features & GF_SMALL_HEADER) && act <= NUM_ACTORS) { Actor *a; - a=derefActor(act); + a = derefActorSafe(act, "actorSetClass"); a->forceClip=0; - } - + } continue; } |