[Scummvm-git-logs] scummvm master -> 29e4b87fdbfc54b77ae9eee0561788c84eba2fb0

neuromancer noreply at scummvm.org
Sun Jun 19 22:14:07 UTC 2022


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

Summary:
427a093b85 HYPNO: fixed video sequence at the end of level c33 in boyz
d9646947af HYPNO: corrected level pointers of flashback mode in boyz
29e4b87fdb HYPNO: fixed transition to correctly run the last level of boyz


Commit: 427a093b850025fe08b7c883b294bf4e1cc6dd19
    https://github.com/scummvm/scummvm/commit/427a093b850025fe08b7c883b294bf4e1cc6dd19
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-20T00:09:53+02:00

Commit Message:
HYPNO: fixed video sequence at the end of level c33 in boyz

Changed paths:
    engines/hypno/arcade.cpp
    engines/hypno/boyz/arcade.cpp
    engines/hypno/boyz/boyz.cpp


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 3de747cf0ed..e29b354a0db 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -508,7 +508,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
 			} else if (!it->video && it->bodyFrames.size() > 0) {
 				uint32 frame = _background->decoder->getCurFrame();
 				uint32 bodyLastFrame = it->bodyFrames[it->bodyFrames.size() - 1].lastFrame();
-				if (frame > it->startFrame && frame - it->startFrame >= bodyLastFrame - 3)
+				if (frame > it->startFrame && frame - it->startFrame >= bodyLastFrame)
 					if (!it->destroyed) {
 						incTargetsMissed();
 						missedTarget(it, arc);
diff --git a/engines/hypno/boyz/arcade.cpp b/engines/hypno/boyz/arcade.cpp
index a7dc4fd97c7..d452fdaca9e 100644
--- a/engines/hypno/boyz/arcade.cpp
+++ b/engines/hypno/boyz/arcade.cpp
@@ -112,7 +112,12 @@ void BoyzEngine::runAfterArcade(ArcadeShooting *arc) {
 		}
 		return;
 	} else {
-		if (_levelId == 42) {
+		if (_levelId == 33 && checkArcadeObjectives()) {
+			MVideo video("c3/c33a02s.smk", Common::Point(0, 0), false, true, false);
+			runIntro(video);
+			defaultCursor();
+			waitForUserClick(1);
+		} else if (_levelId == 42) {
 			disableCursor();
 			MVideo video("c4/c4bro8s.smk", Common::Point(0, 0), false, true, false);
 			runIntro(video);
@@ -589,6 +594,9 @@ bool BoyzEngine::shoot(const Common::Point &mousePos, ArcadeShooting *arc, bool
 				return false;
 			}
 
+			// Not really killed, but counted as objective
+			_objKillsCount[_objIdx] = _objKillsCount[_objIdx] + _shoots[i].objKillsCount;
+
 			if (!_shoots[i].additionalVideo.empty()) {
 				incFriendliesEncountered();
 				incInfoReceived();
@@ -627,8 +635,10 @@ bool BoyzEngine::shoot(const Common::Point &mousePos, ArcadeShooting *arc, bool
 				incInfoReceived();
 				_background->decoder->forceSeekToFrame(_shoots[i].interactionFrame);
 				_masks->decoder->forceSeekToFrame(_shoots[i].interactionFrame);
-				_additionalVideo = new MVideo(arc->missBoss2Video, Common::Point(0, 0), true, false, false);
-				playVideo(*_additionalVideo);
+				if (!arc->missBoss2Video.empty()) {
+					_additionalVideo = new MVideo(arc->missBoss2Video, Common::Point(0, 0), true, false, false);
+					playVideo(*_additionalVideo);
+				}
 				//_shoots[i].lastFrame = _background->decoder->getFrameCount();
 				_shoots[i].destroyed = true;
 				_shootsDestroyed[_shoots[i].name] = true;
diff --git a/engines/hypno/boyz/boyz.cpp b/engines/hypno/boyz/boyz.cpp
index c2fb1d07e54..af08c75e397 100644
--- a/engines/hypno/boyz/boyz.cpp
+++ b/engines/hypno/boyz/boyz.cpp
@@ -241,9 +241,13 @@ void BoyzEngine::loadAssets() {
 	loadArcadeLevel("c31.mi_", "<check_c3>", "<retry_menu>", "");
 	loadArcadeLevel("c32.mi_", "<check_c3>", "<retry_menu>", "");
 	loadArcadeLevel("c33.mi_", "<check_c3>", "<retry_menu>", "");
+	// This is manually implemented, if objectives are completed
+	ArcadeShooting *ar = (ArcadeShooting *) _levels["c33.mi_"];
+	ar->nextLevelVideo.clear();
+
 	loadArcadeLevel("c34.mi_", "<check_c3>", "<retry_menu>", "");
 	loadArcadeLevel("c35.mi_", "<check_ho>", "<select_c3>", "");
-	ArcadeShooting *ar = (ArcadeShooting *) _levels["c35.mi_"];
+	ar = (ArcadeShooting *) _levels["c35.mi_"];
 	ar->backgroundVideo = ""; // This will be manually populated
 
 	loadArcadeLevel("c351.mi_", "<check_ho>", "<retry_menu>", "");


Commit: d9646947af6391046f3795f3eb27d64d4d71d3e9
    https://github.com/scummvm/scummvm/commit/d9646947af6391046f3795f3eb27d64d4d71d3e9
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-20T00:09:53+02:00

Commit Message:
HYPNO: corrected level pointers of flashback mode in boyz

Changed paths:
    engines/hypno/boyz/boyz.cpp


diff --git a/engines/hypno/boyz/boyz.cpp b/engines/hypno/boyz/boyz.cpp
index af08c75e397..63e5dc8d717 100644
--- a/engines/hypno/boyz/boyz.cpp
+++ b/engines/hypno/boyz/boyz.cpp
@@ -674,46 +674,46 @@ void BoyzEngine::loadAssets() {
 	cl = new ChangeLevel("c52.mi_");
 	sc->hots[8].actions.push_back(cl);
 
-	hl = new Highlight("GS_SEQ_53");
+	hl = new Highlight("GS_SEQ_54");
 	sc->hots[9].actions.push_back(hl);
-	gl = new Global("GS_SEQ_53", "CHECK");
+	gl = new Global("GS_SEQ_54", "CHECK");
 	sc->hots[9].actions.push_back(gl);
-	cl = new ChangeLevel("c53.mi_");
+	cl = new ChangeLevel("c54.mi_");
 	sc->hots[9].actions.push_back(cl);
 
-	hl = new Highlight("GS_SEQ_54");
+	hl = new Highlight("GS_SEQ_55");
 	sc->hots[10].actions.push_back(hl);
-	gl = new Global("GS_SEQ_54", "CHECK");
+	gl = new Global("GS_SEQ_55", "CHECK");
 	sc->hots[10].actions.push_back(gl);
-	cl = new ChangeLevel("c54.mi_");
+	cl = new ChangeLevel("c55.mi_");
 	sc->hots[10].actions.push_back(cl);
 
-	hl = new Highlight("GS_SEQ_55");
+	hl = new Highlight("GS_SEQ_56");
 	sc->hots[11].actions.push_back(hl);
-	gl = new Global("GS_SEQ_55", "CHECK");
+	gl = new Global("GS_SEQ_56", "CHECK");
 	sc->hots[11].actions.push_back(gl);
-	cl = new ChangeLevel("c55.mi_");
+	cl = new ChangeLevel("c56.mi_");
 	sc->hots[11].actions.push_back(cl);
 
-	hl = new Highlight("GS_SEQ_56");
+	hl = new Highlight("GS_SEQ_57");
 	sc->hots[12].actions.push_back(hl);
-	gl = new Global("GS_SEQ_56", "CHECK");
+	gl = new Global("GS_SEQ_57", "CHECK");
 	sc->hots[12].actions.push_back(gl);
-	cl = new ChangeLevel("c56.mi_");
+	cl = new ChangeLevel("c57.mi_");
 	sc->hots[12].actions.push_back(cl);
 
-	hl = new Highlight("GS_SEQ_57");
+	hl = new Highlight("GS_SEQ_58");
 	sc->hots[13].actions.push_back(hl);
-	gl = new Global("GS_SEQ_57", "CHECK");
+	gl = new Global("GS_SEQ_58", "CHECK");
 	sc->hots[13].actions.push_back(gl);
-	cl = new ChangeLevel("c57.mi_");
+	cl = new ChangeLevel("c58.mi_");
 	sc->hots[13].actions.push_back(cl);
 
-	hl = new Highlight("GS_SEQ_58");
+	hl = new Highlight("GS_SEQ_59");
 	sc->hots[14].actions.push_back(hl);
-	gl = new Global("GS_SEQ_58", "CHECK");
+	gl = new Global("GS_SEQ_59", "CHECK");
 	sc->hots[14].actions.push_back(gl);
-	cl = new ChangeLevel("c58.mi_");
+	cl = new ChangeLevel("c59.mi_");
 	sc->hots[14].actions.push_back(cl);
 
 	loadLib("sound/", "misc/sound.lib", true);


Commit: 29e4b87fdbfc54b77ae9eee0561788c84eba2fb0
    https://github.com/scummvm/scummvm/commit/29e4b87fdbfc54b77ae9eee0561788c84eba2fb0
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-20T00:09:53+02:00

Commit Message:
HYPNO: fixed transition to correctly run the last level of boyz

Changed paths:
    engines/hypno/boyz/arcade.cpp
    engines/hypno/grammar.h


diff --git a/engines/hypno/boyz/arcade.cpp b/engines/hypno/boyz/arcade.cpp
index d452fdaca9e..dc395a625d6 100644
--- a/engines/hypno/boyz/arcade.cpp
+++ b/engines/hypno/boyz/arcade.cpp
@@ -395,6 +395,9 @@ bool BoyzEngine::checkTransition(ArcadeTransitions &transitions, ArcadeShooting
 		} else if (at.loseLevel) {
 			debugC(1, kHypnoDebugArcade, "Losing level in transition at %d", _background->decoder->getCurFrame());
 			_health = 0;
+		} else if (at.winLevel) {
+			debugC(1, kHypnoDebugArcade, "Wining level in transition at %d", _background->decoder->getCurFrame());
+			_skipLevel = true;
 		} else
 			error ("Invalid transition at %d", ttime);
 
@@ -737,12 +740,18 @@ bool BoyzEngine::shoot(const Common::Point &mousePos, ArcadeShooting *arc, bool
 
 		_background->decoder->forceSeekToFrame(_shoots[i].explosionFrames[0].start - 3);
 		_masks->decoder->forceSeekToFrame(_shoots[i].explosionFrames[0].start - 3);
+		debugC(1, kHypnoDebugArcade, "Jumping to: %d", _shoots[i].explosionFrames[0].start - 3);
+
 		changeCursor(_crosshairsActive[_currentWeapon], _crosshairsPalette, true);
 
 		if (_shoots[i].jumpToTimeAfterKilled > 0) {
 			ArcadeTransition at("", 0, "", 0, _shoots[i].explosionFrames[0].lastFrame() - 1);
 			at.jumpToTime = _shoots[i].jumpToTimeAfterKilled;
 			_transitions.push_front(at);
+		} else if ( _shoots[i].jumpToTimeAfterKilled == -1 ) {
+			ArcadeTransition at("", 0, "", 0, _shoots[i].explosionFrames[0].lastFrame() - 1);
+			at.winLevel = true;
+			_transitions.push_front(at);
 		}
 	}
 	return false;
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index ad38b8fad2f..ea265e5407b 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -577,6 +577,7 @@ public:
 		soundRate = soundRate_;
 		soundStereo = false;
 		loseLevel = false;
+		winLevel = false;
 		selection = false;
 		jumpToTime = 0;
 		time = time_;
@@ -588,6 +589,7 @@ public:
 	uint32 soundRate;
 	bool soundStereo;
 	bool loseLevel;
+	bool winLevel;
 	bool selection;
 	uint32 jumpToTime;
 	uint32 time;




More information about the Scummvm-git-logs mailing list