aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script_v6.cpp2
-rw-r--r--scumm/script_v72he.cpp8
2 files changed, 3 insertions, 7 deletions
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index 220899cae7..1519a2b71a 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -3018,7 +3018,7 @@ void ScummEngine_v6::o6_pickVarRandom() {
num = readArray(value, 0, 0);
- byte *ptr = getResourceAddress(rtString, num);
+ byte *ptr = getResourceAddress(rtString, readVar(value));
if (_version >= 7 || _heversion >= 72) {
var_A = READ_LE_UINT32(ptr + 4);
var_C = READ_LE_UINT32(ptr + 8);
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 1fbcda7c95..48d39aee92 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -1565,12 +1565,8 @@ void ScummEngine_v72he::o72_pickVarRandom() {
num = readArray(value, 0, 0);
- ArrayHeader *ah = (ArrayHeader *)getResourceAddress(rtString, num);
- // FIXME
- if (!ah)
- var_A = 0;
- else
- var_A = FROM_LE_32(ah->dim1end);
+ ArrayHeader *ah = (ArrayHeader *)getResourceAddress(rtString, readVar(value));
+ var_A = FROM_LE_32(ah->dim1end);
if (var_A-1 <= num) {
int16 var_2 = readArray(value, 0, num - 1);