aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Skovlund2010-05-30 10:27:39 +0000
committerLars Skovlund2010-05-30 10:27:39 +0000
commitdbe561c59b61f40459ed2b4602457308e0426269 (patch)
tree72d9c4c818c753c60a8d601cda4032684fe15dd3
parent6884ffc2918d192c9b091d4836f8c566ef3a7fcb (diff)
downloadscummvm-rg350-dbe561c59b61f40459ed2b4602457308e0426269.tar.gz
scummvm-rg350-dbe561c59b61f40459ed2b4602457308e0426269.tar.bz2
scummvm-rg350-dbe561c59b61f40459ed2b4602457308e0426269.zip
Clarify reasoning behind hack in Script::scriptRelocate()
svn-id: r49320
-rw-r--r--engines/sci/engine/segment.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/sci/engine/segment.cpp b/engines/sci/engine/segment.cpp
index 7e7da81125..8267de76bd 100644
--- a/engines/sci/engine/segment.cpp
+++ b/engines/sci/engine/segment.cpp
@@ -270,8 +270,14 @@ void Script::scriptRelocate(reg_t block) {
for (int i = 0; i <= count; i++) {
int pos = READ_SCI11ENDIAN_UINT16(_buf + block.offset + 2 + (i * 2));
+ // This occurs in SCI01/SCI1 games where every other export
+ // value is zero. I have no idea what it's supposed to mean.
+ //
+ // Yes, there is code in the original to handle this situation,
+ // but we need an example of it happening in order to determine
+ // what to do.
if (!pos)
- continue; // FIXME: A hack pending investigation
+ continue; // FIXME: Just ignore it for now.
if (!relocateLocal(block.segment, pos)) {
bool done = false;