HE 7.2 uses different array headers. they introduced start indexes, so it

became in somewhat Pascal fashion, i.e. array[2..3][10..20]. So I had to
override ArrayHeader function in ScummEngine_v72he.

Also there is new array type kDwordArray. So that is implemented as well.

Though, not everything yet transferred to use new ArrayHeader, so running
HE 7.2 titles is risky now.

Some opcodes were implemented along the way.

svn-id: r14735
This commit is contained in:
Eugene Sandulenko 2004-08-25 02:12:03 +00:00
parent 45d8b3b002
commit d3727e1c2a
4 changed files with 288 additions and 56 deletions

View file

@ -1968,6 +1968,9 @@ byte *ScummEngine::getStringAddress(int i) {
if (!b)
return NULL;
if (_heversion >= 72)
return (b + 0x14); // ArrayHeader->data
if (_features & GF_NEW_OPCODES)
return ((ArrayHeader *)b)->data;
return b;
@ -1983,6 +1986,9 @@ byte *ScummEngine::getStringAddressVar(int i) {
// error("NULL string var %d slot %d", i, _scummVars[i]);
return NULL;
if (_heversion >= 72)
return (addr + 0x14); // ArrayHeader->data
if (_features & GF_NEW_OPCODES)
return ((ArrayHeader *)addr)->data;