aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2011-11-18 07:37:31 +0100
committerBertrand Augereau2011-11-18 07:37:31 +0100
commit2631da94099b8ecabf3e5cb571bb5aa087dbf467 (patch)
treecba80e5fc218a6e78e0186ea07db8bf31f8712c6
parent055464cb6f0849915bf359affeeb265cf3f6ae55 (diff)
downloadscummvm-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.mk1
-rw-r--r--engines/dreamweb/monitor.cpp109
-rw-r--r--engines/dreamweb/stubs.cpp81
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 */