[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