aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;