[Scummvm-git-logs] scummvm master -> 47f52a4d73ac33148d3c9fabeeef57796eea80d9

neuromancer noreply at scummvm.org
Sun Jun 5 19:06:08 UTC 2022


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

Summary:
142f069f1b HYPNO: load level select_c5 in boyz
9d57e11b57 HYPNO: correctly use enemy sound rate in boyz
cb3b4a894f HYPNO: connected select c5 level with the rest in boyz
47f52a4d73 HYPNO: loading of flashback screens in boyz


Commit: 142f069f1b1cd4bbff8dfb14a72dffb316baf9ec
    https://github.com/scummvm/scummvm/commit/142f069f1b1cd4bbff8dfb14a72dffb316baf9ec
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-05T21:06:33+02:00

Commit Message:
HYPNO: load level select_c5 in boyz

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


diff --git a/engines/hypno/boyz/boyz.cpp b/engines/hypno/boyz/boyz.cpp
index f86370ad342..0d3082ca739 100644
--- a/engines/hypno/boyz/boyz.cpp
+++ b/engines/hypno/boyz/boyz.cpp
@@ -116,6 +116,20 @@ HOTS /BBOX= 250 32  301 199\n\
 SOND van2.raw 22K\n\
 END\n";
 
+static const char *selectC5 = "\
+MENU preload\\slct_c5.smk\n\
+HOTS /BBOX= 212 108 306 192\n\
+SOND tolvexp1.raw 22K\n\
+HOTS /BBOX= 212 5 302 82\n\
+SOND tollcom2.raw 22K\n\
+HOTS /BBOX= 110 70 198 148\n\
+SOND tolbwhr1.raw 22K\n\
+HOTS /BBOX= 4 14 91 92\n\
+SOND tolbwhr1.raw 22K\n\
+HOTS /BBOX= 8 105 96 194\n\
+SOND tolbwhr1.raw 22K\n\
+END\n";
+
 void BoyzEngine::loadAssets() {
 	LibFile *missions = loadLib("", "preload/missions.lib", true);
 	Common::ArchiveMemberList files;
@@ -321,6 +335,10 @@ void BoyzEngine::loadAssets() {
 	Code *check_ho = new Code("<check_ho>");
 	_levels["<check_ho>"] = check_ho;
 
+	loadSceneLevel(selectC5, "<select_c5>", "", "");
+	sc = (Scene *) _levels["<select_c5>"];
+	sc->resolution = "320x200";
+
 	loadLib("sound/", "misc/sound.lib", true);
 
 	_weaponShootSound[0] = "";


Commit: 9d57e11b57ed68018aa5c53659e29a42d1cbce48
    https://github.com/scummvm/scummvm/commit/9d57e11b57ed68018aa5c53659e29a42d1cbce48
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-05T21:06:33+02:00

Commit Message:
HYPNO: correctly use enemy sound rate in boyz

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


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 9835d77b43e..986ffcd9cf6 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -469,9 +469,9 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
 						}
 						if (!s.noEnemySound) {
 							if (!s.enemySound.empty())
-								playSound(_soundPath + s.enemySound, 1);
+								playSound(_soundPath + s.enemySound, 1, s.enemySoundRate);
 							else if (!arc->enemySound.empty())
-								playSound(_soundPath + arc->enemySound, 1);
+								playSound(_soundPath + arc->enemySound, 1, arc->enemySoundRate);
 						}
 					}
 				}
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index 0f6390ed14f..bbee1263d9b 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -449,6 +449,7 @@ public:
 		lastFrame = 1024;
 		interactionFrame = 0;
 		noEnemySound = false;
+		enemySoundRate = 22050;
 		isAnimal = false;
 		nonHostile = false;
 		playInteractionAudio = false;
@@ -481,6 +482,7 @@ public:
 
 	// Sounds
 	Filename enemySound;
+	uint32 enemySoundRate;
 	Filename deathSound;
 	Filename hitSound;
 	Filename animalSound;
diff --git a/engines/hypno/grammar_arc.cpp b/engines/hypno/grammar_arc.cpp
index 9d1ea93502c..a4532d20e16 100644
--- a/engines/hypno/grammar_arc.cpp
+++ b/engines/hypno/grammar_arc.cpp
@@ -631,8 +631,8 @@ static const yytype_int16 yyrline[] =
      403,   407,   411,   415,   419,   423,   427,   431,   435,   439,
      443,   447,   451,   455,   458,   462,   467,   472,   475,   480,
      485,   489,   495,   499,   502,   503,   504,   507,   511,   514,
