diff options
author | Bertrand Augereau | 2011-11-18 07:37:31 +0100 |
---|---|---|
committer | Bertrand Augereau | 2011-11-18 07:37:31 +0100 |
commit | 2631da94099b8ecabf3e5cb571bb5aa087dbf467 (patch) | |
tree | cba80e5fc218a6e78e0186ea07db8bf31f8712c6 | |
parent | 055464cb6f0849915bf359affeeb265cf3f6ae55 (diff) | |
download | scummvm-rg350-2631da94099b8ecabf3e5cb571bb5aa087dbf467.tar.gz scummvm-rg350-2631da94099b8ecabf3e5cb571bb5aa087dbf467.tar.bz2 scummvm-rg350-2631da94099b8ecabf3e5cb571bb5aa087dbf467.zip |
DREAMWEB: monitor.cpp to mirror monitor.asm
-rw-r--r-- | engines/dreamweb/module.mk | 1 | ||||
-rw-r--r-- | engines/dreamweb/monitor.cpp | 109 | ||||
-rw-r--r-- | engines/dreamweb/stubs.cpp | 81 |
3 files changed, 110 insertions, 81 deletions
diff --git a/engines/dreamweb/module.mk b/engines/dreamweb/module.mk index d3efc3a917..64f444f3e3 100644 --- a/engines/dreamweb/module.mk +++ b/engines/dreamweb/module.mk @@ -7,6 +7,7 @@ MODULE_OBJS := \ dreamweb.o \ dreamgen.o \ keypad.o \ + monitor.o \ object.o \ pathfind.o \ print.o \ diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp new file mode 100644 index 0000000000..8c21a5b455 --- /dev/null +++ b/engines/dreamweb/monitor.cpp @@ -0,0 +1,109 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "dreamweb/dreamweb.h" + +namespace DreamGen { + +struct MonitorKeyEntry { + uint8 b0; + uint8 b1; + char b2[24]; +}; + +void DreamGenContext::usemon() { + data.byte(kLasttrigger) = 0; + memset(cs.ptr(kCurrentfile+1, 0), ' ', 12); + memset(cs.ptr(offset_operand1+1, 0), ' ', 12); + + MonitorKeyEntry *monitorKeyEntries = (MonitorKeyEntry *)cs.ptr(offset_keys, 0); + monitorKeyEntries[0].b0 = 1; + monitorKeyEntries[1].b0 = 0; + monitorKeyEntries[2].b0 = 0; + monitorKeyEntries[3].b0 = 0; + + createpanel(); + showpanel(); + showicon(); + drawfloor(); + getridofall(); + loadintotemp("DREAMWEB.G03"); + loadpersonal(); + loadnews(); + loadcart(); + loadtempcharset("DREAMWEB.C01"); + printoutermon(); + initialmoncols(); + printlogo(); + worktoscreen(); + turnonpower(); + fadeupyellows(); + fadeupmonfirst(); + data.word(kMonadx) = 76; + data.word(kMonady) = 141; + al = 1; + monmessage(); + hangoncurs(120); + al = 2; + monmessage(); + cx = 60; + randomaccess(); + al = 3; + monmessage(); + hangoncurs(100); + printlogo(); + scrollmonitor(); + data.word(kBufferin) = 0; + data.word(kBufferout) = 0; + do { + di = data.word(kMonadx); + bx = data.word(kMonady); + push(di); + push(bx); + input(); + bx = pop(); + di = pop(); + data.word(kMonadx) = di; + data.word(kMonady) = bx; + execcommand(); + } while (al == 0); + getridoftemp(); + getridoftempcharset(); + deallocatemem(data.word(kTextfile1)); + deallocatemem(data.word(kTextfile2)); + deallocatemem(data.word(kTextfile3)); + data.byte(kGetback) = 1; + al = 26; + playchannel1(); + data.byte(kManisoffscreen) = 0; + restoreall(); + redrawmainscrn(); + worktoscreenm(); +} + +void DreamGenContext::printlogo() { + showframe((Frame *)segRef(data.word(kTempgraphics)).ptr(0, 0), 56, 32, 0, 0); + showcurrentfile(); +} + +} /*namespace dreamgen */ + diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 3bb885adcb..2c0c8eca32 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -2164,86 +2164,5 @@ void DreamGenContext::readsetdata() { engine->closeFile(); } -void DreamGenContext::printlogo() { - showframe((Frame *)segRef(data.word(kTempgraphics)).ptr(0, 0), 56, 32, 0, 0); - showcurrentfile(); -} - -struct MonitorKeyEntry { - uint8 b0; - uint8 b1; - char b2[24]; -}; - -void DreamGenContext::usemon() { - data.byte(kLasttrigger) = 0; - memset(cs.ptr(kCurrentfile+1, 0), ' ', 12); - memset(cs.ptr(offset_operand1+1, 0), ' ', 12); - - MonitorKeyEntry *monitorKeyEntries = (MonitorKeyEntry *)cs.ptr(offset_keys, 0); - monitorKeyEntries[0].b0 = 1; - monitorKeyEntries[1].b0 = 0; - monitorKeyEntries[2].b0 = 0; - monitorKeyEntries[3].b0 = 0; - - createpanel(); - showpanel(); - showicon(); - drawfloor(); - getridofall(); - loadintotemp("DREAMWEB.G03"); - loadpersonal(); - loadnews(); - loadcart(); - loadtempcharset("DREAMWEB.C01"); - printoutermon(); - initialmoncols(); - printlogo(); - worktoscreen(); - turnonpower(); - fadeupyellows(); - fadeupmonfirst(); - data.word(kMonadx) = 76; - data.word(kMonady) = 141; - al = 1; - monmessage(); - hangoncurs(120); - al = 2; - monmessage(); - cx = 60; - randomaccess(); - al = 3; - monmessage(); - hangoncurs(100); - printlogo(); - scrollmonitor(); - data.word(kBufferin) = 0; - data.word(kBufferout) = 0; - do { - di = data.word(kMonadx); - bx = data.word(kMonady); - push(di); - push(bx); - input(); - bx = pop(); - di = pop(); - data.word(kMonadx) = di; - data.word(kMonady) = bx; - execcommand(); - } while (al == 0); - getridoftemp(); - getridoftempcharset(); - deallocatemem(data.word(kTextfile1)); - deallocatemem(data.word(kTextfile2)); - deallocatemem(data.word(kTextfile3)); - data.byte(kGetback) = 1; - al = 26; - playchannel1(); - data.byte(kManisoffscreen) = 0; - restoreall(); - redrawmainscrn(); - worktoscreenm(); -} - } /*namespace dreamgen */ |