[Scummvm-git-logs] scummvm master -> 03dca72601cf09f0db1378d1ab5b9a59a648655f

neuromancer noreply at scummvm.org
Sat May 7 08:27:54 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:
03dca72601 HYPNO: added missing text to signal the player about direction selection in wet


Commit: 03dca72601cf09f0db1378d1ab5b9a59a648655f
    https://github.com/scummvm/scummvm/commit/03dca72601cf09f0db1378d1ab5b9a59a648655f
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-05-07T10:28:13+02:00

Commit Message:
HYPNO: added missing text to signal the player about direction selection 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 8e731b412e9..bc0244d774a 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -263,6 +263,7 @@ public:
 	virtual byte *getTargetColor(Common::String name, int levelId);
 
 	// Segments
+	Segments _segments;
 	uint32 _segmentIdx;
 	uint32 _segmentOffset;
 	uint32 _segmentRepetition;
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index 40933ae30c3..1efa36c46d0 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -89,6 +89,7 @@ void WetEngine::initSegment(ArcadeShooting *arc) {
 	uint32 randomSegmentShootSequence = _segmentShootSequenceOffset + _rnd->getRandomNumber(_segmentShootSequenceMax);
 	debugC(1, kHypnoDebugArcade, "Select random sequence %d", randomSegmentShootSequence);
 	SegmentShoots segmentShoots = arc->shootSequence[randomSegmentShootSequence];
+	_segments = arc->segments;
 	_shootSequence = segmentShoots.shootSequence;
 	_segmentRepetitionMax = segmentShoots.segmentRepetition; // Usually zero
 	_segmentRepetition = 0;
@@ -106,14 +107,13 @@ void WetEngine::initSegment(ArcadeShooting *arc) {
 void WetEngine::findNextSegment(ArcadeShooting *arc) {
 	debugC(1, kHypnoDebugArcade, "Repetition %d of %d", _segmentRepetition, _segmentRepetitionMax);
 	Common::Point mousePos = g_system->getEventManager()->getMousePos();
-	Segments segments = arc->segments;
 
 	if (_segmentRepetition < _segmentRepetitionMax) {
 		_segmentRepetition = _segmentRepetition + 1;
 	} else {
 		_segmentRepetition = 0;
 		_segmentRepetitionMax = 0;
-		if (segments[_segmentIdx].type == 0xb3) {
+		if (_segments[_segmentIdx].type == 0xb3) {
 			if (_arcadeMode == "Y1") {
 				if (_rnd->getRandomBit())
 					_segmentIdx = _segmentIdx + 1;
@@ -128,16 +128,16 @@ void WetEngine::findNextSegment(ArcadeShooting *arc) {
 				else
 					_segmentIdx = r + 4;
 
-				if (segments[_segmentIdx].type == 'L') {
+				if (_segments[_segmentIdx].type == 'L') {
 					_shootSequence = arc->shootSequence[11].shootSequence;
 					_segmentRepetitionMax = 0;
-				} else if (segments[_segmentIdx].type == 'R') {
+				} else if (_segments[_segmentIdx].type == 'R') {
 					_shootSequence = arc->shootSequence[12].shootSequence;
 					_segmentRepetitionMax = 0;
-				} else if (segments[_segmentIdx].type == 'A') {
+				} else if (_segments[_segmentIdx].type == 'A') {
 					_shootSequence = arc->shootSequence[15].shootSequence;
 					_segmentRepetitionMax = 0;
-				} else if (segments[_segmentIdx].type == 'P') {
+				} else if (_segments[_segmentIdx].type == 'P') {
 					r = _rnd->getRandomNumber(1);
 					_shootSequence = arc->shootSequence[13 + r].shootSequence; //13-14
 					_segmentRepetitionMax = 0;
@@ -145,7 +145,7 @@ void WetEngine::findNextSegment(ArcadeShooting *arc) {
 			} else
 				_segmentIdx = _segmentIdx + 1;
 
-		} else if (segments[_segmentIdx].type == 0xc5) {
+		} else if (_segments[_segmentIdx].type == 0xc5) {
 			if (_arcadeMode == "Y1") {
 				if (mousePos.x <= 106)
 					_segmentIdx = _segmentIdx + 1;
@@ -171,27 +171,27 @@ void WetEngine::findNextSegment(ArcadeShooting *arc) {
 				} else
 					_segmentIdx = _segmentIdx + 1;
 			} else
-				error("Invalid segment type for mode: %s at the end of segment %x", _arcadeMode.c_str(), segments[_segmentIdx].type);
+				error("Invalid segment type for mode: %s at the end of segment %x", _arcadeMode.c_str(), _segments[_segmentIdx].type);
 
-		} else if (segments[_segmentIdx].type == 0xc2) {
+		} else if (_segments[_segmentIdx].type == 0xc2) {
 			if (mousePos.x <= 160)
 				_segmentIdx = _segmentIdx + 1;
 			else
 				_segmentIdx = _segmentIdx + 2;
-		} else if (segments[_segmentIdx].type == 0xcc) {
+		} else if (_segments[_segmentIdx].type == 0xcc) {
 			if (mousePos.x <= 160)
 				_segmentIdx = _segmentIdx + 1;
 			else
 				_segmentIdx = _segmentIdx + 2;
-		} else if (segments[_segmentIdx].type == 'Y') {
+		} else if (_segments[_segmentIdx].type == 'Y') {
 			if (mousePos.x <= 160)
 				_segmentIdx = _segmentIdx + 2;
 			else
 				_segmentIdx = _segmentIdx + 1;
 
-		/*} else if (segments[_segmentIdx].type == 'a') {
+		/*} else if (_segments[_segmentIdx].type == 'a') {
 			_segmentIdx = 1;*/
-		} else if (segments[_segmentIdx].type == 's') {
+		} else if (_segments[_segmentIdx].type == 's') {
 			_segmentIdx = _segmentIdx + 10; // _segmentIdx = 11;
 		} else {
 
@@ -209,7 +209,7 @@ void WetEngine::findNextSegment(ArcadeShooting *arc) {
 					return;
 				}
 			}
-			if (segments[_segmentIdx].type == 0xc9) {
+			if (_segments[_segmentIdx].type == 0xc9) {
 				if (_arcadeMode == "Y3") {
 					_segmentOffset = _segmentIdx + 1;
 					_segmentShootSequenceOffset = 8;
@@ -225,16 +225,16 @@ void WetEngine::findNextSegment(ArcadeShooting *arc) {
 						_segmentShootSequenceMax = 5;
 					}
 				} else
-					error("Invalid segment type for mode: %s at the end of segment %x", _arcadeMode.c_str(), segments[_segmentIdx].type);
-			} else if (segments[_segmentIdx].type == 0xbb) {
+					error("Invalid segment type for mode: %s at the end of segment %x", _arcadeMode.c_str(), _segments[_segmentIdx].type);
+			} else if (_segments[_segmentIdx].type == 0xbb) {
 				_segmentOffset = 0;
 				_segmentShootSequenceOffset = 0;
 				_segmentShootSequenceMax = 7;
-			} else if (segments[_segmentIdx].type == 0x61) {
+			} else if (_segments[_segmentIdx].type == 0x61) {
 				_segmentOffset = _segmentOffset + 1; // _segmentOffset = 1;
 				_segmentShootSequenceOffset = 6;
 				_segmentShootSequenceMax = 4;
-			} else if (segments[_segmentIdx].type == 0x63) {
+			} else if (_segments[_segmentIdx].type == 0x63) {
 				_segmentOffset = _segmentOffset - 1; // _segmentOffset = 0;
 				//_segmentShootSequenceOffset = 0; // TODO
 				//_segmentShootSequenceMax = 7; // TODO
@@ -916,6 +916,11 @@ void WetEngine::drawShoot(const Common::Point &mousePos) {
 }
 
 void WetEngine::drawPlayer() {
+	uint8 segmentType = _segments[_segmentIdx].type;
+	if (segmentType == 0xc5 || segmentType == 0xc2 || segmentType == 0xcc)
+		if (_background->decoder->getCurFrame() % 3 > 0) // Avoid flashing too much
+			drawString("block05.fgx", "CHOOSE DIRECTION", 113, 13, 80, kHypnoColorCyan);
+
 	// TARGET ACQUIRED frame
 	uint32 c = kHypnoColorGreen; // green
 	_compositeSurface->drawLine(113, 1, 119, 1, c);




More information about the Scummvm-git-logs mailing list