diff options
Diffstat (limited to 'engines/dreamweb')
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 36 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 4 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 31 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
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); |