[Scummvm-cvs-logs] scummvm master -> 62dc71a73a894426cb2f5c61e26ab53b0c9f06ad
bluegr
md5 at scummvm.org
Sun Dec 18 15:44:23 CET 2011
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
62dc71a73a DREAMWEB: Port 'getkeyandlogo' to C++
Commit: 62dc71a73a894426cb2f5c61e26ab53b0c9f06ad
https://github.com/scummvm/scummvm/commit/62dc71a73a894426cb2f5c61e26ab53b0c9f06ad
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-18T06:43:05-08:00
Commit Message:
DREAMWEB: Port 'getkeyandlogo' to C++
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/monitor.cpp
engines/dreamweb/stubs.h
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 2ed1edf..29b9ae5 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -453,6 +453,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'getdimension',
'getexpos',
'getflagunderp',
+ 'getkeyandlogo',
'getlocation',
'getmapad',
'getnamepos',
@@ -520,6 +521,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'keeper',
'kernchars',
'keyboardread',
+ 'keynum',
'lastdest',
'lastfolder',
'liftnoise',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f763251..6034e0e 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2298,51 +2298,6 @@ endofdir2:
scrollMonitor();
}
-void DreamGenContext::getKeyAndLogo() {
- STACK_CHECK;
- _inc(bx);
- al = es.byte(bx);
- _sub(al, 48);
- data.byte(kNewlogonum) = al;
- _add(bx, 2);
- al = es.byte(bx);
- _sub(al, 48);
- data.byte(kKeynum) = al;
- _inc(bx);
- push(es);
- push(bx);
- al = data.byte(kKeynum);
- ah = 0;
- cx = 26;
- _mul(cx);
- es = cs;
- bx = offset_keys;
- _add(bx, ax);
- al = es.byte(bx);
- _cmp(al, 1);
- if (flags.z())
- goto keyok;
- push(bx);
- push(es);
- al = 12;
- monMessage();
- es = pop();
- bx = pop();
- _add(bx, 14);
- monPrint();
- scrollMonitor();
- bx = pop();
- es = pop();
- al = 1;
- return;
-keyok:
- bx = pop();
- es = pop();
- al = data.byte(kNewlogonum);
- data.byte(kLogonum) = al;
- al = 0;
-}
-
void DreamGenContext::searchForString() {
STACK_CHECK;
dl = es.byte(di);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 12af1ab..7f1601e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -487,7 +487,6 @@ public:
void removeObFromInv();
void dirFile();
void pickupConts();
- void getKeyAndLogo();
void fadeUpMon();
void reExFromInv();
void outOfInv();
diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp
index 8ff199c..dd94633 100644
--- a/engines/dreamweb/monitor.cpp
+++ b/engines/dreamweb/monitor.cpp
@@ -445,4 +445,22 @@ void DreamGenContext::showKeys() {
scrollMonitor();
}
+void DreamGenContext::getKeyAndLogo() {
+ byte newLogo = es.byte(bx + 1) - 48;
+ MonitorKeyEntry *monitorKeyEntries = (MonitorKeyEntry *)data.ptr(offset_keys, 0);
+ byte keyNum = es.byte(bx + 1 + 2) - 48;
+ bx += 1 + 2 + 1;
+
+ if (monitorKeyEntries[keyNum].keyHeld == 1) {
+ // Key OK
+ data.byte(kLogonum) = newLogo;
+ al = 0;
+ } else {
+ monMessage(12); // "Access denied, key required -"
+ monPrint(monitorKeyEntries[keyNum].userpass + 12); // username
+ scrollMonitor();
+ al = 1;
+ }
+}
+
} // End of namespace DreamGen
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 0d2d8df..3e61367 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -370,5 +370,6 @@
void setPickup();
void showDiaryKeys();
void showKeys();
+ void getKeyAndLogo();
#endif
More information about the Scummvm-git-logs
mailing list