aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb
diff options
context:
space:
mode:
authorBertrand Augereau2011-11-29 11:15:01 +0100
committerBertrand Augereau2011-11-29 11:47:15 +0100
commitef31ac6db0fe91afcaa9ac58d2f7a36fa6ba7af6 (patch)
tree350a59a2940beef8c662dbf011f4f2c7d0727179 /engines/dreamweb
parent55d727219705ba859657877a9a57a1a2e2665ada (diff)
downloadscummvm-rg350-ef31ac6db0fe91afcaa9ac58d2f7a36fa6ba7af6.tar.gz
scummvm-rg350-ef31ac6db0fe91afcaa9ac58d2f7a36fa6ba7af6.tar.bz2
scummvm-rg350-ef31ac6db0fe91afcaa9ac58d2f7a36fa6ba7af6.zip
DREAMWEB: 'lastfolder' ported to C++
Diffstat (limited to 'engines/dreamweb')
-rw-r--r--engines/dreamweb/dreamgen.cpp36
-rw-r--r--engines/dreamweb/dreamgen.h4
-rw-r--r--engines/dreamweb/stubs.cpp31
-rw-r--r--engines/dreamweb/stubs.h1
4 files changed, 22 insertions, 50 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index b19b86e3af..d435f5a73d 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -9791,42 +9791,6 @@ notaideadd:
hangonp();
}
-void DreamGenContext::lastfolder() {
- STACK_CHECK;
- _cmp(data.byte(kFolderpage), 0);
- if (!flags.z())
- goto canlastf;
- blank();
- return;
-canlastf:
- _cmp(data.byte(kCommandtype), 202);
- if (flags.z())
- goto alreadylastf;
- data.byte(kCommandtype) = 202;
- al = 17;
- commandonly();
-alreadylastf:
- _cmp(data.byte(kFolderpage), 0);
- if (flags.z())
- return /* (notlastf) */;
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (notlastf) */;
- _cmp(ax, 1);
- if (flags.z())
- goto dolastf;
- return;
-dolastf:
- _dec(data.byte(kFolderpage));
- delpointer();
- showfolder();
- data.word(kMousebutton) = 0;
- bx = offset_folderlist;
- checkcoords();
- worktoscreenm();
-}
-
void DreamGenContext::loadfolder() {
STACK_CHECK;
dx = 2299;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 76734fd8de..36e2254e54 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -178,7 +178,6 @@ public:
static const uint16 addr_entersymbol = 0xc7d8;
static const uint16 addr_folderexit = 0xc7cc;
static const uint16 addr_loadfolder = 0xc7c4;
- static const uint16 addr_lastfolder = 0xc7c0;
static const uint16 addr_folderhints = 0xc7bc;
static const uint16 addr_loadmenu = 0xc7b0;
static const uint16 addr_showmenu = 0xc7ac;
@@ -555,7 +554,6 @@ public:
static const uint16 offset_diarylist = 0x0e9c;
static const uint16 offset_decidelist = 0x13c1;
static const uint16 offset_symbollist = 0x0e5e;
- static const uint16 offset_folderlist = 0x0e34;
static const uint16 offset_operand1 = 0x0b7e;
static const uint16 offset_keypadlist = 0x0d9a;
static const uint16 kStartvars = 0;
@@ -1500,7 +1498,7 @@ public:
//void showfirstuse();
void channel1only();
//void checkbasemem();
- void lastfolder();
+ //void lastfolder();
void transfermap();
void showmonk();
void diarykeyn();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 0338a69327..81d284cd38 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1524,17 +1524,6 @@ void DreamGenContext::checkcoords() {
checkcoords(menulist);
break;
}
- case offset_folderlist: {
- RectWithCallback folderlist[] = {
- { 280,320,160,200,&DreamGenContext::quitkey },
- { 143,300,6,194,&DreamGenContext::nextfolder },
- { 0,143,6,194,&DreamGenContext::lastfolder },
- { 0,320,0,200,&DreamGenContext::blank },
- { 0xFFFF,0,0,0,0 }
- };
- checkcoords(folderlist);
- break;
- }
case offset_symbollist: {
RectWithCallback symbollist[] = {
{ kSymbolx+40,kSymbolx+64,kSymboly+2,kSymboly+16,&DreamGenContext::quitsymbol },
@@ -2454,5 +2443,25 @@ void DreamGenContext::nextfolder() {
}
}
+void DreamGenContext::lastfolder() {
+ if (data.byte(kFolderpage) == 0) {
+ blank();
+ return;
+ }
+ if (data.byte(kCommandtype) != 202) {
+ data.byte(kCommandtype) = 202;
+ commandonly(17);
+ }
+
+ if ((data.word(kMousebutton) == 1) && (data.word(kMousebutton) != data.word(kOldbutton))) {
+ --data.byte(kFolderpage);
+ delpointer();
+ showfolder();
+ data.word(kMousebutton) = 0;
+ checkFolderCoords();
+ worktoscreenm();
+ }
+}
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index b4ad02ed13..2a6175b135 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -360,6 +360,7 @@
void showleftpage();
void showrightpage();
void nextfolder();
+ void lastfolder();
uint8 getlocation(uint8 index);
void getlocation();
void setlocation(uint8 index);