[Scummvm-git-logs] scummvm master -> 73d4f7bd57383265dda4765ff51e07fa4595275e

neuromancer noreply at scummvm.org
Sun Apr 3 18:55:29 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:
6ce41a3cff HYPNO: correct rendering of cleared and new zones in wet
0133c1f508 HYPNO: clear data structure when parsing arcade sequences
d2a9429464 HYPNO: refactoring clearing of arcade data structures
73d4f7bd57 HYPNO: added user interface offset for level 42 in wet


Commit: 6ce41a3cffa710615dde09e61e305d7a20e82fa8
    https://github.com/scummvm/scummvm/commit/6ce41a3cffa710615dde09e61e305d7a20e82fa8
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-04-03T20:55:57+02:00

Commit Message:
HYPNO: correct rendering of cleared and new zones in wet

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


diff --git a/engines/hypno/hypno.h b/engines/hypno/hypno.h
index 1f36f22d893..e75d23e11b2 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -367,6 +367,7 @@ private:
 	void runLevelMenu(Code *code);
 	void runCheckLives(Code *code);
 	void endCredits(Code *code);
+	uint32 findPaletteIndexZones(uint32 id);
 
 	Common::BitArray _font05;
 	Common::BitArray _font08;
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index c97495ced1e..c72c216ae8d 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -285,6 +285,49 @@ void WetEngine::runAfterArcade(ArcadeShooting *arc) {
 
 }
 
