diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_v6.cpp | 13 | ||||
-rw-r--r-- | scumm/script_v6he.cpp | 31 |
3 files changed, 9 insertions, 36 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 7ceb997ccc..99fb537630 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -598,7 +598,6 @@ protected: void o6_writeFile(); void o6_setVolume(); void o6_seekFilePos(); - void o6_unknownE1(); void o6_localizeArray(); void o6_redimArray(); void o6_readFilePos(); diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index 5b6c5ba6df..cf834cb7d6 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -3040,8 +3040,15 @@ void ScummEngine_v6::o6_getDateTime() { void ScummEngine_v6::o6_unknownE1() { // this opcode check ground area in minigame "Asteroid Lander" in the dig - int y = pop(); - int x = pop(); + int x, y; + + if (_features & GF_HUMONGOUS) { + x = pop(); + y = pop(); + } else { + y = pop(); + x = pop(); + } if (x > _screenWidth - 1) { push(-1); @@ -3057,8 +3064,6 @@ void ScummEngine_v6::o6_unknownE1() { return; } - // FIXME: Actually, there is only one virtscr in V7/V8 games anyway. - // And topline is always 0 for it. VirtScreen *vs = findVirtScreen(y); if (vs == NULL) { diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp index 065da9541b..74f4a80486 100644 --- a/scumm/script_v6he.cpp +++ b/scumm/script_v6he.cpp @@ -1151,37 +1151,6 @@ void ScummEngine_v6he::o6_setVolume() { } } -void ScummEngine_v6he::o6_unknownE1() { - int x = pop(); - int y = pop(); - - if (x > _screenWidth - 1) { - push(-1); - return; - } - if (x < 0) { - push(-1); - return; - } - - if (y < 0) { - push(-1); - return; - } - - VirtScreen *vs = findVirtScreen(y); - - if (vs == NULL) { - push(-1); - return; - } - - int offset = (y - vs->topline) * vs->width + x + _screenLeft; - - byte area = *(vs->screenPtr + offset); - push(area); -} - void ScummEngine_v6he::o6_localizeArray() { int stringID = pop(); |