[Scummvm-git-logs] scummvm master -> 33b39061f38b9b3d6b0d313928508b146515ee74

neuromancer noreply at scummvm.org
Sat Mar 22 11:05:50 UTC 2025


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

Summary:
33b39061f3 HYPNO: fix infinite video playback during missile sequence in wetlands


Commit: 33b39061f38b9b3d6b0d313928508b146515ee74
    https://github.com/scummvm/scummvm/commit/33b39061f38b9b3d6b0d313928508b146515ee74
Author: aunnoman1 (aunnoman123 at outlook.com)
Date: 2025-03-22T12:05:46+01:00

Commit Message:
HYPNO: fix infinite video playback during missile sequence in wetlands

Changed paths:
    engines/hypno/arcade.cpp
    engines/hypno/hypno.cpp
    engines/hypno/hypno.h
    engines/hypno/wet/arcade.cpp
    engines/hypno/wet/wet.cpp


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 5b25dc42c8d..afaa643f689 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -742,6 +742,12 @@ bool HypnoEngine::shoot(const Common::Point &mousePos, ArcadeShooting *arc, bool
 	if (secondary) {
 		if (_background->decoder->getCurFrame() % 2 == 0)
 			drawShoot(mousePos);
+
+		if (checkRButtonUp()) {
+			setRButtonUp(false);
+			return false;
+		}
+		
 		return clickedSecondaryShoot(mousePos);
 	} else {
 		drawShoot(mousePos);
@@ -810,5 +816,12 @@ bool HypnoEngine::clickedSecondaryShoot(const Common::Point &mousePos) {
 	return false;
 }
 
+bool HypnoEngine::checkRButtonUp() {
+	return false;
+}
+
+void HypnoEngine::setRButtonUp(const bool val) {
+	return;
+}
 } // End of namespace Hypno
 
diff --git a/engines/hypno/hypno.cpp b/engines/hypno/hypno.cpp
index edb006f319e..852ae5eabe6 100644
--- a/engines/hypno/hypno.cpp
+++ b/engines/hypno/hypno.cpp
@@ -250,7 +250,9 @@ void HypnoEngine::runIntros(Videos &videos) {
 					clicks++;
 				}
 				break;
-
+			case Common::EVENT_RBUTTONUP:
+				setRButtonUp(true);
+				break;
 			default:
 				break;
 			}
diff --git a/engines/hypno/hypno.h b/engines/hypno/hypno.h
index 85aadfc9f6c..ec27f6b974f 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -285,6 +285,8 @@ public:
 	virtual void missedTarget(Shoot *s, ArcadeShooting *arc);
 	virtual void missNoTarget(ArcadeShooting *arc);
 	virtual byte *getTargetColor(Common::String name, int levelId);
+	virtual bool checkRButtonUp();
+	virtual void setRButtonUp(const bool val);
 
 	// Segments
 	Segments _segments;
@@ -451,6 +453,9 @@ public:
 	void findNextSegment(ArcadeShooting *arc) override;
 	void initSegment(ArcadeShooting *arc) override;
 	byte *getTargetColor(Common::String name, int levelId) override;
+	bool checkRButtonUp() override;
+	void setRButtonUp(const bool val) override;
+
 
 	bool hasFeature(EngineFeature f) const override {
 		return (f == kSupportsReturnToLauncher);
@@ -486,6 +491,8 @@ private:
 	int _c40lastTurn;
 	int _c50LeftTurns;
 	int _c50RigthTurns;
+
+	bool _rButtonUp;
 };
 
 class SpiderEngine : public HypnoEngine {
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index ebc5b277310..2eddbc071f9 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -1169,4 +1169,12 @@ byte *WetEngine::getTargetColor(Common::String name, int levelId) {
 	return getPalette(entry->targetColor);
 }
 
+bool WetEngine::checkRButtonUp() {
+	return _rButtonUp;
+}
+
+void WetEngine::setRButtonUp(const bool val) {
+	_rButtonUp = val;
+}
+
 } // End of namespace Hypno
diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index c78b50cecba..89eb0b9387c 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -79,6 +79,8 @@ WetEngine::WetEngine(OSystem *syst, const ADGameDescription *gd) : HypnoEngine(s
 	_c50LeftTurns = 0;
 	_c50RigthTurns = 0;
 
+	_rButtonUp = false;
+
 	const chapterEntry *entry = rawChapterTable;
 	while (entry->id) {
 		_ids.push_back(entry->id);




More information about the Scummvm-git-logs mailing list