aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/vga_ww.cpp
diff options
context:
space:
mode:
authorTravis Howell2007-05-09 15:36:05 +0000
committerTravis Howell2007-05-09 15:36:05 +0000
commit20bf83a2ce1c19e81cd486b4af3b7b73bd25e510 (patch)
tree058454d1570cad4d4eeb6271eee27705d0578c6f /engines/agos/vga_ww.cpp
parent85082dc8a00b91689f2ab11494e9bdc1bed71578 (diff)
downloadscummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.tar.gz
scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.tar.bz2
scummvm-rg350-20bf83a2ce1c19e81cd486b4af3b7b73bd25e510.zip
Imrproved support for Elvira 1/2 and Waxworks.
svn-id: r26792
Diffstat (limited to 'engines/agos/vga_ww.cpp')
-rw-r--r--engines/agos/vga_ww.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/engines/agos/vga_ww.cpp b/engines/agos/vga_ww.cpp
index f73476c5cb..f9995fc715 100644
--- a/engines/agos/vga_ww.cpp
+++ b/engines/agos/vga_ww.cpp
@@ -110,7 +110,7 @@ void AGOSEngine::vc61() {
if (a == 6) {
src = _curVgaFile2 + 800;
- dstPtr = getBackBuf();
+ dstPtr = getFrontBuf();
memcpy(dstPtr, src, 64000);
tmp = 4 - 1;
} else {
@@ -218,14 +218,21 @@ void AGOSEngine::vc62_fastFadeOut() {
}
}
- // Allow one section of Simon the Sorcerer 1 introduction to be displayed
- // in lower half of screen
- if ((getGameType() == GType_SIMON1) && (_subroutine == 2923 || _subroutine == 2926)) {
- clearSurfaces(200);
- } else if (getGameType() == GType_FF || getGameType() == GType_PP) {
+ if (getGameType() == GType_FF || getGameType() == GType_PP) {
clearSurfaces(480);
+ } else if (getGameType() == GType_WW) {
+ memset(getFrontBuf(), 0, _screenWidth * _screenHeight);
+ } else if (!_oldDrawMethod) {
+ // Allow one section of Simon the Sorcerer 1 introduction to be displayed
+ // in lower half of screen
+ if ((getGameType() == GType_SIMON1) && (_subroutine == 2923 || _subroutine == 2926)) {
+ clearSurfaces(200);
+ } else {
+ clearSurfaces(_windowNum == 4 ? 134 : 200);
+ }
} else {
- clearSurfaces(_windowNum == 4 ? 134 : 200);
+ if (_windowNum != 4)
+ memset(getFrontBuf(), 0, _screenWidth * _screenHeight);
}
}
if (getGameType() == GType_SIMON2) {