[Scummvm-cvs-logs] scummvm master -> 8f16d1fc977759b50e4d63f22f60155ca82c8270

dreammaster dreammaster at scummvm.org
Mon Jun 2 07:03:06 CEST 2014


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
82b56efc42 MADS: Fix for dialog when getting vase
8f16d1fc97 MADS: Implement actions for scene 804


Commit: 82b56efc42b8f7596f5de783c7ea3ce45562757d
    https://github.com/scummvm/scummvm/commit/82b56efc42b8f7596f5de783c7ea3ce45562757d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2014-06-01T23:41:57-04:00

Commit Message:
MADS: Fix for dialog when getting vase

Changed paths:
    engines/mads/nebular/dialogs_nebular.cpp



diff --git a/engines/mads/nebular/dialogs_nebular.cpp b/engines/mads/nebular/dialogs_nebular.cpp
index d8a85d4..83369f5 100644
--- a/engines/mads/nebular/dialogs_nebular.cpp
+++ b/engines/mads/nebular/dialogs_nebular.cpp
@@ -421,6 +421,8 @@ void PictureDialog::save() {
 	// Get the inventory frame, and adjust the dialog position to allow for it
 	MSprite *frame = asset->getFrame(0);
 	_position.y = frame->h + 12;
+	if ((_position.y + _height) > _vm->_screen.getHeight())
+		_position.y -= (_position.y + _height) - _vm->_screen.getHeight();
 
 	// Draw the inventory picture
 	frame->copyTo(&_vm->_screen, Common::Point(160 - frame->w / 2, 6),


Commit: 8f16d1fc977759b50e4d63f22f60155ca82c8270
    https://github.com/scummvm/scummvm/commit/8f16d1fc977759b50e4d63f22f60155ca82c8270
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2014-06-02T01:02:25-04:00

Commit Message:
MADS: Implement actions for scene 804

Changed paths:
    engines/mads/nebular/nebular_scenes.h
    engines/mads/nebular/nebular_scenes8.cpp
    engines/mads/nebular/nebular_scenes8.h



diff --git a/engines/mads/nebular/nebular_scenes.h b/engines/mads/nebular/nebular_scenes.h
index 6195395..cf33b21 100644
--- a/engines/mads/nebular/nebular_scenes.h
+++ b/engines/mads/nebular/nebular_scenes.h
@@ -118,6 +118,7 @@ enum Verb {
 	VERB_WALK           = 0x32F,
 	VERB_REFLECT        = 0x365,
 	VERB_GET_INTO       = 0x36A,
+	VERB_LOOK_OUT		= 0x397,
 	VERB_APPLY          = 0x3A6,
 	VERB_STEER_TOWARDS  = 0x3B1,
 	VERB_NIBBLE_ON      = 0x3B7,
diff --git a/engines/mads/nebular/nebular_scenes8.cpp b/engines/mads/nebular/nebular_scenes8.cpp
index 6650283..6039135 100644
--- a/engines/mads/nebular/nebular_scenes8.cpp
+++ b/engines/mads/nebular/nebular_scenes8.cpp
@@ -1002,7 +1002,8 @@ void Scene804::step() {
 			_game._objects.setRoom(OBJ_POLYCEMENT, NOWHERE);
 		}
 
-		if (_scene->_activeAnimation->getCurrentFrame() == 1) {
+		// FIXME: Original doesn't have resetFrame check. Check why this has been needed
+		if (_resetFrame == -1 &&  _scene->_activeAnimation->getCurrentFrame() == 1) {
 			int randomVal = _vm->getRandomNumber(29) + 1;
 			switch (randomVal) {
 			case 1:
@@ -1092,6 +1093,99 @@ void Scene804::step() {
 	}
 }
 
+void Scene804::actions() {
+	if (_action.isAction(VERB_LOOK, NOUN_SERVICE_PANEL) ||
+		_action.isAction(VERB_OPEN, NOUN_SERVICE_PANEL)) {
+		_scene->_nextSceneId = 805;
+	} else if ((_action.isAction(VERB_ACTIVATE, NOUN_REMOTE)) && _globals[kTopButtonPushed]) {
+		if (!_globals[kInSpace]) {    
+			// Top button pressed on panel in hanger control
+			if (!_globals[kBeamIsUp]) {
+				_globals[kFromCockpit] = true;
+				_globals[kUpBecauseOfRemote] = true;
+				_scene->_nextSceneId = 803;
+			} else {
+				// Player turning off remote
+				_globals[kBeamIsUp] = false;
+				_globals[kUpBecauseOfRemote] = false;
+				_scene->_sequences.remove(_globals._sequenceIndexes[8]);
+				_vm->_sound->command(15);
+			}
+		}
+	} else if (_action.isAction(VERB_PULL, NOUN_THROTTLE)) {
+		_game._player._stepEnabled = false;
+		if (_globals[kBeamIsUp]) {
+			if (!_game._objects.isInInventory(OBJ_VASE) && _globals[kWindowFixed]) {
+				_vm->_dialogs->show(80423);
+				_game._player._stepEnabled = true;
+			} else {
+				_action._inProgress = false;
+
+				//saveGame("REX000.SAV");
+
+				_vm->_dialogs->show(80424);
+				_pullThrottleReally = true;
+				_scene->_kernelMessages.add(Common::Point(78, 75), 0x1110, 0, 0,
+					120, _game.getQuote(791));
+			}
+		} else {
+			_messWithThrottle = true;
+		}
+	}
+	else if (_action.isAction(VERB_APPLY, NOUN_POLYCEMENT, NOUN_CRACK) ||
+		_action.isAction(VERB_PUT, NOUN_POLYCEMENT, NOUN_CRACK)) {
+		if (!_globals[kWindowFixed]) {
+			_resetFrame = 2;
+			_game._player._stepEnabled = false;
+		}
+	} else if (_action.isAction(VERB_EXIT, NOUN_SHIP)) {
+		_globals[kExitShip] = true;
+		_globals[kFromCockpit] = true;
+		if (_globals[kBeamIsUp]) {
+			_vm->_dialogs->show(80425);
+			_scene->_sequences.remove(_globals._sequenceIndexes[8]);
+			_vm->_sound->command(15);
+			_globals[kBeamIsUp] = false;
+		}
+		_game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON;
+		_scene->_sequences.addTimer(2, 90);
+	} else  if (_action._lookFlag) {
+		_vm->_dialogs->show(80410);
+	} else if ((_action.isAction(VERB_LOOK, NOUN_WINDOW)) ||
+			(_action.isAction(VERB_LOOK_OUT, NOUN_WINDOW))) {
+		if (_globals[kBeamIsUp]) {
+			_vm->_dialogs->show(80412);
+		} else {
+			_vm->_dialogs->show(80411);
+		}
+	} else if (_action.isAction(VERB_LOOK, NOUN_CRACK)) {
+		if (_globals[kWindowFixed]) {
+			_vm->_dialogs->show(80414);
+		} else {
+			_vm->_dialogs->show(80413);
+		}
+	} else if (_action.isAction(VERB_LOOK, NOUN_CONTROLS)) {
+		_vm->_dialogs->show(80415);
+	} else if (_action.isAction(VERB_LOOK, NOUN_STATUS_PANEL)) {
+		if (_globals[kBeamIsUp]) {
+			_vm->_dialogs->show(80417);
+		} else {
+			_vm->_dialogs->show(80416);
+		}
+	} else if (_action.isAction(VERB_LOOK, NOUN_TP)) {
+		_vm->_dialogs->show(80418);
+	} else if (_action.isAction(VERB_TAKE, NOUN_TP)) {
+		_vm->_dialogs->show(80419);
+	} else if (_action.isAction(VERB_LOOK, NOUN_INSTRUMENTATION)) {
+		_vm->_dialogs->show(80420);
+	} else  if (_action.isAction(VERB_LOOK, NOUN_SEAT)) {
+		_vm->_dialogs->show(80421);
+	} else
+		return;
+
+	_action._inProgress = false;
+}
+
 /*------------------------------------------------------------------------*/
 
 void Scene805::setup() {
diff --git a/engines/mads/nebular/nebular_scenes8.h b/engines/mads/nebular/nebular_scenes8.h
index 39e022e..7f2c34a 100644
--- a/engines/mads/nebular/nebular_scenes8.h
+++ b/engines/mads/nebular/nebular_scenes8.h
@@ -108,7 +108,7 @@ public:
 	virtual void setup();
 	virtual void enter();
 	virtual void step();
-	virtual void actions() {};
+	virtual void actions();
 };
 
 class Scene805 : public Scene8xx{






More information about the Scummvm-git-logs mailing list