-     519,   522,   523,   527,   534,   538,   549,   553,   554,   560,
-     564,   568,   571,   574,   576
+     519,   522,   523,   527,   534,   538,   553,   557,   558,   564,
+     568,   572,   575,   578,   580
 };
 #endif
 
@@ -2213,9 +2213,13 @@ yyreduce:
   case 105: /* bline: SNTOK FILENAME enc  */
 #line 538 "engines/hypno/grammar_arc.y"
                              {
-		if (Common::String("S0") == (yyvsp[-2].s))
+		if (Common::String("S0") == (yyvsp[-2].s)) {
 			shoot->enemySound = (yyvsp[-1].s);
-		else if (Common::String("S1") == (yyvsp[-2].s))
+			if (Common::String((yyvsp[0].s)) == "11K")
+				shoot->enemySoundRate = 11025;
+			else
+				shoot->enemySoundRate = 22050;
+		} else if (Common::String("S1") == (yyvsp[-2].s))
 			shoot->deathSound = (yyvsp[-1].s);
 		else if (Common::String("S2") == (yyvsp[-2].s))
 			shoot->hitSound = (yyvsp[-1].s);
@@ -2223,88 +2227,88 @@ yyreduce:
 			shoot->animalSound = (yyvsp[-1].s);
 
 		debugC(1, kHypnoDebugParser, "SN %s", (yyvsp[-1].s)); }
-#line 2227 "engines/hypno/grammar_arc.cpp"
+#line 2231 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 106: /* bline: SNTOK  */
-#line 549 "engines/hypno/grammar_arc.y"
+#line 553 "engines/hypno/grammar_arc.y"
                 {
 		debugC(1, kHypnoDebugParser, "SN");
 	}
-#line 2235 "engines/hypno/grammar_arc.cpp"
+#line 2239 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 107: /* bline: GTOK  */
-#line 553 "engines/hypno/grammar_arc.y"
+#line 557 "engines/hypno/grammar_arc.y"
                { debugC(1, kHypnoDebugParser, "G"); }
-#line 2241 "engines/hypno/grammar_arc.cpp"
+#line 2245 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 108: /* bline: TTOK NUM NUM NUM  */
-#line 554 "engines/hypno/grammar_arc.y"
+#line 558 "engines/hypno/grammar_arc.y"
                            {
 		shoot->interactionFrame = (yyvsp[-2].i);
 		assert((yyvsp[-1].i) == 0);
 		shoot->waitForClickAfterInteraction = (yyvsp[0].i);
 		debugC(1, kHypnoDebugParser, "T %d %d %d", (yyvsp[-2].i), (yyvsp[-1].i), (yyvsp[0].i));
 	}
-#line 2252 "engines/hypno/grammar_arc.cpp"
+#line 2256 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 109: /* bline: TTOK NUM  */
-#line 560 "engines/hypno/grammar_arc.y"
+#line 564 "engines/hypno/grammar_arc.y"
                    {
 		shoot->interactionFrame = (yyvsp[0].i);
 		debugC(1, kHypnoDebugParser, "T %d", (yyvsp[0].i));
 	}
-#line 2261 "engines/hypno/grammar_arc.cpp"
+#line 2265 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 110: /* bline: TTOK  */
-#line 564 "engines/hypno/grammar_arc.y"
+#line 568 "engines/hypno/grammar_arc.y"
                {
 		shoot->isAnimal = true;
 		debugC(1, kHypnoDebugParser, "T");
 	}
-#line 2270 "engines/hypno/grammar_arc.cpp"
+#line 2274 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 111: /* bline: MTOK  */
-#line 568 "engines/hypno/grammar_arc.y"
+#line 572 "engines/hypno/grammar_arc.y"
                {
 		debugC(1, kHypnoDebugParser, "M");
 	}
-#line 2278 "engines/hypno/grammar_arc.cpp"
+#line 2282 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 112: /* bline: NTOK  */
-#line 571 "engines/hypno/grammar_arc.y"
+#line 575 "engines/hypno/grammar_arc.y"
                {
 		shoot->noEnemySound = true;
 		debugC(1, kHypnoDebugParser, "N"); }
-#line 2286 "engines/hypno/grammar_arc.cpp"
+#line 2290 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 113: /* bline: NRTOK  */
-#line 574 "engines/hypno/grammar_arc.y"
+#line 578 "engines/hypno/grammar_arc.y"
                 {
 		debugC(1, kHypnoDebugParser, "NR"); }
