aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdevtools/tasmrecover/tasm-recover4
-rw-r--r--engines/dreamweb/dreambase.h5
-rw-r--r--engines/dreamweb/dreamgen.cpp6
-rw-r--r--engines/dreamweb/dreamgen.h48
-rw-r--r--engines/dreamweb/dreamweb.cpp5
-rw-r--r--engines/dreamweb/people.cpp4
-rw-r--r--engines/dreamweb/print.cpp6
-rw-r--r--engines/dreamweb/sound.cpp14
-rw-r--r--engines/dreamweb/sprite.cpp4
-rw-r--r--engines/dreamweb/stubs.cpp20
-rw-r--r--engines/dreamweb/talk.cpp8
-rw-r--r--engines/dreamweb/titles.cpp26
12 files changed, 79 insertions, 71 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 8cf4bf4cc4..5fd53bb90d 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -225,6 +225,10 @@ p = parser(skip_binary_data = [
'timer1',
'timer2',
'timer3',
+ 'volume',
+ 'volumeto',
+ 'volumedirection',
+ 'volumecount',
'wholetimer',
'wongame',
'timer1to',
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index 07afc167c9..47f0cec24f 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -181,6 +181,11 @@ public:
uint8 _channel0Repeat;
uint8 _channel1Playing;
+ uint8 _volume;
+ uint8 _volumeTo;
+ int8 _volumeDirection;
+ uint8 _volumeCount;
+
bool _speechLoaded;
// from backdrop.cpp
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 53d814eb46..239725c263 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -63,11 +63,9 @@ void DreamGenContext::__start() {
//0x00f0: .... .... .... ....
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x0100: .... .... .... ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x0110: .... .... .... ....
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- //0x0120: .... .... .... ....
- 0x00, };
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
ds.assign(src, src + sizeof(src));
dreamweb();
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index f1f5f96a44..fa13b47c2d 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -240,32 +240,28 @@ static const uint16 kAddtogreen = 264;
static const uint16 kAddtored = 265;
static const uint16 kAddtoblue = 266;
static const uint16 kLastsoundreel = 267;
-static const uint16 kVolume = 269;
-static const uint16 kVolumeto = 270;
-static const uint16 kVolumedirection = 271;
-static const uint16 kVolumecount = 272;
-static const uint16 kLasthardkey = 273;
-static const uint16 kBufferin = 274;
-static const uint16 kBufferout = 276;
-static const uint16 kWorkspace = 278;
-static const uint16 kMainsprites = 280;
-static const uint16 kBackdrop = 282;
-static const uint16 kRecordspace = 284;
-static const uint16 kBlinkframe = 286;
-static const uint16 kBlinkcount = 287;
-static const uint16 kReasseschanges = 288;
-static const uint16 kPointerspath = 289;
-static const uint16 kManspath = 290;
-static const uint16 kPointerfirstpath = 291;
-static const uint16 kFinaldest = 292;
-static const uint16 kDestination = 293;
-static const uint16 kLinestartx = 294;
-static const uint16 kLinestarty = 296;
-static const uint16 kLineendx = 298;
-static const uint16 kLineendy = 300;
-static const uint16 kLinepointer = 302;
-static const uint16 kLinedirection = 303;
-static const uint16 kLinelength = 304;
+static const uint16 kLasthardkey = 269;
+static const uint16 kBufferin = 270;
+static const uint16 kBufferout = 272;
+static const uint16 kWorkspace = 274;
+static const uint16 kMainsprites = 276;
+static const uint16 kBackdrop = 278;
+static const uint16 kRecordspace = 280;
+static const uint16 kBlinkframe = 282;
+static const uint16 kBlinkcount = 283;
+static const uint16 kReasseschanges = 284;
+static const uint16 kPointerspath = 285;
+static const uint16 kManspath = 286;
+static const uint16 kPointerfirstpath = 287;
+static const uint16 kFinaldest = 288;
+static const uint16 kDestination = 289;
+static const uint16 kLinestartx = 290;
+static const uint16 kLinestarty = 292;
+static const uint16 kLineendx = 294;
+static const uint16 kLineendy = 296;
+static const uint16 kLinepointer = 298;
+static const uint16 kLinedirection = 299;
+static const uint16 kLinelength = 300;
static const uint16 kBlocktextdat = (0);
static const uint16 kPersonframes = (0);
static const uint16 kDebuglevel1 = (0);
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index c89da250aa..de6a48170d 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -419,6 +419,11 @@ DreamBase::DreamBase(DreamWeb::DreamWebEngine *en) :
_channel0Repeat = 0;
_channel1Playing = 0xff;
+ _volume = 0;
+ _volumeTo = 0;
+ _volumeDirection = 0;
+ _volumeCount = 0;
+
_speechLoaded = false;
_backdropBlocks = 0;
diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp
index 0e18303926..5b04e5be60 100644
--- a/engines/dreamweb/people.cpp
+++ b/engines/dreamweb/people.cpp
@@ -1016,8 +1016,8 @@ void DreamBase::endGameSeq(ReelRoutine &routine) {
fadeScreenDownHalf();
} else if (nextReelPointer == 324) {
fadeScreenDowns();
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
+ _volumeTo = 7;
+ _volumeDirection = 1;
}
if (nextReelPointer == 340)
diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp
index b20726dc44..9bdebc1e14 100644
--- a/engines/dreamweb/print.cpp
+++ b/engines/dreamweb/print.cpp
@@ -247,9 +247,9 @@ const char *DreamBase::monPrint(const char *string) {
void DreamBase::rollEndCreditsGameWon() {
playChannel0(16, 255);
- data.byte(kVolume) = 7;
- data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = (byte)-1;
+ _volume = 7;
+ _volumeTo = 0;
+ _volumeDirection = -1;
multiGet(_mapStore, 75, 20, 160, 160);
diff --git a/engines/dreamweb/sound.cpp b/engines/dreamweb/sound.cpp
index 8985950d68..774f22a0b9 100644
--- a/engines/dreamweb/sound.cpp
+++ b/engines/dreamweb/sound.cpp
@@ -43,15 +43,15 @@ bool DreamBase::loadSpeech(byte type1, int idx1, byte type2, int idx2) {
void DreamBase::volumeAdjust() {
- if (data.byte(kVolumedirection) == 0)
+ if (_volumeDirection == 0)
return;
- if (data.byte(kVolume) != data.byte(kVolumeto)) {
- data.byte(kVolumecount) += 64;
+ if (_volume != _volumeTo) {
+ _volumeCount += 64;
// Only modify the volume every 256/64 = 4th time around
- if (data.byte(kVolumecount) == 0)
- data.byte(kVolume) += data.byte(kVolumedirection);
+ if (_volumeCount == 0)
+ _volume += _volumeDirection;
} else {
- data.byte(kVolumedirection) = 0;
+ _volumeDirection = 0;
}
}
@@ -194,7 +194,7 @@ void DreamWebEngine::soundHandler() {
_base._subtitles = ConfMan.getBool("subtitles");
_base.volumeAdjust();
- uint volume = _base.data.byte(DreamGen::kVolume);
+ uint volume = _base._volume;
//.vol file loaded into soundbuf:0x4000
//volume table at (volume * 0x100 + 0x3f00)
//volume value could be from 1 to 7
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index cc7631439a..83a05b9bb0 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -786,8 +786,8 @@ void DreamBase::textForMonk() {
else if (data.byte(kIntrocount) == 53) {
fadeScreenDowns();
if (isCD()) {
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
+ _volumeTo = 7;
+ _volumeDirection = 1;
}
}
}
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 44c5decd70..0c7877f8e4 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -563,7 +563,7 @@ void DreamBase::dreamweb() {
data.byte(kLocation) = 255;
data.byte(kRoomafterdream) = 1;
data.byte(kNewlocation) = 35;
- data.byte(kVolume) = 7;
+ _volume = 7;
loadRoom();
clearSprites();
initMan();
@@ -573,8 +573,8 @@ void DreamBase::dreamweb() {
initialInv();
data.byte(kLastflag) = 32;
startup1();
- data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = (byte)-1;
+ _volumeTo = 0;
+ _volumeDirection = -1;
data.byte(kCommandtype) = 255;
}
@@ -2565,21 +2565,21 @@ void DreamBase::atmospheres() {
// I'm interpreting this as if the cmp reallocation is below the jz
if (data.byte(kMapy) == 0) {
- data.byte(kVolume) = 0; // "fullvol"
+ _volume = 0; // "fullvol"
return;
}
if (data.byte(kReallocation) == 2 && data.byte(kMapx) == 22 && data.byte(kMapy) == 10)
- data.byte(kVolume) = 5; // "louisvol"
+ _volume = 5; // "louisvol"
if (isCD() && data.byte(kReallocation) == 14) {
if (data.byte(kMapx) == 33) {
- data.byte(kVolume) = 0; // "ismad2"
+ _volume = 0; // "ismad2"
return;
}
if (data.byte(kMapx) == 22) {
- data.byte(kVolume) = 5;
+ _volume = 5;
return;
}
@@ -2588,12 +2588,12 @@ void DreamBase::atmospheres() {
if (data.byte(kReallocation) == 2) {
if (data.byte(kMapx) == 22) {
- data.byte(kVolume) = 5; // "louisvol"
+ _volume = 5; // "louisvol"
return;
}
if (data.byte(kMapx) == 11) {
- data.byte(kVolume) = 0; // "fullvol"
+ _volume = 0; // "fullvol"
return;
}
}
@@ -3162,7 +3162,7 @@ void DreamBase::showGun() {
hangOn(200);
_roomsSample = 34;
loadRoomsSample();
- data.byte(kVolume) = 0;
+ _volume = 0;
loadIntoTemp("DREAMWEB.G13");
createPanel2();
showFrame(_tempGraphics, 100, 4, 0, 0);
diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp
index ed52e76bd7..5478a0f1f2 100644
--- a/engines/dreamweb/talk.cpp
+++ b/engines/dreamweb/talk.cpp
@@ -68,8 +68,8 @@ void DreamBase::talk() {
workToScreenM();
if (_speechLoaded) {
cancelCh1();
- data.byte(kVolumedirection) = (byte)-1;
- data.byte(kVolumeto) = 0;
+ _volumeDirection = -1;
+ _volumeTo = 0;
}
}
@@ -101,8 +101,8 @@ void DreamBase::startTalk() {
_speechLoaded = false;
loadSpeech('R', data.byte(kReallocation), 'C', 64*(data.byte(kCharacter) & 0x7F));
if (_speechLoaded) {
- data.byte(kVolumedirection) = 1;
- data.byte(kVolumeto) = 6;
+ _volumeDirection = 1;
+ _volumeTo = 6;
playChannel1(50 + 12);
}
}
diff --git a/engines/dreamweb/titles.cpp b/engines/dreamweb/titles.cpp
index f30283e45a..529f400ff6 100644
--- a/engines/dreamweb/titles.cpp
+++ b/engines/dreamweb/titles.cpp
@@ -30,8 +30,8 @@ void DreamBase::endGame() {
monkSpeaking();
gettingShot();
getRidOfTempText();
- data.byte(kVolumeto) = 7;
- data.byte(kVolumedirection) = 1;
+ _volumeTo = 7;
+ _volumeDirection = 1;
hangOn(200);
}
@@ -44,9 +44,9 @@ void DreamBase::monkSpeaking() {
clearWork();
showFrame(_tempGraphics, 160, 72, 0, 128); // show monk
workToScreen();
- data.byte(kVolume) = 7;
- data.byte(kVolumedirection) = (byte)-1;
- data.byte(kVolumeto) = 5;
+ _volume = 7;
+ _volumeDirection = -1;
+ _volumeTo = 5;
playChannel0(12, 255);
fadeScreenUps();
hangOn(300);
@@ -61,8 +61,8 @@ void DreamBase::monkSpeaking() {
} while (_channel1Playing != 255);
}
- data.byte(kVolumedirection) = 1;
- data.byte(kVolumeto) = 7;
+ _volumeDirection = 1;
+ _volumeTo = 7;
fadeScreenDowns();
hangOn(300);
getRidOfTemp();
@@ -73,8 +73,8 @@ void DreamBase::gettingShot() {
clearPalette();
loadIntroRoom();
fadeScreenUps();
- data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = (byte)-1;
+ _volumeTo = 0;
+ _volumeDirection = -1;
runEndSeq();
clearBeforeLoad();
}
@@ -125,9 +125,9 @@ void DreamBase::intro() {
data.byte(kNewlocation) = 50;
clearPalette();
loadIntroRoom();
- data.byte(kVolume) = 7;
- data.byte(kVolumedirection) = (byte)-1;
- data.byte(kVolumeto) = 4;
+ _volume = 7;
+ _volumeDirection = -1;
+ _volumeTo = 4;
playChannel0(12, 255);
fadeScreenUps();
runIntroSeq();
@@ -265,7 +265,7 @@ void DreamBase::set16ColPalette() {
void DreamBase::realCredits() {
_roomsSample = 33;
loadRoomsSample();
- data.byte(kVolume) = 0;
+ _volume = 0;
initGraphics(640, 480, true);
hangOn(35);