diff options
| author | Jaromir Wysoglad | 2019-06-06 08:45:13 +0200 | 
|---|---|---|
| committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 | 
| commit | 9e9602051c82cd0173cfb35c28f3318745a9629e (patch) | |
| tree | 7516f01da52f362d365c94d4fa6e81f8707891c0 /engines/supernova2/rooms.cpp | |
| parent | b4c59bee451f6715c368d9607786eb5ddb40b6f0 (diff) | |
| download | scummvm-rg350-9e9602051c82cd0173cfb35c28f3318745a9629e.tar.gz scummvm-rg350-9e9602051c82cd0173cfb35c28f3318745a9629e.tar.bz2 scummvm-rg350-9e9602051c82cd0173cfb35c28f3318745a9629e.zip  | |
SUPERNOVA2: Add missing interactions in Cabin room
Diffstat (limited to 'engines/supernova2/rooms.cpp')
| -rw-r--r-- | engines/supernova2/rooms.cpp | 48 | 
1 files changed, 37 insertions, 11 deletions
diff --git a/engines/supernova2/rooms.cpp b/engines/supernova2/rooms.cpp index f9b8056843..43599b7ec1 100644 --- a/engines/supernova2/rooms.cpp +++ b/engines/supernova2/rooms.cpp @@ -688,7 +688,6 @@ bool Games::interact(Action verb, Object &obj1, Object &obj2) {  Cabin::Cabin(Supernova2Engine *vm, GameManager *gm) {  	_vm = vm;  	_gm = gm; -	_paid = false;  	_fileNumber = 7;  	_id = CABIN; @@ -712,7 +711,7 @@ void Cabin::onEntrance() {  }  void Cabin::animation() { -	if (_paid) { +	if (_shown[kMaxSection - 1]) {  		if (isSectionVisible(1))  			setSectionVisible(1, kShownFalse);  		else @@ -725,30 +724,29 @@ bool Cabin::interact(Action verb, Object &obj1, Object &obj2) {  	if (verb == ACTION_USE && Object::combine(obj1, obj2, MONEY, SLOT1)) {  		if (isSectionVisible(2))  			_vm->renderMessage(kStringTakeMoney); -		else if (_paid) +		else if (_shown[kMaxSection - 1])  			_vm->renderMessage(kStringAlreadyPaid);  		else if (_gm->_state._money < 10)  			_vm->renderMessage(kStringNoMoney);  		else {  			_vm->renderMessage(kStringPay10Xa);  			_gm->takeMoney(-10); -			_paid = true; +			_shown[kMaxSection - 1] = true;  		} -	} -	else if (verb == ACTION_USE && obj1._id == CHAIR) { -		if (_paid) { +	} else if (verb == ACTION_USE && obj1._id == CHAIR) { +		if (_shown[kMaxSection - 1]) {  			if (_shown[kMaxSection - 2]) {  				_vm->paletteFadeOut();  				_vm->setCurrentImage(31);  				_vm->renderImage(0);  				_vm->paletteFadeIn(); -				_paid = true; +				_shown[kMaxSection - 1] = true;  				_gm->waitOnInput(100000);  				_vm->paletteFadeOut();  				_vm->setCurrentImage(7);  				_vm->renderImage(0);  				setSectionVisible(1, kShownFalse); -				_paid = false; +				_shown[kMaxSection - 1] = false;  				_vm->renderRoom(*this);  				_vm->renderImage(2);  				_gm->drawMapExits(); @@ -776,8 +774,36 @@ bool Cabin::interact(Action verb, Object &obj1, Object &obj2) {  			}  		} else  			_vm->renderMessage(kStringRest); -	} -	else  +	} else if (verb == ACTION_TAKE && obj1._id == PRIZE) { +		_vm->renderImage(2 + 128); +		obj1._click = 255; +		_gm->takeMoney(400); +	} else if (verb == ACTION_TAKE && obj1._id == BACK_MONEY) { +		_vm->renderImage(2 + 128); +		obj1._click = 255; +		_gm->takeMoney(10); +	} else if (verb == ACTION_LOOK && obj1._id == SCRIBBLE1) { +		_vm->renderMessage(kStringCypher); +	} else if (verb == ACTION_LOOK && obj1._id == SCRIBBLE2) { +		_gm->animationOff(); +		_vm->setCurrentImage(28); +		_vm->renderImage(0); +		_gm->waitOnInput(100000); +		_vm->setCurrentImage(7); +		_vm->renderRoom(*this); +		_gm->drawGUI(); +		_gm->_state._addressKnown = true; +		_gm->animationOn(); +	} else if (verb == ACTION_LOOK && obj1._id == SIGN) { +		_gm->animationOff(); +		_vm->setCurrentImage(38); +		_vm->renderImage(0); +		_gm->waitOnInput(100000); +		_vm->setCurrentImage(7); +		_vm->renderRoom(*this); +		_gm->drawGUI(); +		_gm->animationOn(); +	} else   		return false;  	return true;  }  | 
