aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2011-12-03 15:31:29 +0100
committerBertrand Augereau2011-12-03 15:59:03 +0100
commite61cb12364e44026144defe98c7d10693f363853 (patch)
treeb2b64078363d79ba3b611279f7fa7c4c6652164d
parent908ba272f8c14ed4ab018f2dd834c17a3a4b0599 (diff)
downloadscummvm-rg350-e61cb12364e44026144defe98c7d10693f363853.tar.gz
scummvm-rg350-e61cb12364e44026144defe98c7d10693f363853.tar.bz2
scummvm-rg350-e61cb12364e44026144defe98c7d10693f363853.zip
DREAMWEB: 'useMenu' ported to C++
-rwxr-xr-xdevtools/tasmrecover/tasm-recover1
-rw-r--r--engines/dreamweb/dreamgen.cpp48
-rw-r--r--engines/dreamweb/dreamgen.h2
-rw-r--r--engines/dreamweb/stubs.cpp47
-rw-r--r--engines/dreamweb/stubs.h1
5 files changed, 40 insertions, 59 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 2c81eb1b61..2324bfd377 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -254,6 +254,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'fadeupmonfirst',
'loadroomssample',
'printlogo',
+ 'usemenu',
'usemon',
'scrollmonitor',
'showcurrentfile',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index d9af7a347f..d014fb26f1 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9161,54 +9161,6 @@ void DreamGenContext::dumpKeypad() {
multiDump();
}
-void DreamGenContext::useMenu() {
- STACK_CHECK;
- getRidOfReels();
- loadMenu();
- createPanel();
- showPanel();
- showIcon();
- data.byte(kNewobs) = 0;
- drawFloor();
- printSprites();
- al = 4;
- ah = 0;
- di = (80+40)-48;
- bx = (60)-4;
- ds = data.word(kTempgraphics2);
- showFrame();
- getUnderMenu();
- al = 5;
- ah = 0;
- di = (80+40)+54;
- bx = (60)+72;
- ds = data.word(kTempgraphics2);
- showFrame();
- workToScreenM();
- data.byte(kGetback) = 0;
-menuloop:
- delPointer();
- putUnderMenu();
- showMenu();
- readMouse();
- showPointer();
- vSync();
- dumpPointer();
- dumpMenu();
- dumpTextLine();
- bx = offset_menulist;
- checkCoords();
- _cmp(data.byte(kGetback), 1);
- if (!flags.z())
- goto menuloop;
- data.byte(kManisoffscreen) = 0;
- redrawMainScrn();
- getRidOfTemp();
- getRidOfTemp2();
- restoreReels();
- workToScreenM();
-}
-
void DreamGenContext::dumpMenu() {
STACK_CHECK;
di = (80+40);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index b4596e0df5..f9a51ad9b4 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -58,7 +58,6 @@ public:
static const uint16 offset_invlist1 = 0x09fc;
static const uint16 offset_money2poke = 0x0d97;
static const uint16 offset_talklist = 0x0a64;
- static const uint16 offset_menulist = 0x0e1e;
static const uint16 offset_comlist = 0x0ad8;
static const uint16 offset_withlist1 = 0x0a3a;
static const uint16 offset_money1poke = 0x0d92;
@@ -1056,7 +1055,6 @@ public:
void showNames();
void saveFileRead();
void emergencyPurge();
- void useMenu();
void alleyBarkSound();
void useCart();
void introMusic();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index edb8887a2d..a60a39c361 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1710,15 +1710,6 @@ void DreamGenContext::checkCoords() {
checkCoords(destList);
break;
}
- case offset_menulist: {
- RectWithCallback menuList[] = {
- { kMenux+54,kMenux+68,kMenuy+72,kMenuy+88,&DreamGenContext::quitKey },
- { 0,320,0,200,&DreamGenContext::blank },
- { 0xFFFF,0,0,0,0 }
- };
- checkCoords(menuList);
- break;
- }
case offset_symbollist: {
RectWithCallback symbolList[] = {
{ kSymbolx+40,kSymbolx+64,kSymboly+2,kSymboly+16,&DreamGenContext::quitSymbol },
@@ -2735,5 +2726,43 @@ void DreamGenContext::workToScreenM() {
delPointer();
}
+void DreamGenContext::useMenu() {
+ getRidOfReels();
+ loadMenu();
+ createPanel();
+ showPanel();
+ showIcon();
+ data.byte(kNewobs) = 0;
+ drawFloor();
+ printSprites();
+ showFrame(tempGraphics2(), kMenux-48, kMenuy-4, 4, 0);
+ getUnderMenu();
+ showFrame(tempGraphics2(), kMenux+54, kMenuy+72, 5, 0);
+ workToScreenM();
+ data.byte(kGetback) = 0;
+ do {
+ delPointer();
+ putUnderMenu();
+ showMenu();
+ readMouse();
+ showPointer();
+ vSync();
+ dumpPointer();
+ dumpMenu();
+ dumpTextLine();
+ RectWithCallback menuList[] = {
+ { kMenux+54,kMenux+68,kMenuy+72,kMenuy+88,&DreamGenContext::quitKey },
+ { 0,320,0,200,&DreamGenContext::blank },
+ { 0xFFFF,0,0,0,0 }
+ };
+ checkCoords(menuList);
+ } while ((data.byte(kGetback) != 1) && !quitRequested());
+ data.byte(kManisoffscreen) = 0;
+ redrawMainScrn();
+ getRidOfTemp();
+ getRidOfTemp2();
+ restoreReels();
+ workToScreenM();
+}
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 694313889f..6e6487430d 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -303,6 +303,7 @@
void fadeupYellows();
void fadeupMonFirst();
void printLogo();
+ void useMenu();
void useMon();
void scrollMonitor();
void showCurrentFile();