[Scummvm-git-logs] scummvm master -> 34b7451b15a76658ded935c2ff6b96e8fa4ab030

phcoder phcoder at gmail.com
Mon Oct 26 08:39:16 UTC 2020


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:
0446966e32 HADESCH: support restore from launcher
34b7451b15 HADESCH: Fix mast softlock in argo scene


Commit: 0446966e32afb9a872110a85d527d3a11ce79791
    https://github.com/scummvm/scummvm/commit/0446966e32afb9a872110a85d527d3a11ce79791
Author: Vladimir Serbinenko (phcoder at google.com)
Date: 2020-10-26T09:38:50+01:00

Commit Message:
HADESCH: support restore from launcher

Changed paths:
    engines/hadesch/hadesch.cpp
    engines/hadesch/metaengine.cpp


diff --git a/engines/hadesch/hadesch.cpp b/engines/hadesch/hadesch.cpp
index b33e5013a8..c315828f54 100644
--- a/engines/hadesch/hadesch.cpp
+++ b/engines/hadesch/hadesch.cpp
@@ -518,7 +518,12 @@ Common::Error HadeschEngine::run() {
 
 	debug("HadeschEngine: moving to main loop");
 	_nextRoom.clear();
-	_nextRoom.push_back(kIntroRoom);
+	int loadSlot = ConfMan.getInt("save_slot");
+	if (loadSlot >= 0) {
+		loadGameState(loadSlot);
+	} else {
+		_nextRoom.push_back(kIntroRoom);
+	}
 
 	while (true) {
 		if (_isRestoring) {
diff --git a/engines/hadesch/metaengine.cpp b/engines/hadesch/metaengine.cpp
index 752a1bc730..1c7a609b12 100644
--- a/engines/hadesch/metaengine.cpp
+++ b/engines/hadesch/metaengine.cpp
@@ -32,6 +32,7 @@ public:
 	bool hasFeature(MetaEngineFeature f) const override {
 		return
 			(f == kSupportsListSaves) ||
+			(f == kSupportsLoadingDuringStartup) ||
 			(f == kSupportsDeleteSave) ||
 			(f == kSavesSupportMetaInfo) ||
 			(f == kSavesSupportThumbnail) ||


Commit: 34b7451b15a76658ded935c2ff6b96e8fa4ab030
    https://github.com/scummvm/scummvm/commit/34b7451b15a76658ded935c2ff6b96e8fa4ab030
Author: Vladimir Serbinenko (phcoder at google.com)
Date: 2020-10-26T09:38:50+01:00

Commit Message:
HADESCH: Fix mast softlock in argo scene

Changed paths:
    engines/hadesch/rooms/argo.cpp


diff --git a/engines/hadesch/rooms/argo.cpp b/engines/hadesch/rooms/argo.cpp
index 4b40116df1..83ec2dd338 100644
--- a/engines/hadesch/rooms/argo.cpp
+++ b/engines/hadesch/rooms/argo.cpp
@@ -82,7 +82,8 @@ enum {
 	kReturnToIdleEvent = 27003,
 	kIdleEvent = 27008,
 	kOutroFinished = 27009,
-	kOutroFinishedCounter = 1027001
+	kOutroFinishedCounter = 1027001,
+	kMastSoundFinished = 1027002
 };
 
 static Common::String
@@ -145,6 +146,7 @@ public:
 	ArgoHandler() {
 		_prevId = kInvalidRoom;
 		_destination = kInvalidRoom;
+		_mastHeadIsBusy = false;
 	}
 	void handleClick(const Common::String &name) override {
 		Common::SharedPtr<VideoRoom> room = g_vm->getVideoRoom();
@@ -188,6 +190,7 @@ public:
 			playMastSound("intro3", kReturnToIdleEvent);
 			break;
 		case kReturnToIdleEvent:
+			_mastHeadIsBusy = false;
 			room->enableMouse();
 			break;
 		case kOutroFinishedCounter:
@@ -199,9 +202,11 @@ public:
 			g_vm->moveToRoom(_destination);
 			break;
 		case kIdleEvent:
-			playMastSound("idlesound");
-			room->selectFrame(kMastHeadAnim, kMastHeadZ, 1);
 			g_vm->addTimer(kIdleEvent, 30000);
+			if (_mastHeadIsBusy)
+				break;
+			playMastSound("idlesound", kMastSoundFinished);
+			room->selectFrame(kMastHeadAnim, kMastHeadZ, 1);
 			break;
 		case 27301:
 			room->playAnimWithSound(kMastHeadAnim, _mastSoundName, kMastHeadZ,
@@ -212,6 +217,9 @@ public:
 			room->playAnim(kMastHeadAnim, kMastHeadZ,
 				       PlayAnimParams::keepLastFrame().partial(8, 0), _mastHeadEndEvent);
 			break;
+		case kMastSoundFinished:
+			_mastHeadIsBusy = false;
+			break;
 		}
 	}
 	void handleMouseOver(const Common::String &name) override {
@@ -323,10 +331,11 @@ public:
 	}
 	
 private:
-	void playMastSound(const Common::String &name, int event = -1) {
+	void playMastSound(const Common::String &name, int event = kMastSoundFinished) {
 		Common::SharedPtr<VideoRoom> room = g_vm->getVideoRoom();
 		_mastSoundName = name;
 		_mastHeadEndEvent = event;
+		_mastHeadIsBusy = true;
 		room->playAnim(kMastHeadAnim, kMastHeadZ, PlayAnimParams::keepLastFrame().partial(1, 8), 27301);
 	}
 
@@ -336,6 +345,7 @@ private:
 	int _cloudsMoveStart;
 	bool _cloudsMoving;
 	int _mastHeadEndEvent;
+	bool _mastHeadIsBusy;
 	Common::String _mastSoundName;
 };
 




More information about the Scummvm-git-logs mailing list