aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-09 10:14:08 +0200
committerFilippos Karapetis2011-12-09 10:14:08 +0200
commit9f2ed38ef14d6c5d0baa55615ad7f38e091d6983 (patch)
tree62ad2d06769bd21cbb302626050c36f818bf21d3
parent597ff0bb989b60b09cdb81e73b0bbdb479eabd85 (diff)
downloadscummvm-rg350-9f2ed38ef14d6c5d0baa55615ad7f38e091d6983.tar.gz
scummvm-rg350-9f2ed38ef14d6c5d0baa55615ad7f38e091d6983.tar.bz2
scummvm-rg350-9f2ed38ef14d6c5d0baa55615ad7f38e091d6983.zip
DREAMWEB: Port 'endgame', 'showgun' to C++
Also, remove the associated 'endtextname' and 'gungraphic' offsets from the blob
-rwxr-xr-xdevtools/tasmrecover/tasm-recover4
-rw-r--r--engines/dreamweb/dreamgen.cpp215
-rw-r--r--engines/dreamweb/dreamgen.h48
-rw-r--r--engines/dreamweb/stubs.cpp46
-rw-r--r--engines/dreamweb/stubs.h2
5 files changed, 147 insertions, 168 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 8780aaa88c..e73ba4962a 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -143,6 +143,8 @@ p = parser(skip_binary_data = [
'idname',
'samplename',
# 'basicsample', # This can't be removed due to tasm-recover limitations
+ 'endtextname',
+ 'gungraphic',
])
p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
@@ -296,6 +298,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'edeninbath',
'edenscdplayer',
'enablesoundint',
+ 'endgame',
'endpaltostart',
'entercode',
'entersymbol',
@@ -623,6 +626,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'showframe',
'showgamereel',
'showgroup',
+ 'showgun',
'showicon',
'showkeypad',
'showleftpage',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 5ee2397d36..f5e4f27379 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -928,60 +928,6 @@ halfend:
data.byte(kNumtofade) = 32;
}
-void DreamGenContext::showGun() {
- STACK_CHECK;
- data.byte(kAddtored) = 0;
- data.byte(kAddtogreen) = 0;
- data.byte(kAddtoblue) = 0;
- palToStartPal();
- palToEndPal();
- greyscaleSum();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 130;
- hangOn();
- endPalToStart();
- clearEndPal();
- data.byte(kFadedirection) = 1;
- data.byte(kFadecount) = 63;
- data.byte(kColourpos) = 0;
- data.byte(kNumtofade) = 128;
- cx = 200;
- hangOn();
- data.byte(kRoomssample) = 34;
- loadRoomsSample();
- data.byte(kVolume) = 0;
- dx = 1055;
- loadIntoTemp();
- createPanel2();
- ds = data.word(kTempgraphics);
- al = 0;
- ah = 0;
- di = 100;
- bx = 4;
- showFrame();
- ds = data.word(kTempgraphics);
- al = 1;
- ah = 0;
- di = 158;
- bx = 106;
- showFrame();
- workToScreen();
- getRidOfTemp();
- fadeScreenUp();
- cx = 160;
- hangOn();
- al = 12;
- ah = 0;
- playChannel0();
- dx = 1029;
- loadTempText();
- rollEndCredits2();
- getRidOfTempText();
-}
-
void DreamGenContext::rollEndCredits2() {
STACK_CHECK;
rollEm();
@@ -1222,24 +1168,11 @@ void DreamGenContext::initialMonCols() {
showGroup();
}
-void DreamGenContext::endGame() {
- STACK_CHECK;
- dx = 1029;
- loadTempText();
- monkSpeaking();
- gettingShot();
- getRidOfTempText();
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
- cx = 200;
- hangOn();
-}
-
void DreamGenContext::monkSpeaking() {
STACK_CHECK;
data.byte(kRoomssample) = 35;
loadRoomsSample();
- dx = 1068;
+ dx = 1042;
loadIntoTemp();
clearWork();
showMonk();
@@ -3287,14 +3220,14 @@ void DreamGenContext::getDestInfo() {
push(ax);
dx = data;
es = dx;
- si = 1433;
+ si = 1407;
_add(si, ax);
cl = es.byte(si);
ax = pop();
push(cx);
dx = data;
es = dx;
- si = 1449;
+ si = 1423;
_add(si, ax);
ax = pop();
}
@@ -3346,7 +3279,7 @@ clearedlocations:
bx = ax;
dx = data;
es = dx;
- _add(bx, 1433);
+ _add(bx, 1407);
es.byte(bx) = 0;
}
@@ -3382,7 +3315,7 @@ void DreamGenContext::execCommand() {
es = cs;
bx = offset_comlist;
ds = cs;
- si = 1467;
+ si = 1441;
al = ds.byte(si);
_cmp(al, 0);
if (!flags.z())
@@ -3475,7 +3408,7 @@ dirroot:
si = offset_rootdir;
_inc(si);
es = cs;
- di = 1290;
+ di = 1264;
_inc(di);
cx = 12;
_movsb(cx, true);
@@ -3577,7 +3510,7 @@ notyetassigned:
push(bx);
_add(bx, 2);
ds = cs;
- si = 1467;
+ si = 1441;
checkpass:
_lodsw();
ah = es.byte(bx);
@@ -3648,7 +3581,7 @@ void DreamGenContext::read() {
return;
okcom:
es = cs;
- di = 1290;
+ di = 1264;
ax = data.word(kTextfile1);
data.word(kMonsource) = ax;
ds = ax;
@@ -3778,7 +3711,7 @@ keyok2:
ds = cs;
si = offset_operand1+1;
es = cs;
- di = 1290+1;
+ di = 1264+1;
cx = 12;
_movsb(cx, true);
monitorLogo();
@@ -3905,7 +3838,7 @@ void DreamGenContext::parser() {
al = '=';
_stosb();
ds = cs;
- si = 1467;
+ si = 1441;
notspace1:
_lodsw();
_cmp(al, 32);
@@ -5739,7 +5672,7 @@ void DreamGenContext::getNamePos() {
_mul(cx);
dx = data;
es = dx;
- bx = 1601;
+ bx = 1575;
_add(bx, ax);
al = data.byte(kCursorpos);
ah = 0;
@@ -5835,7 +5768,7 @@ void DreamGenContext::showNames() {
STACK_CHECK;
dx = data;
es = dx;
- si = 1601+1;
+ si = 1575+1;
di = (60)+21;
bx = (52)+10;
cl = 0;
@@ -6211,7 +6144,7 @@ void DreamGenContext::clearChanges() {
di = 0;
_stosw(cx, true);
es = cs;
- di = 1433;
+ di = 1407;
al = 1;
_stosb(2);
al = 0;
@@ -6532,61 +6465,61 @@ void DreamGenContext::__start() {
//0x03e0: EAMW EB.V 99.D REAM
0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x34, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42,
//0x03f0: WEB. G14. DREA MWEB
- 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x54, 0x38,
- //0x0400: .T51 .DRE AMWE B.T8
- 0x33, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f, 0x4c, 0x00, 0x44,
- //0x0410: 3.DR EAMW EB.V OL.D
- 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x33, 0x00, 0x44, 0x52, 0x45, 0x41,
- //0x0420: REAM WEB. G13. DREA
- 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45,
- //0x0430: MWEB .G15 .DRE AMWE
- 0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x00, 0x01, 0x45, 0x58, 0x49, 0x54, 0x20, 0x20, 0x20, 0x20,
- //0x0440: B.I0 7... EXIT
- 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54,
- //0x0450: HE LP LIST
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- //0x0460: RE AD
- 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20,
- //0x0470: LOGO N KE YS
- 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20,
- //0x0480: ..PU BLIC
- 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,
- //0x0490: PU BLIC ...
- 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f, 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e,
- //0x04a0: BLAC KDRA GON RYAN
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49,
- //0x04b0: . ..HE NDRI
- 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20,
- //0x04c0: X LO UIS
- 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d, 0x55, 0x53, 0x20, 0x20, 0x20, 0x20,
- //0x04d0: ... SEPT IMUS
- 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20, 0x20, 0x00, 0xff, 0xff, 0x20, 0x20,
- //0x04e0: BECK ETT . ..
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f,
- //0x04f0: . "ROO
- 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
- //0x0500: T ."
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x00, 0x30, 0x30, 0x00,
- //0x0510: . 0000 .00.
- 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x52, 0x32, 0x34, 0x43, 0x30,
- //0x0520: .... $SPE ECHR 24C0
- 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e,
- //0x0530: 005. RAW. OBJE CT N
- 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- //0x0540: AME ONE
+ 0x2e, 0x54, 0x35, 0x31, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x56, 0x4f,
+ //0x0400: .T51 .DRE AMWE B.VO
+ 0x4c, 0x00, 0x44, 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x47, 0x31, 0x35, 0x00, 0x44,
+ //0x0410: L.DR EAMW EB.G 15.D
+ 0x52, 0x45, 0x41, 0x4d, 0x57, 0x45, 0x42, 0x2e, 0x49, 0x30, 0x37, 0x00, 0x00, 0x01, 0x45, 0x58,
+ //0x0420: REAM WEB. I07. ..EX
+ 0x49, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x4c, 0x50, 0x20, 0x20, 0x20, 0x20,
+ //0x0430: IT HELP
+ 0x20, 0x20, 0x4c, 0x49, 0x53, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, 0x45, 0x41, 0x44,
+ //0x0440: LI ST READ
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x47, 0x4f, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20,
+ //0x0450: LO GON
+ 0x4b, 0x45, 0x59, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x00, 0x50, 0x55, 0x42, 0x4c,
+ //0x0460: KEYS .. PUBL
+ 0x49, 0x43, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x20,
+ //0x0470: IC PUBL IC
+ 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x47, 0x4f,
+ //0x0480: . ..BL ACKD RAGO
+ 0x4e, 0x20, 0x52, 0x59, 0x41, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00,
+ //0x0490: N RY AN ...
+ 0x48, 0x45, 0x4e, 0x44, 0x52, 0x49, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4c, 0x4f, 0x55, 0x49,
+ //0x04a0: HEND RIX LOUI
+ 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x53, 0x45, 0x50, 0x54, 0x49, 0x4d,
+ //0x04b0: S . ..SE PTIM
+ 0x55, 0x53, 0x20, 0x20, 0x20, 0x20, 0x42, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x54, 0x20, 0x20, 0x20,
+ //0x04c0: US BE CKET T
+ 0x20, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ //0x04d0: ...
+ 0x20, 0x00, 0x22, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ //0x04e0: ."R OOT .
+ 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x30, 0x30,
+ //0x04f0: " .00
+ 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x0d, 0x0a, 0x0d, 0x0a, 0x24, 0x53, 0x50, 0x45, 0x45, 0x43,
+ //0x0500: 00.0 0... ..$S PEEC
+ 0x48, 0x52, 0x32, 0x34, 0x43, 0x30, 0x30, 0x30, 0x35, 0x2e, 0x52, 0x41, 0x57, 0x00, 0x4f, 0x42,
+ //0x0510: HR24 C000 5.RA W.OB
+ 0x4a, 0x45, 0x43, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x20, 0x4f, 0x4e, 0x45, 0x20, 0x20, 0x20,
+ //0x0520: JECT NAM E ON E
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- //0x0550:
- 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- //0x0560: .... .... .... ....
- 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00,
- //0x0570: .... .... .D:. ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ //0x0530:
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x10, 0x12, 0x12, 0x11, 0x10, 0x10, 0x10, 0x01, 0x01,
+ //0x0540: .. .... ....
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x44,
+ //0x0550: .... .... .... ...D
+ 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ //0x0560: :... .... .... ....
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ //0x0570: .... .... .... ....
+ 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
//0x0580: .... .... .... ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a, 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00,
//0x0590: .... .... .... ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x02, 0x04, 0x01, 0x0a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x05a0: .... .... .... ....
- 0x09, 0x08, 0x06, 0x0b, 0x04, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x05b0: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x05c0: .... .... .... ....
@@ -6600,25 +6533,23 @@ void DreamGenContext::__start() {
//0x0600: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x0610: .... .... .... ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//0x0620: .... .... .... ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
//0x0630: .... .... .... ....
- 0xff, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
//0x0640: .... .... .... ....
- 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01,
//0x0650: .... .... .... ....
- 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01,
//0x0660: .... .... .... ....
- 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01,
//0x0670: .... .... .... ....
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01,
//0x0680: .... .... .... ....
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
//0x0690: .... .... .... ....
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- //0x06a0: .... .... .... ....
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, };
+ 0x00, };
ds.assign(src, src + sizeof(src));
dreamweb();
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 775cfdecbd..0956076b36 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -32,15 +32,15 @@
namespace DreamGen {
-static const uint16 offset_money1poke = 0x0518;
-static const uint16 offset_comlist = 0x0448;
-static const uint16 offset_openchangesize = 0x0446;
-static const uint16 offset_operand1 = 0x04ee;
-static const uint16 offset_commandline = 0x0538;
-static const uint16 offset_money2poke = 0x051d;
-static const uint16 offset_speechfile = 0x052b;
-static const uint16 offset_rootdir = 0x04fc;
-static const uint16 offset_keys = 0x0484;
+static const uint16 offset_commandline = 0x051e;
+static const uint16 offset_rootdir = 0x04e2;
+static const uint16 offset_money2poke = 0x0503;
+static const uint16 offset_openchangesize = 0x042c;
+static const uint16 offset_keys = 0x046a;
+static const uint16 offset_comlist = 0x042e;
+static const uint16 offset_money1poke = 0x04fe;
+static const uint16 offset_speechfile = 0x0511;
+static const uint16 offset_operand1 = 0x04d4;
static const uint16 kStartvars = 0;
static const uint16 kProgresspoints = 1;
static const uint16 kWatchon = 2;
@@ -416,21 +416,19 @@ static const uint16 kCharacterset3 = 977;
static const uint16 kBasicsample = 990;
static const uint16 kDiarygraphic = 1003;
static const uint16 kDiarytext = 1016;
-static const uint16 kEndtextname = 1029;
-static const uint16 kVolumetabname = 1042;
-static const uint16 kGungraphic = 1055;
-static const uint16 kMonkface = 1068;
-static const uint16 kTitle7graphics = 1081;
-static const uint16 kCurrentfile = 1290;
-static const uint16 kRoomscango = 1433;
-static const uint16 kRoompics = 1449;
-static const uint16 kOplist = 1464;
-static const uint16 kInputline = 1467;
-static const uint16 kPresslist = 1595;
-static const uint16 kSavenames = 1601;
-static const uint16 kQuitrequested = 1720;
-static const uint16 kSubtitles = 1721;
-static const uint16 kForeignrelease = 1722;
+static const uint16 kVolumetabname = 1029;
+static const uint16 kMonkface = 1042;
+static const uint16 kTitle7graphics = 1055;
+static const uint16 kCurrentfile = 1264;
+static const uint16 kRoomscango = 1407;
+static const uint16 kRoompics = 1423;
+static const uint16 kOplist = 1438;
+static const uint16 kInputline = 1441;
+static const uint16 kPresslist = 1569;
+static const uint16 kSavenames = 1575;
+static const uint16 kQuitrequested = 1694;
+static const uint16 kSubtitles = 1695;
+static const uint16 kForeignrelease = 1696;
static const uint16 kBlocktextdat = (0);
static const uint16 kPersonframes = (0);
static const uint16 kDebuglevel1 = (0);
@@ -566,7 +564,6 @@ public:
void useAltar();
void startTalk();
void getAnyAd();
- void endGame();
void usePipe();
void reminders();
void runTap();
@@ -636,7 +633,6 @@ public:
void useOpened();
void fillOpen();
void signOn();
- void showGun();
void locationPic();
void triggerMessage();
void swapWithOpen();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 3e37e55016..4b53f88f47 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -4118,4 +4118,50 @@ void DreamGenContext::hangOnPQ() {
flags._c = false;
}
+void DreamGenContext::endGame() {
+ loadTempText("DREAMWEB.T83");
+ monkSpeaking();
+ gettingShot();
+ getRidOfTempText();
+ data.byte(kVolumeto) = 7;
+ data.byte(kVolumedirection) = 1;
+ hangOn(200);
+}
+
+void DreamGenContext::showGun() {
+ data.byte(kAddtored) = 0;
+ data.byte(kAddtogreen) = 0;
+ data.byte(kAddtoblue) = 0;
+ palToStartPal();
+ palToEndPal();
+ greyscaleSum();
+ data.byte(kFadedirection) = 1;
+ data.byte(kFadecount) = 63;
+ data.byte(kColourpos) = 0;
+ data.byte(kNumtofade) = 128;
+ hangOn(130);
+ endPalToStart();
+ clearEndPal();
+ data.byte(kFadedirection) = 1;
+ data.byte(kFadecount) = 63;
+ data.byte(kColourpos) = 0;
+ data.byte(kNumtofade) = 128;
+ hangOn(200);
+ data.byte(kRoomssample) = 34;
+ loadRoomsSample();
+ data.byte(kVolume) = 0;
+ loadIntoTemp("DREAMWEB.G13");
+ createPanel2();
+ showFrame(tempGraphics(), 100, 4, 0, 0);
+ showFrame(tempGraphics(), 158, 106, 1, 0);
+ workToScreen();
+ getRidOfTemp();
+ fadeScreenUp();
+ hangOn(160);
+ playChannel0(12, 0);
+ loadTempText("DREAMWEB.T83");
+ rollEndCredits2();
+ getRidOfTempText();
+}
+
} // End of namespace DreamGen
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index e093c2ee91..3d29351df7 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -560,5 +560,7 @@
void doSaveLoad();
void useDiary();
void hangOnPQ();
+ void showGun();
+ void endGame();
#endif