[Scummvm-git-logs] scummvm master -> cc2a3bd9c66c449bd81db73f2887671da0c6818e

neuromancer noreply at scummvm.org
Sat Mar 12 09:00:31 UTC 2022


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

Summary:
3dc1129b55 HYPNO: show the required amount of objectives to destroy in wet
22705cd119 HYPNO: removed the use of confman in save/load code in wet
0b4335a47c HYPNO: added a required delay in arcade sequences
e5377943c8 HYPNO: allow to load games externally in wet
cc2a3bd9c6 HYPNO: refactored save/load profile code in wet


Commit: 3dc1129b5527ab76455abadda20f3c70e9b5113c
    https://github.com/scummvm/scummvm/commit/3dc1129b5527ab76455abadda20f3c70e9b5113c
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-12T10:00:48+01:00

Commit Message:
HYPNO: show the required amount of objectives to destroy in wet

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


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 65466b314b7..186eae4c12f 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -217,6 +217,11 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
 	_objMissesCount[0] = 0;
 	_objMissesCount[1] = 0;
 
+	_objKillsRequired[0] = arc->objKillsRequired[0];
+	_objKillsRequired[1] = arc->objKillsRequired[1];
+	_objMissesAllowed[0] = arc->objMissesAllowed[0];
+	_objMissesAllowed[1] = arc->objMissesAllowed[1];
+
 	debugC(1, kHypnoDebugArcade, "Using frame delay: %d", arc->frameDelay);
 
 	Common::Event event;
