diff options
| -rwxr-xr-x | devtools/tasmrecover/tasm-recover | 4 | ||||
| -rw-r--r-- | engines/dreamweb/dreambase.h | 5 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.cpp | 6 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.h | 48 | ||||
| -rw-r--r-- | engines/dreamweb/dreamweb.cpp | 5 | ||||
| -rw-r--r-- | engines/dreamweb/people.cpp | 4 | ||||
| -rw-r--r-- | engines/dreamweb/print.cpp | 6 | ||||
| -rw-r--r-- | engines/dreamweb/sound.cpp | 14 | ||||
| -rw-r--r-- | engines/dreamweb/sprite.cpp | 4 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.cpp | 20 | ||||
| -rw-r--r-- | engines/dreamweb/talk.cpp | 8 | ||||
| -rw-r--r-- | engines/dreamweb/titles.cpp | 26 | 
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);  | 
