[Scummvm-cvs-logs] scummvm master -> a682734bce80f45dba5e9309cf71a00be9fe50d0
bluegr
md5 at scummvm.org
Mon Dec 12 21:47:09 CET 2011
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
fc9a1b8407 DREAMWEB: Port 'getundercentre', 'processtrigger', 'putundercentre', 'triggermessage' to C++
d41c89124f DREAMWEB: Fix regression in entryAnims()
a682734bce DREAMWEB: Set volumeDirection as a negative integer, where this is used, instead of 0xFF
Commit: fc9a1b840707086064692992c5b02e17d7da065d
https://github.com/scummvm/scummvm/commit/fc9a1b840707086064692992c5b02e17d7da065d
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-12T12:43:03-08:00
Commit Message:
DREAMWEB: Port 'getundercentre', 'processtrigger', 'putundercentre', 'triggermessage' to C++
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/stubs.cpp
engines/dreamweb/stubs.h
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 526a010..ef04a2c 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -433,6 +433,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'getroomspaths',
'gettime',
'gettingshot',
+ 'getundercentre',
'getundermenu',
'getundertimed',
'getunderzoom',
@@ -604,7 +605,9 @@ generator = cpp(context, "DreamGen", blacklist = [
'printslow',
'printsprites',
'printundermon',
+ 'processtrigger',
'putbackobstuff',
+ 'putundercentre',
'putundermenu',
'putundertimed',
'putunderzoom',
@@ -759,6 +762,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'transferinv',
'transfertext',
'trapdoor',
+ 'triggermessage',
'trysoundalloc',
'turnanypathoff',
'turnanypathon',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index f449b8f..d98b238 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2821,28 +2821,6 @@ _tmp2:
workToScreenM();
}
-void DreamGenContext::getUnderCentre() {
- STACK_CHECK;
- di = 58;
- bx = 72;
- ds = data.word(kMapstore);
- si = 0;
- cl = 254;
- ch = 110;
- multiGet();
-}
-
-void DreamGenContext::putUnderCentre() {
- STACK_CHECK;
- di = 58;
- bx = 72;
- ds = data.word(kMapstore);
- si = 0;
- cl = 254;
- ch = 110;
- multiPut();
-}
-
void DreamGenContext::locationPic() {
STACK_CHECK;
getDestInfo();
@@ -3544,68 +3522,6 @@ finishpars:
di = offset_operand1;
}
-void DreamGenContext::processTrigger() {
- STACK_CHECK;
- _cmp(data.byte(kLasttrigger), '1');
- if (!flags.z())
- goto notfirsttrigger;
- al = 8;
- setLocation();
- al = 45;
- triggerMessage();
- return;
-notfirsttrigger:
- _cmp(data.byte(kLasttrigger), '2');
- if (!flags.z())
- goto notsecondtrigger;
- al = 9;
- setLocation();
- al = 55;
- triggerMessage();
- return;
-notsecondtrigger:
- _cmp(data.byte(kLasttrigger), '3');
- if (!flags.z())
- return /* (notthirdtrigger) */;
- al = 2;
- setLocation();
- al = 59;
- triggerMessage();
-}
-
-void DreamGenContext::triggerMessage() {
- STACK_CHECK;
- push(ax);
- di = 174;
- bx = 153;
- cl = 200;
- ch = 63;
- ds = data.word(kMapstore);
- si = 0;
- multiGet();
- ax = pop();
- findPuzText();
- di = 174;
- bx = 156;
- dl = 141;
- ah = 16;
- printDirect();
- cx = 140;
- hangOn();
- workToScreen();
- cx = 340;
- hangOn();
- di = 174;
- bx = 153;
- cl = 200;
- ch = 63;
- ds = data.word(kMapstore);
- si = 0;
- multiPut();
- workToScreen();
- data.byte(kLasttrigger) = 0;
-}
-
void DreamGenContext::runTap() {
STACK_CHECK;
_cmp(data.byte(kWithobject), 255);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 337a331..746f306 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -491,7 +491,6 @@ public:
void useOpenBox();
void clearBuffers();
void getObTextStart();
- void putUnderCentre();
void checkObjectSize();
void findText1();
void isRyanHolding();
@@ -544,7 +543,6 @@ public:
void purgeALocation();
void notHeldError();
void getSetAd();
- void getUnderCentre();
void showKeys();
void printmessage2();
void findOpenPos();
@@ -572,7 +570,6 @@ public:
void useOpened();
void signOn();
void locationPic();
- void triggerMessage();
void swapWithOpen();
void dreamweb();
void checkInside();
@@ -603,7 +600,6 @@ public:
void getPersonText();
void parser();
void emergencyPurge();
- void processTrigger();
void transferConToEx();
void adjustDown();
void withWhat();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 20d2b64..1521ddd 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -862,6 +862,45 @@ void DreamGenContext::putUnderTimed() {
multiPut(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
}
+void DreamGenContext::getUnderCentre() {
+ ds = data.word(kMapstore);
+ si = 0;
+ multiGet(ds.ptr(si, 0), 58, 72, 254, 110);
+}
+
+void DreamGenContext::putUnderCentre() {
+ ds = data.word(kMapstore);
+ si = 0;
+ multiPut(ds.ptr(si, 0), 58, 72, 254, 110);
+}
+
+void DreamGenContext::triggerMessage(uint16 index) {
+ multiGet(mapStore(), 174, 153, 200, 63);
+ uint16 offset = kTextstart + getSegment(data.word(kPuzzletext)).word(index * 2);
+ const uint8 *string = getSegment(data.word(kPuzzletext)).ptr(offset, 0);
+ uint16 y = 156;
+ printDirect(&string, 174, &y, 141, true);
+ hangOn(140);
+ workToScreenCPP();
+ hangOn(340);
+ multiPut(mapStore(), 174, 153, 200, 63);
+ workToScreenCPP();
+ data.byte(kLasttrigger) = 0;
+}
+
+void DreamGenContext::processTrigger() {
+ if (data.byte(kLasttrigger) == '1') {
+ setLocation(8);
+ triggerMessage(45);
+ } else if (data.byte(kLasttrigger) == '2') {
+ setLocation(9);
+ triggerMessage(55);
+ } else if (data.byte(kLasttrigger) == '3') {
+ setLocation(2);
+ triggerMessage(59);
+ }
+}
+
void DreamGenContext::useTimedText() {
if (data.word(kTimecount) == 0)
return;
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index ca1b68f..5cf0466 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -569,5 +569,9 @@
void quitKey();
void setupTimedUse();
void entryAnims();
+ void getUnderCentre();
+ void putUnderCentre();
+ void triggerMessage(uint16 index);
+ void processTrigger();
#endif
Commit: d41c89124f035f4922615ea02e9e8e74f6e3ddf6
https://github.com/scummvm/scummvm/commit/d41c89124f035f4922615ea02e9e8e74f6e3ddf6
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-12T12:43:56-08:00
Commit Message:
DREAMWEB: Fix regression in entryAnims()
Changed paths:
engines/dreamweb/stubs.cpp
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 1521ddd..4a870fa 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -4449,7 +4449,7 @@ void DreamGenContext::entryAnims() {
default:
if (data.byte(kReallocation) == 46 && data.byte(kSartaindead) == 1) { // Crystal
removeFreeObject(0);
- } else if (data.byte(kLocation) == 9 && checkIfPathIsOn(2) && data.byte(kAidedead) == 0) {
+ } else if (data.byte(kLocation) == 9 && !checkIfPathIsOn(2) && data.byte(kAidedead) != 0) {
// Top of church
if (checkIfPathIsOn(3))
turnPathOn(2);
Commit: a682734bce80f45dba5e9309cf71a00be9fe50d0
https://github.com/scummvm/scummvm/commit/a682734bce80f45dba5e9309cf71a00be9fe50d0
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2011-12-12T12:46:28-08:00
Commit Message:
DREAMWEB: Set volumeDirection as a negative integer, where this is used, instead of 0xFF
Changed paths:
engines/dreamweb/sprite.cpp
engines/dreamweb/stubs.cpp
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index e93a77f..aca935c 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -763,7 +763,7 @@ void DreamBase::rollEndCredits() {
playChannel0(16, 255);
data.byte(kVolume) = 7;
data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = 0xFF;
+ data.byte(kVolumedirection) = (byte)-1;
multiGet(mapStore(), 75, 20, 160, 160);
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 4a870fa..4f0661e 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -576,7 +576,7 @@ void DreamGenContext::dreamweb() {
data.byte(kLastflag) = 32;
startup1();
data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = (uint8)-1;
+ data.byte(kVolumedirection) = (byte)-1;
data.byte(kCommandtype) = 255;
}
@@ -3070,7 +3070,7 @@ void DreamGenContext::intro() {
clearPalette();
loadIntroRoom();
data.byte(kVolume) = 7;
- data.byte(kVolumedirection) = (uint8)-1;
+ data.byte(kVolumedirection) = (byte)-1;
data.byte(kVolumeto) = 4;
playChannel0(12, 255);
fadeScreenUps();
@@ -3286,7 +3286,7 @@ void DreamGenContext::gettingShot() {
loadIntroRoom();
fadeScreenUps();
data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = 0xFF;
+ data.byte(kVolumedirection) = (byte)-1;
runEndSeq();
clearBeforeLoad();
}
@@ -3935,7 +3935,7 @@ void DreamGenContext::talk() {
workToScreenM();
if (data.byte(kSpeechloaded) == 1) {
cancelCh1();
- data.byte(kVolumedirection) = 0xFF;
+ data.byte(kVolumedirection) = (byte)-1;
data.byte(kVolumeto) = 0;
}
}
@@ -4258,7 +4258,7 @@ void DreamGenContext::monkSpeaking() {
showFrame(tempGraphics(), 160, 72, 0, 128); // show monk
workToScreen();
data.byte(kVolume) = 7;
- data.byte(kVolumedirection) = 0xFF;
+ data.byte(kVolumedirection) = (byte)-1;
data.byte(kVolumeto) = 5;
playChannel0(12, 255);
fadeScreenUps();
More information about the Scummvm-git-logs
mailing list