diff options
| author | Bertrand Augereau | 2011-12-04 14:22:13 +0100 | 
|---|---|---|
| committer | Bertrand Augereau | 2011-12-04 14:39:29 +0100 | 
| commit | 3956046e50630e711dc705dbb3d8dedcac870ad5 (patch) | |
| tree | 369289828eaf5a9dcc8c9c973f9536594e5ef022 | |
| parent | d9e31be349b38313cc2be8cf68ec801494bac08b (diff) | |
| download | scummvm-rg350-3956046e50630e711dc705dbb3d8dedcac870ad5.tar.gz scummvm-rg350-3956046e50630e711dc705dbb3d8dedcac870ad5.tar.bz2 scummvm-rg350-3956046e50630e711dc705dbb3d8dedcac870ad5.zip | |
DREAMWEB: 'smokeBloke' ported to C++
| -rwxr-xr-x | devtools/tasmrecover/tasm-recover | 1 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.cpp | 41 | ||||
| -rw-r--r-- | engines/dreamweb/dreamgen.h | 1 | ||||
| -rw-r--r-- | engines/dreamweb/people.cpp | 25 | ||||
| -rw-r--r-- | engines/dreamweb/stubs.h | 1 | 
5 files changed, 25 insertions, 44 deletions
| diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover index 3592edb2df..cc8e9441e9 100755 --- a/devtools/tasmrecover/tasm-recover +++ b/devtools/tasmrecover/tasm-recover @@ -426,6 +426,7 @@ generator = cpp(context, "DreamGen", blacklist = [  	'showwatch',  	'showword',  	'singlekey', +	'smokebloke',  	'sortoutmap',  	'soundonreels',  	'sparky', diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 2ae5cc5107..bd861ca4e3 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -107,47 +107,6 @@ gotrecep:  	data.byte(kTalkedtorecep) = 1;  } -void DreamGenContext::smokeBloke() { -	STACK_CHECK; -	_cmp(data.byte(kRockstardead), 0); -	if (!flags.z()) -		goto notspokento; -	al = es.byte(bx+7); -	_and(al, 128); -	if (flags.z()) -		goto notspokento; -	push(es); -	push(bx); -	al = 5; -	setLocation(); -	bx = pop(); -	es = pop(); -notspokento: -	checkSpeed(); -	if (!flags.z()) -		goto gotsmokeb; -	_cmp(es.word(bx+3), 100); -	if (!flags.z()) -		goto notsmokeb1; -	randomNumber(); -	_cmp(al, 30); -	if (flags.c()) -		goto notsmokeb2; -	es.word(bx+3) = 96; -	goto gotsmokeb; -notsmokeb1: -	_cmp(es.word(bx+3), 117); -	if (!flags.z()) -		goto notsmokeb2; -	es.word(bx+3) = 96; -	goto gotsmokeb; -notsmokeb2: -	_inc(es.word(bx+3)); -gotsmokeb: -	showGameReel(); -	addToPeopleList(); -} -  void DreamGenContext::attendant() {  	STACK_CHECK;  	showGameReel(); diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 8fa0c25b70..f7aa6c6d0a 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -789,7 +789,6 @@ public:  	void useLadder();  	void realCredits();  	void handClap(); -	void smokeBloke();  	void afterIntroRoom();  	void findAllOpen();  	void readFromFile(); diff --git a/engines/dreamweb/people.cpp b/engines/dreamweb/people.cpp index 6479d29022..a05d892c65 100644 --- a/engines/dreamweb/people.cpp +++ b/engines/dreamweb/people.cpp @@ -27,7 +27,7 @@ namespace DreamGen {  static void (DreamGenContext::*reelCallbacks[57])() = {  	NULL, NULL,  	NULL, &DreamGenContext::edenInBath, -	NULL, &DreamGenContext::smokeBloke, +	NULL, NULL,  	&DreamGenContext::manAsleep, &DreamGenContext::drunk,  	&DreamGenContext::receptionist, NULL,  	NULL, &DreamGenContext::louis, @@ -59,7 +59,7 @@ static void (DreamGenContext::*reelCallbacks[57])() = {  static void (DreamGenContext::*reelCallbacksCPP[57])(ReelRoutine &) = {  	&DreamGenContext::gamer, &DreamGenContext::sparkyDrip,  	&DreamGenContext::eden, /*&DreamGenContext::edenInBath*/NULL, -	&DreamGenContext::sparky, /*&DreamGenContext::smokeBloke*/NULL, +	&DreamGenContext::sparky, &DreamGenContext::smokeBloke,  	/*&DreamGenContext::manAsleep*/NULL, /*&DreamGenContext::drunk*/NULL,  	/*&DreamGenContext::receptionist*/NULL, &DreamGenContext::maleFan,  	&DreamGenContext::femaleFan, /*&DreamGenContext::louis*/NULL, @@ -327,5 +327,26 @@ void DreamGenContext::madmansTelly(ReelRoutine &routine) {  	showGameReel(&routine);  } + +void DreamGenContext::smokeBloke(ReelRoutine &routine) { +	if (data.byte(kRockstardead) == 0) { +		if (routine.b7 & 128) +			setLocation(5); +	} +	if (checkSpeed(&routine)) { +		if (routine.reelPointer() == 100) { +			if (engine->randomNumber() < 30) +				routine.incReelPointer(); +			else +				routine.setReelPointer(96); +		} else if (routine.reelPointer() == 117) +			routine.setReelPointer(96); +		else +			routine.incReelPointer(); +	} +	showGameReel(&routine); +	addToPeopleList(&routine); +} +  } /*namespace dreamgen */ diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 6414a4e914..7339f937bc 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -397,6 +397,7 @@  	void maleFan(ReelRoutine &routine);  	void rockstar(ReelRoutine &routine);  	void madmansTelly(ReelRoutine &routine); +	void smokeBloke(ReelRoutine &routine);  	void singleKey(uint8 key, uint16 x, uint16 y);  	void showKeypad();  	void showOuterPad(); | 