+uint32 WetEngine::findPaletteIndexZones(uint32 id) {
+	switch (id) {
+	case 11:
+		return 237;
+	case 10:
+		return 239;
+	case 21:
+		return 240;
+	case 22:
+		return 237;
+	case 23:
+		return 238;
+	case 20:
+		return 239;
+	default:
+	break;
+	}
+
+	switch (id / 10) {
+	case 3:
+		if (id == 30)
+			return 241;
+		else
+			return 237 + id % 10;
+	case 4:
+		if (id == 40)
+			return 241;
+		else
+			return 236 + id % 10;
+	case 5:
+		if (id == 50)
+			return 240;
+		else
+			return 237 + id % 10;
+	case 6:
+		if (id == 60)
+			return 238;
+		else
+			return 237;
+	default:
+	error("Invalid level id: %d", id);
+	}
+}
 
 void WetEngine::runBeforeArcade(ArcadeShooting *arc) {
 	resetStatistics();
@@ -296,8 +339,17 @@ void WetEngine::runBeforeArcade(ArcadeShooting *arc) {
 		byte *palette;
 		Graphics::Surface *frame = decodeFrame("c_misc/zones.smk", (arc->id / 10 - 1) * 2, &palette);
 		loadPalette(palette, 0, 256);
-		byte p[3] = {0xff, 0x00, 0x00}; // Always red?
-		loadPalette((byte *) &p, 240 - arc->id % 10, 1);
+		byte red[3] = {0xff, 0x00, 0x00};
+		for (int i = 0; i < 5; i++)
+			loadPalette((byte *) &red, 237 + i, 1);
+
+		byte blue[3] = {0x00, 0x00, 0xff};
+		for (uint32 id = 10 * (arc->id / 10) + 1; id < arc->id; id++)
+			loadPalette((byte *) &blue, findPaletteIndexZones(id), 1);
+
+		byte green[3] = {0x00, 0xff, 0x00};
+		uint32 idx = findPaletteIndexZones(arc->id);
+		loadPalette((byte *) &green, idx, 1);
 		drawImage(*frame, 0, 0, false);
 		frame->free();
 		delete frame;


Commit: 0133c1f5083579da7562b02dfccddc3f2ee94734
    https://github.com/scummvm/scummvm/commit/0133c1f5083579da7562b02dfccddc3f2ee94734
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-04-03T20:55:57+02:00

Commit Message:
HYPNO: clear data structure when parsing arcade sequences

Changed paths:
    engines/hypno/arcade.cpp


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 7c133d95af7..4beb7a0cce9 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -67,6 +67,10 @@ void HypnoEngine::parseArcadeShooting(const Common::String &prefix, const Common
 	g_parsedArc->defeatNoEnergyFirstVideo.clear();
 	g_parsedArc->defeatMissBossVideo.clear();
 	g_parsedArc->defeatNoEnergySecondVideo.clear();
+	g_parsedArc->missBoss1Video.clear();
+	g_parsedArc->missBoss2Video.clear();
+	g_parsedArc->hitBoss1Video.clear();
+	g_parsedArc->hitBoss2Video.clear();
 	g_parsedArc->beforeVideo.clear();
 	g_parsedArc->briefingVideo.clear();
 	g_parsedArc->segments.clear();


Commit: d2a942946496b12f4aa1ea655c41e32ea7d452dd
    https://github.com/scummvm/scummvm/commit/d2a942946496b12f4aa1ea655c41e32ea7d452dd
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-04-03T20:55:57+02:00

Commit Message:
HYPNO: refactoring clearing of arcade data structures

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


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 4beb7a0cce9..c285761da24 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -57,23 +57,7 @@ void HypnoEngine::parseArcadeShooting(const Common::String &prefix, const Common
 	ArcadeShooting *arcade = new ArcadeShooting();
 	*arcade = *g_parsedArc;
 	_levels[filename] = (Level*) arcade;
-	g_parsedArc->backgroundVideo.clear();
-	g_parsedArc->transitionVideos.clear();
-	g_parsedArc->transitionTimes.clear();
-	g_parsedArc->transitionPalettes.clear();
-	g_parsedArc->player.clear();
-	g_parsedArc->shoots.clear();
-	g_parsedArc->intros.clear();
-	g_parsedArc->defeatNoEnergyFirstVideo.clear();
-	g_parsedArc->defeatMissBossVideo.clear();
-	g_parsedArc->defeatNoEnergySecondVideo.clear();
-	g_parsedArc->missBoss1Video.clear();
-	g_parsedArc->missBoss2Video.clear();
-	g_parsedArc->hitBoss1Video.clear();
-	g_parsedArc->hitBoss2Video.clear();
-	g_parsedArc->beforeVideo.clear();
-	g_parsedArc->briefingVideo.clear();
-	g_parsedArc->segments.clear();
+	g_parsedArc->clear();
 }
 
 SegmentShootsSequence HypnoEngine::parseShootList(const Common::String &filename, const Common::String &data) {
diff --git a/engines/hypno/grammar.h b/engines/hypno/grammar.h
index 54a9fad99af..bce95a06be0 100644
--- a/engines/hypno/grammar.h
+++ b/engines/hypno/grammar.h
@@ -481,6 +481,28 @@ public:
 		objMissesAllowed[1] = 0;
 		frameDelay = 0;
 	}
+	void clear() {
+		nextLevelVideo.clear();
+		backgroundVideo.clear();
+		transitionVideos.clear();
+		transitionTimes.clear();
+		transitionPalettes.clear();
+		player.clear();
+		shoots.clear();
+		intros.clear();
+		defeatNoEnergyFirstVideo.clear();
+		defeatMissBossVideo.clear();
+		defeatNoEnergySecondVideo.clear();
+		missBoss1Video.clear();
+		missBoss2Video.clear();
+		hitBoss1Video.clear();
+		hitBoss2Video.clear();
+		beforeVideo.clear();
+		briefingVideo.clear();
+		additionalVideo.clear();
+		segments.clear();
+	}
+
 	uint32 id;
 	uint32 frameDelay;
 	Common::String mode;


Commit: 73d4f7bd57383265dda4765ff51e07fa4595275e
    https://github.com/scummvm/scummvm/commit/73d4f7bd57383265dda4765ff51e07fa4595275e
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-04-03T20:55:57+02:00

Commit Message:
HYPNO: added user interface offset for level 42 in wet

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


diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index c72c216ae8d..3a6dec1422b 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -577,7 +577,10 @@ void WetEngine::drawPlayer() {
 		_playerFrameIdx = 2;
 
 	int offset = 0;
-	if (_levelId == 31) // Ugly, but seems to be necessary
+	// Ugly, but seems to be necessary
+	if (_levelId == 31)
+		offset = 2;
+	else if (_levelId == 52)
 		offset = 2;
 
 	drawImage(*_playerFrames[_playerFrameIdx], 0, 200 - _playerFrames[_playerFrameIdx]->h + offset, true);




More information about the Scummvm-git-logs mailing list