@@ -364,8 +369,8 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
 		if (segments[_segmentIdx].end || _skipLevel) {
 			skipVideo(background);
 			// Objectives
-			if ((arc->objKillsRequired[_objIdx] > 0 || arc->objMissesAllowed[_objIdx] > 0) && !_skipLevel) {
-				if (_objKillsCount[_objIdx] < arc->objKillsRequired[_objIdx] || _objMissesCount[_objIdx] > arc->objMissesAllowed[_objIdx]) {
+			if ((_objKillsRequired[_objIdx] > 0 || _objMissesAllowed[_objIdx] > 0) && !_skipLevel) {
+				if (_objKillsCount[_objIdx] < _objKillsRequired[_objIdx] || _objMissesCount[_objIdx] > _objMissesAllowed[_objIdx]) {
 					if (!arc->defeatMissBossVideo.empty()) {
 						MVideo video(arc->defeatMissBossVideo, Common::Point(0, 0), false, true, false);
 						runIntro(video);
diff --git a/engines/hypno/hypno.h b/engines/hypno/hypno.h
index 40c9a95753a..1b11749b14a 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -281,6 +281,8 @@ public:
 	uint32 _objIdx;
 	uint32 _objKillsCount[2];
 	uint32 _objMissesCount[2];
+	uint32 _objKillsRequired[2];
+	uint32 _objMissesAllowed[2];
 
 	// Fonts
 	virtual void loadFonts();
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index c8c94087bab..4584f174c55 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -465,7 +465,7 @@ void WetEngine::drawHealth() {
 	int p = (100 * _health) / _maxHealth;
 	int s = _score;
 	int mo = _objKillsCount[_objIdx];
-
+	int mm = _objKillsRequired[_objIdx];
 	if (_playerFrameIdx < _playerFrameSep) {
 		const chapterEntry *entry = _chapterTable[_levelId];
 		//uint32 id = _levelId;
@@ -473,7 +473,7 @@ void WetEngine::drawHealth() {
 		drawString("block05.fgx", Common::String::format("SCORE  %04d", s), entry->scorePos[0], entry->scorePos[1], 72, c);
 		// Objectives are always in the zero in the demo
 		if (entry->objectivesPos[0] > 0 && entry->objectivesPos[1] > 0)
-			drawString("block05.fgx", Common::String::format("M.O.  %d/X", mo), entry->objectivesPos[0], entry->objectivesPos[1], 60, c);
+			drawString("block05.fgx", Common::String::format("M.O.  %d/%d", mo, mm), entry->objectivesPos[0], entry->objectivesPos[1], 60, c);
 	}
 }
 


Commit: 22705cd1199707a530e01aea78b9e66620ff4c00
    https://github.com/scummvm/scummvm/commit/22705cd1199707a530e01aea78b9e66620ff4c00
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-12T10:00:48+01:00

Commit Message:
HYPNO: removed the use of confman in save/load code in wet

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


diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index f42df27cc1d..d78fa7df59e 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -21,7 +21,6 @@
 
 #include "common/bitarray.h"
 #include "common/events.h"
-#include "common/config-manager.h"
 #include "common/savefile.h"
 
 #include "hypno/hypno.h"
@@ -451,8 +450,7 @@ void WetEngine::drawString(const Common::String &font, const Common::String &str
 }
 
 void WetEngine::saveGame(int levelId) {
-	Common::String target = ConfMan.get("gameid") + "-" + ConfMan.get("language");
-	SaveStateList saves = getMetaEngine()->listSaves(target.c_str());
+	SaveStateList saves = getMetaEngine()->listSaves(_targetName.c_str());
 
 	// Find the correct level index to before saving
 	for (uint32 i = 0; i < _ids.size(); i++) {
@@ -474,8 +472,7 @@ void WetEngine::saveGame(int levelId) {
 }
 
 bool WetEngine::loadGame(const Common::String &name) {
-	Common::String target = ConfMan.get("gameid") + "-" + ConfMan.get("language");
-	SaveStateList saves = getMetaEngine()->listSaves(target.c_str());
+	SaveStateList saves = getMetaEngine()->listSaves(_targetName.c_str());
 	uint32 slot = 0;
 	for (SaveStateList::iterator save = saves.begin(); save != saves.end(); ++save) {
 		if (save->getDescription() == _name)


Commit: 0b4335a47cbad3b464a32596f66861967d0bdb80
    https://github.com/scummvm/scummvm/commit/0b4335a47cbad3b464a32596f66861967d0bdb80
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-12T10:00:48+01:00

Commit Message:
HYPNO: added a required delay in arcade sequences

Changed paths:
    engines/hypno/arcade.cpp


diff --git a/engines/hypno/arcade.cpp b/engines/hypno/arcade.cpp
index 186eae4c12f..4c0e42406d2 100644
--- a/engines/hypno/arcade.cpp
+++ b/engines/hypno/arcade.cpp
@@ -401,7 +401,7 @@ void HypnoEngine::runArcade(ArcadeShooting *arc) {
 			ShootInfo si = _shootSequence.front();
 			int idx = (int)segments[_segmentIdx].size * _segmentRepetition \
 					+ background.decoder->getCurFrame() \
-					- (int)segments[_segmentIdx].start;
+					- (int)segments[_segmentIdx].start + 3;
 			//debug("%d %d", si.timestamp, idx);
 			if ((int)si.timestamp <= idx) {
 				_shootSequence.pop_front();


Commit: e5377943c82e3aa281577f30fa18577f9cfee054
    https://github.com/scummvm/scummvm/commit/e5377943c82e3aa281577f30fa18577f9cfee054
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-12T10:00:48+01:00

Commit Message:
HYPNO: allow to load games externally in wet

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


diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index d78fa7df59e..d0a11584cd9 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -486,11 +486,6 @@ bool WetEngine::loadGame(const Common::String &name) {
 	}
 
 	loadGameState(slot);
-	if (_lastLevel == 0)
-		_nextLevel = Common::String::format("c%d", _ids[0]);
-	else
-		_nextLevel = "<level_menu>";
-
 	return true;
 }
 
@@ -520,6 +515,12 @@ Common::Error WetEngine::loadGameStream(Common::SeekableReadStream *stream) {
 	_lives = stream->readUint32LE();
 	_score = stream->readUint32LE();
 	_lastLevel = stream->readUint32LE();
+
+	if (_lastLevel == 0)
+		_nextLevel = Common::String::format("c%d", _ids[0]);
+	else
+		_nextLevel = "<level_menu>";
+
 	return Common::kNoError;
 }
 


Commit: cc2a3bd9c66c449bd81db73f2887671da0c6818e
    https://github.com/scummvm/scummvm/commit/cc2a3bd9c66c449bd81db73f2887671da0c6818e
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-03-12T10:00:48+01:00

Commit Message:
HYPNO: refactored save/load profile code in wet

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


diff --git a/engines/hypno/hypno.h b/engines/hypno/hypno.h
index 1b11749b14a..1c03adb37a5 100644
--- a/engines/hypno/hypno.h
+++ b/engines/hypno/hypno.h
@@ -346,8 +346,8 @@ public:
 	// Saves
 	Common::Error saveGameStream(Common::WriteStream *stream, bool isAutosave = false) override;
 	Common::Error loadGameStream(Common::SeekableReadStream *stream) override;
-	bool loadGame(const Common::String &name);
-	void saveGame(int levelId);
+	bool loadProfile(const Common::String &name);
+	void saveProfile(const Common::String &name, int levelId);
 
 	// Arcade
 	void runBeforeArcade(ArcadeShooting *arc) override;
diff --git a/engines/hypno/wet/arcade.cpp b/engines/hypno/wet/arcade.cpp
index 4584f174c55..ab88727f67c 100644
--- a/engines/hypno/wet/arcade.cpp
+++ b/engines/hypno/wet/arcade.cpp
@@ -292,7 +292,7 @@ void WetEngine::runBeforeArcade(ArcadeShooting *arc) {
 	MVideo *video;
 	if (!isDemo()) {
 
-		saveGame(int(arc->id));
+		saveProfile(_name, int(arc->id));
 		byte *palette;
 		Graphics::Surface *frame = decodeFrame("c_misc/zones.smk", (arc->id / 10 - 1) * 2, &palette);
 		loadPalette(palette, 0, 256);
diff --git a/engines/hypno/wet/hard.cpp b/engines/hypno/wet/hard.cpp
index 34295e20d1e..0e1bd754526 100644
--- a/engines/hypno/wet/hard.cpp
+++ b/engines/hypno/wet/hard.cpp
@@ -178,12 +178,12 @@ void WetEngine::runMainMenu(Code *code) {
 		_lastLevel = 0;
 
 	_name.toLowercase();
-	bool found = loadGame(_name);
+	bool found = loadProfile(_name);
 
 	if (found)
 		return;
 
-	saveGame(_ids[_lastLevel]);
+	saveProfile(_name, _ids[_lastLevel]);
 
 	Common::Rect subDifficulty(20, 104, 233, 119);
 	Graphics::Surface surDifficulty = overlay->getSubArea(subDifficulty);
diff --git a/engines/hypno/wet/wet.cpp b/engines/hypno/wet/wet.cpp
index d0a11584cd9..d011f21bfa9 100644
--- a/engines/hypno/wet/wet.cpp
+++ b/engines/hypno/wet/wet.cpp
@@ -449,7 +449,7 @@ void WetEngine::drawString(const Common::String &font, const Common::String &str
 		error("Invalid font: '%s'", font.c_str());
 }
 
-void WetEngine::saveGame(int levelId) {
+void WetEngine::saveProfile(const Common::String &name, int levelId) {
 	SaveStateList saves = getMetaEngine()->listSaves(_targetName.c_str());
 
 	// Find the correct level index to before saving
@@ -463,19 +463,19 @@ void WetEngine::saveGame(int levelId) {
 
 	uint32 slot = 0;
 	for (SaveStateList::iterator save = saves.begin(); save != saves.end(); ++save) {
-		if (save->getDescription() == _name)
+		if (save->getDescription() == name)
 			break;
 		slot++;
 	}
 
-	saveGameState(slot, _name, false);
+	saveGameState(slot, name, false);
 }
 
-bool WetEngine::loadGame(const Common::String &name) {
+bool WetEngine::loadProfile(const Common::String &name) {
 	SaveStateList saves = getMetaEngine()->listSaves(_targetName.c_str());
 	uint32 slot = 0;
 	for (SaveStateList::iterator save = saves.begin(); save != saves.end(); ++save) {
-		if (save->getDescription() == _name)
+		if (save->getDescription() == name)
 			break;
 		slot++;
 	}




More information about the Scummvm-git-logs mailing list