-#line 2293 "engines/hypno/grammar_arc.cpp"
+#line 2297 "engines/hypno/grammar_arc.cpp"
     break;
 
   case 114: /* bline: ZTOK  */
-#line 576 "engines/hypno/grammar_arc.y"
+#line 580 "engines/hypno/grammar_arc.y"
                {
 		g_parsedArc->shoots.push_back(*shoot);
 		//delete shoot;
 		//shoot = nullptr;
 		debugC(1, kHypnoDebugParser, "Z");
 	}
-#line 2304 "engines/hypno/grammar_arc.cpp"
+#line 2308 "engines/hypno/grammar_arc.cpp"
     break;
 
 
-#line 2308 "engines/hypno/grammar_arc.cpp"
+#line 2312 "engines/hypno/grammar_arc.cpp"
 
       default: break;
     }
diff --git a/engines/hypno/grammar_arc.y b/engines/hypno/grammar_arc.y
index a2b3573c949..eb397d3f4ca 100644
--- a/engines/hypno/grammar_arc.y
+++ b/engines/hypno/grammar_arc.y
@@ -536,9 +536,13 @@ bline: FNTOK FILENAME {
 		shoot->explosionFrames.push_back(fi);
 	}
 	| SNTOK FILENAME enc {
-		if (Common::String("S0") == $1)
+		if (Common::String("S0") == $1) {
 			shoot->enemySound = $2;
-		else if (Common::String("S1") == $1)
+			if (Common::String($3) == "11K")
+				shoot->enemySoundRate = 11025;
+			else
+				shoot->enemySoundRate = 22050;
+		} else if (Common::String("S1") == $1)
 			shoot->deathSound = $2;
 		else if (Common::String("S2") == $1)
 			shoot->hitSound = $2;


Commit: cb3b4a894fb92db0a9950dbc3855165f51596288
    https://github.com/scummvm/scummvm/commit/cb3b4a894fb92db0a9950dbc3855165f51596288
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-05T21:06:33+02:00

Commit Message:
HYPNO: connected select c5 level with the rest in boyz

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


diff --git a/engines/hypno/boyz/boyz.cpp b/engines/hypno/boyz/boyz.cpp
index 0d3082ca739..f8449ba0ea5 100644
--- a/engines/hypno/boyz/boyz.cpp
+++ b/engines/hypno/boyz/boyz.cpp
@@ -184,11 +184,11 @@ void BoyzEngine::loadAssets() {
 
 	loadArcadeLevel("c36.mi_", "c41.mi_", "<retry_menu>", "");
 	loadArcadeLevel("c41.mi_", "c42.mi_", "<retry_menu>", "");
-	loadArcadeLevel("c42.mi_", "c51.mi_", "<retry_menu>", "");
+	loadArcadeLevel("c42.mi_", "<select_c5>", "<retry_menu>", "");
 
-	loadArcadeLevel("c51.mi_", "c52.mi_", "<retry_menu>", "");
-	loadArcadeLevel("c52.mi_", "c53.mi_", "<retry_menu>", "");
-	loadArcadeLevel("c53.mi_", "c54.mi_", "<retry_menu>", "");
+	loadArcadeLevel("c51.mi_", "<select_c5>", "<retry_menu>", "");
+	loadArcadeLevel("c52.mi_", "<select_c5>", "<retry_menu>", "");
+	loadArcadeLevel("c53.mi_", "<select_c5>", "<retry_menu>", "");
 	loadArcadeLevel("c54.mi_", "c55.mi_", "<retry_menu>", "");
 	loadArcadeLevel("c55.mi_", "c56.mi_", "<retry_menu>", "");
 	loadArcadeLevel("c56.mi_", "c57.mi_", "<retry_menu>", "");
@@ -339,6 +339,27 @@ void BoyzEngine::loadAssets() {
 	sc = (Scene *) _levels["<select_c5>"];
 	sc->resolution = "320x200";
 
+	hl = new Highlight("GS_SEQ_51");
+	sc->hots[1].actions.push_back(hl);
+	gl = new Global("GS_SEQ_51", "NCHECK");
+	sc->hots[1].actions.push_back(gl);
+	cl = new ChangeLevel("c51.mi_");
+	sc->hots[1].actions.push_back(cl);
+
+	hl = new Highlight("GS_SEQ_52");
+	sc->hots[2].actions.push_back(hl);
+	gl = new Global("GS_SEQ_52", "NCHECK");
+	sc->hots[2].actions.push_back(gl);
+	cl = new ChangeLevel("c52.mi_");
+	sc->hots[2].actions.push_back(cl);
+
+	hl = new Highlight("GS_SEQ_53");
+	sc->hots[3].actions.push_back(hl);
+	gl = new Global("GS_SEQ_53", "NCHECK");
+	sc->hots[3].actions.push_back(gl);
+	cl = new ChangeLevel("c53.mi_");
+	sc->hots[3].actions.push_back(cl);
+
 	loadLib("sound/", "misc/sound.lib", true);
 
 	_weaponShootSound[0] = "";


Commit: 47f52a4d73ac33148d3c9fabeeef57796eea80d9
    https://github.com/scummvm/scummvm/commit/47f52a4d73ac33148d3c9fabeeef57796eea80d9
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-06-05T21:06:33+02:00

Commit Message:
HYPNO: loading of flashback screens in boyz

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


diff --git a/engines/hypno/boyz/boyz.cpp b/engines/hypno/boyz/boyz.cpp
index f8449ba0ea5..636c05756b5 100644
--- a/engines/hypno/boyz/boyz.cpp
+++ b/engines/hypno/boyz/boyz.cpp
@@ -58,6 +58,7 @@ BoyzEngine::BoyzEngine(OSystem *syst, const ADGameDescription *gd) : HypnoEngine
 	_currentMode = NonInteractive;
 	_crosshairsPalette = nullptr;
 	_lastLevel = 0;
+	_flashbackMode = false;
 
     const chapterEntry *entry = rawChapterTable;
     while (entry->id) {
@@ -130,6 +131,43 @@ HOTS /BBOX= 8 105 96 194\n\
 SOND tolbwhr1.raw 22K\n\
 END\n";
 
+static const char *fterr = "\
+MENU preload\\fterr%d.smk\n\
+HOTS /BBOX=  13 151 68 164\n\
+HOTS /BBOX=  19  48 146  59\n\
+HOTS /BBOX=  19  64 146  75\n\
+HOTS /BBOX=  19  80 146  91\n\
+HOTS /BBOX=  19  96 146 107\n\
+HOTS /BBOX=  19 112 146 123\n\
+HOTS /BBOX= 170  48 305  59\n\
+HOTS /BBOX= 170  64 305  75\n\
+HOTS /BBOX= 170  80 305  91\n\
+HOTS /BBOX= 170  96 305 107\n\
+HOTS /BBOX= 170 112 305 123\n\
+HOTS /BBOX= 170 128 305 139\n\
+HOTS /BBOX= 170 144 305 155\n\
+HOTS /BBOX= 170 160 305 171\n\
+HOTS /BBOX= 170 176 305 187\n\
+HOTS /BBOX= 170  48 305  59\n\
+HOTS /BBOX= 170  64 305  75\n\
+HOTS /BBOX= 170  48 305  59\n\
+HOTS /BBOX= 170  64 305  75\n\
+HOTS /BBOX= 170  80 305  91\n\
+HOTS /BBOX= 170  96 305 107\n\
+HOTS /BBOX= 170 112 305 123\n\
+HOTS /BBOX= 170 128 305 139\n\
+HOTS /BBOX= 170  48 305  59\n\
+HOTS /BBOX= 170  64 305  75\n\
+HOTS /BBOX= 170  48 305  59\n\
+HOTS /BBOX= 170  64 305  75\n\
+HOTS /BBOX= 170  80 305  91\n\
+HOTS /BBOX= 170  96 305 107\n\
+HOTS /BBOX= 170 112 305 123\n\
+HOTS /BBOX= 170 128 305 139\n\
+HOTS /BBOX= 170 144 305 155\n\
+HOTS /BBOX= 170 160 305 171\n\
+END\n";
+
 void BoyzEngine::loadAssets() {
 	LibFile *missions = loadLib("", "preload/missions.lib", true);
 	Common::ArchiveMemberList files;
@@ -360,6 +398,113 @@ void BoyzEngine::loadAssets() {
 	cl = new ChangeLevel("c53.mi_");
 	sc->hots[3].actions.push_back(cl);
 
+	for (int t = 1; t <= 5; t++) {
+		Common::String fterrMis = Common::String::format(fterr, t);
+		Common::String fterrName = Common::String::format("<select_t%d>", t);
+		loadSceneLevel(fterrMis.c_str(), fterrName.c_str(), "", "");
+		sc = (Scene *) _levels[fterrName.c_str()];
+		sc->resolution = "320x200";
+
+		cl = new ChangeLevel("<main_menu>");
+		sc->hots[1].actions.push_back(cl);
+		cl = new ChangeLevel("<select_t1>");
+		sc->hots[2].actions.push_back(cl);
+		cl = new ChangeLevel("<select_t2>");
+		sc->hots[3].actions.push_back(cl);
+		cl = new ChangeLevel("<select_t3>");
+		sc->hots[4].actions.push_back(cl);
+		cl = new ChangeLevel("<select_t4>");
+		sc->hots[5].actions.push_back(cl);
+		cl = new ChangeLevel("<select_t5>");
+		sc->hots[6].actions.push_back(cl);
+	}
+
+	sc = (Scene *) _levels["<select_t1>"];
+	cl = new ChangeLevel("c19.mi_");
+	sc->hots[7].actions.push_back(cl);
+
+	cl = new ChangeLevel("c11.mi_");
+	sc->hots[8].actions.push_back(cl);
+
+	cl = new ChangeLevel("c12.mi_");
+	sc->hots[9].actions.push_back(cl);
+
+	cl = new ChangeLevel("c13.mi_");
+	sc->hots[10].actions.push_back(cl);
+
+	cl = new ChangeLevel("c14.mi_");
+	sc->hots[11].actions.push_back(cl);
+
+	cl = new ChangeLevel("c15.mi_");
+	sc->hots[12].actions.push_back(cl);
+
+	cl = new ChangeLevel("c16.mi_");
+	sc->hots[13].actions.push_back(cl);
+
+	cl = new ChangeLevel("c17.mi_");
+	sc->hots[14].actions.push_back(cl);
+
+	cl = new ChangeLevel("c18.mi_");
+	sc->hots[15].actions.push_back(cl);
+
+	sc = (Scene *) _levels["<select_t2>"];
+	cl = new ChangeLevel("c21.mi_");
+	sc->hots[7].actions.push_back(cl);
+
+	cl = new ChangeLevel("c22.mi_");
+	sc->hots[8].actions.push_back(cl);
+
+	sc = (Scene *) _levels["<select_t3>"];
+	cl = new ChangeLevel("c31.mi_");
+	sc->hots[7].actions.push_back(cl);
+
+	cl = new ChangeLevel("c32.mi_");
+	sc->hots[8].actions.push_back(cl);
+
+	cl = new ChangeLevel("c33.mi_");
+	sc->hots[9].actions.push_back(cl);
+
+	cl = new ChangeLevel("c34.mi_");
+	sc->hots[10].actions.push_back(cl);
+
+	cl = new ChangeLevel("c35.mi_");
+	sc->hots[11].actions.push_back(cl);
+
+	cl = new ChangeLevel("c36.mi_");
+	sc->hots[12].actions.push_back(cl);
+
+	sc = (Scene *) _levels["<select_t4>"];
+	cl = new ChangeLevel("c41.mi_");
+	sc->hots[7].actions.push_back(cl);
+
+	cl = new ChangeLevel("c42.mi_");
+	sc->hots[8].actions.push_back(cl);
+
+	sc = (Scene *) _levels["<select_t5>"];
+	cl = new ChangeLevel("c51.mi_");
+	sc->hots[7].actions.push_back(cl);
+
+	cl = new ChangeLevel("c52.mi_");
+	sc->hots[8].actions.push_back(cl);
+
+	cl = new ChangeLevel("c53.mi_");
+	sc->hots[9].actions.push_back(cl);
+
+	cl = new ChangeLevel("c54.mi_");
+	sc->hots[10].actions.push_back(cl);
+
+	cl = new ChangeLevel("c55.mi_");
+	sc->hots[11].actions.push_back(cl);
+
+	cl = new ChangeLevel("c56.mi_");
+	sc->hots[12].actions.push_back(cl);
+
+	cl = new ChangeLevel("c57.mi_");
+	sc->hots[13].actions.push_back(cl);
+
+	cl = new ChangeLevel("c58.mi_");
+	sc->hots[14].actions.push_back(cl);
+
 	loadLib("sound/", "misc/sound.lib", true);
 
 	_weaponShootSound[0] = "";
diff --git a/engines/hypno/hypno.h b/engines/hypno/hypno.h
index 8d3e5afba8d..83660dc6715 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -547,6 +547,7 @@ public:
 	Common::String _name;
 	Common::Array<int> _ids;
 	int _lastLevel;
+	bool _flashbackMode;
 	void loadAssets() override;
 	void runCode(Code *code) override;
 	Common::String findNextLevel(const Common::String &level) override;




More information about the Scummvm-git-logs mailing list