[Scummvm-git-logs] scummvm master -> a76eed187c88251764f9a458ac51e2ebae3f87b6

neuromancer noreply at scummvm.org
Tue Mar 1 08:02:26 UTC 2022


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:
a76eed187c HYPNO: added missing triggers for level c50 in wet


Commit: a76eed187c88251764f9a458ac51e2ebae3f87b6
    https://github.com/scummvm/scummvm/commit/a76eed187c88251764f9a458ac51e2ebae3f87b6
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-01T09:01:03+01:00

Commit Message:
HYPNO: added missing triggers for level c50 in wet

Changed paths:
    engines/hypno/arcade.cpp
    engines/hypno/grammar.h
    engines/hypno/grammar_arc.cpp
    engines/hypno/grammar_arc.y
    engines/hypno/hypno.h
    engines/hypno/wet/arcade.cpp


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 728d3f74506..e53b007ec57 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -163,6 +163,7 @@ void HypnoEngine::drawPlayer() { error("Function \"%s\" not implemented", __FUNC
 void HypnoEngine::drawHealth() { error("Function \"%s\" not implemented", __FUNCTION__); }
 void HypnoEngine::drawShoot(const Common::Point &target) { error("Function \"%s\" not implemented", __FUNCTION__); }
 void HypnoEngine::hitPlayer() { error("Function \"%s\" not implemented", __FUNCTION__); }
+void HypnoEngine::missTarget(Shoot *s, ArcadeShooting *arc, MVideo &background) {}
 
 void HypnoEngine::runBeforeArcade(ArcadeShooting *arc) {}
 
@@ -434,6 +435,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
 
 				uint32 bodyLastFrame = it->bodyFrames[it->bodyFrames.size() - 1].lastFrame();
 				if (frame > 0 && frame >= (int)(bodyLastFrame - 3) && !it->destroyed) {
+					missTarget(it, arc, background);
 					// No need to pop attackFrames or explosionFrames
 					skipVideo(*it->video);
 				} else if (frame > 0 && frame >= (int)(it->lastFrame)) {
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index 789d211b963..ed165519cfa 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -501,6 +501,7 @@ public:
 	Filename hitBoss2Video;
 	Filename missBoss2Video;
 	Filename beforeVideo;
+	Filename additionalVideo;
 	Filename briefingVideo;
 
 	Filename backgroundVideo;
diff --git a/engines/hypno/grammar_arc.cpp b/engines/hypno/grammar_arc.cpp
index dc2b7fe0e45..d113b1128ea 100644
--- a/engines/hypno/grammar_arc.cpp
+++ b/engines/hypno/grammar_arc.cpp
@@ -1419,8 +1419,8 @@ yyreduce:
                          {
 		if (Common::String("B0") == (yyvsp[-1].s))
 			g_parsedArc->beforeVideo = (yyvsp[0].s);
-		//else if (Common::String("B1") == $1)
-		//	g_parsedArc->beforeVideo = $2;
+		else if (Common::String("B1") == (yyvsp[-1].s))
+			g_parsedArc->additionalVideo = (yyvsp[0].s);
 		else if (Common::String("B2") == (yyvsp[-1].s))
 			g_parsedArc->nextLevelVideo = (yyvsp[0].s);
 		else if (Common::String("B3") == (yyvsp[-1].s))
diff --git a/engines/hypno/grammar_arc.y b/engines/hypno/grammar_arc.y
index 53ced38ca3a..b21362b6ce7 100644
--- a/engines/hypno/grammar_arc.y
+++ b/engines/hypno/grammar_arc.y
@@ -158,8 +158,8 @@ hline: 	CTOK NUM {
 	| BNTOK FILENAME {
 		if (Common::String("B0") == $1)
 			g_parsedArc->beforeVideo = $2;
-		//else if (Common::String("B1") == $1)
-		//	g_parsedArc->beforeVideo = $2;
+		else if (Common::String("B1") == $1)
+			g_parsedArc->additionalVideo = $2;
 		else if (Common::String("B2") == $1)
 			g_parsedArc->nextLevelVideo = $2;
 		else if (Common::String("B3") == $1)
diff --git a/engines/hypno/hypno.h b/engines/hypno/hypno.h
index bdfb47219b5..5519e2f8f86 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -222,6 +222,7 @@ public:
 	virtual void drawShoot(const Common::Point &mousePos);
 	virtual void shoot(const Common::Point &mousePos, ArcadeShooting *arc, MVideo &background);
 	virtual void hitPlayer();
+	virtual void missTarget(Shoot *s, ArcadeShooting *arc, MVideo &background);
 
 	// Segments
 	uint32 _segmentIdx;
@@ -306,6 +307,7 @@ public:
 	void drawPlayer() override;
 	void drawHealth() override;
 	void hitPlayer() override;
+	void missTarget(Shoot *s, ArcadeShooting *arc, MVideo &background) override;
 	void runCode(Code *code) override;
 	Common::String findNextLevel(const Common::String &level) override;
 	Common::String findNextLevel(const Transition *trans) override;
@@ -382,7 +384,7 @@ private:
 
 	Common::Rect _h1Area;
 	Common::Rect _h2Area;
-	Common::Rect _h3Area; 
+	Common::Rect _h3Area;
 
 	Common::BitArray _font05;
 	Common::BitArray _font08;
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index 3bb4a5bfe7d..1da792cc9af 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -277,6 +277,21 @@ bool WetEngine::clickedSecondaryShoot(const Common::Point &mousePos) {
 	return clickedPrimaryShoot(mousePos);
 }
 
+void WetEngine::missTarget(Shoot *s, ArcadeShooting *arc, MVideo &background) {
+	if (s->name == "SP_SWITCH_R" || s->name == "SP_SWITCH_L") {
+		_health = 0;
+	} else if (s->name == "SP_LIZARD1") {
+		_health = _health - 15;
+		background.decoder->pauseVideo(true);
+		MVideo video(arc->additionalVideo, Common::Point(0, 0), false, true, false);
+		runIntro(video);
+		loadPalette(arc->backgroundPalette);
+		background.decoder->pauseVideo(false);
+		updateScreen(background);
+		drawScreen();
+	}
+}
+
 void WetEngine::hitPlayer() {
 	if (_arcadeMode != "Y1" && _arcadeMode != "Y3" && _arcadeMode != "Y4" && _arcadeMode != "Y5") {
 		assert( _playerFrameSep < (int)_playerFrames.size());




More information about the Scummvm-git-logs mailing list