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

mgerhardy martin.gerhardy at gmail.com
Mon Mar 1 17:56:02 UTC 2021


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

Summary:
2733316ae8 TWINE: fixed valgrind report while loading blank sample hqr entries
fdbab26134 TWINE: replaced magic number with defines


Commit: 2733316ae831634761f6ec19ee3626dc8c3f647d
    https://github.com/scummvm/scummvm/commit/2733316ae831634761f6ec19ee3626dc8c3f647d
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-01T18:39:44+01:00

Commit Message:
TWINE: fixed valgrind report while loading blank sample hqr entries

Changed paths:
    engines/twine/resources/resources.cpp


diff --git a/engines/twine/resources/resources.cpp b/engines/twine/resources/resources.cpp
index 093a3eae48..10fcba71ec 100644
--- a/engines/twine/resources/resources.cpp
+++ b/engines/twine/resources/resources.cpp
@@ -24,8 +24,8 @@
 #include "common/tokenizer.h"
 #include "common/util.h"
 #include "twine/audio/sound.h"
-#include "twine/renderer/screens.h"
 #include "twine/renderer/renderer.h"
+#include "twine/renderer/screens.h"
 #include "twine/scene/animations.h"
 #include "twine/scene/scene.h"
 #include "twine/text.h"
@@ -98,6 +98,17 @@ void Resources::preloadAnimations() {
 	}
 }
 
+static bool isLba1BlankSampleEntry(int32 index) {
+	// these indices contain blank hqr entries
+	const int32 blankIndices[] = {80, 81, 82, 83, 115, 118, 120, 124, 125, 139, 140, 154, 155};
+	for (int j = 0; j < ARRAYSIZE(blankIndices); ++j) {
+		if (index == blankIndices[j]) {
+			return true;
+		}
+	}
+	return false;
+}
+
 void Resources::preloadSamples() {
 	const int32 numEntries = HQR::numEntries(Resources::HQR_SAMPLES_FILE);
 	const int32 maxSamples = _engine->isLBA1() ? 243 : NUM_SAMPLES;
@@ -106,15 +117,20 @@ void Resources::preloadSamples() {
 	}
 	debug("preload %i samples", numEntries);
 	for (int32 i = 0; i < numEntries; i++) {
+		if (_engine->isLBA1() && isLba1BlankSampleEntry(i)) {
+			samplesSizeTable[i] = 0;
+			samplesTable[i] = nullptr;
+			continue;
+		}
 		samplesSizeTable[i] = HQR::getAllocEntry(&samplesTable[i], Resources::HQR_SAMPLES_FILE, i);
 		if (samplesSizeTable[i] == 0) {
 			warning("Failed to load sample %i", i);
 			continue;
 		}
 		// Fix incorrect sample files first byte
-		if (*(samplesTable[i]) != 'C') {
-			debug(0, "Sample %i has incorrect magic id", i);
-			*(samplesTable[i]) = 'C';
+		if (*samplesTable[i] != 'C') {
+			debug("Sample %i has incorrect magic id", i);
+			*samplesTable[i] = 'C';
 		}
 	}
 }
@@ -207,7 +223,7 @@ void Resources::loadFlaInfo() {
 	if (size == 0) {
 		return;
 	}
-	const Common::String str((const char*)content, size);
+	const Common::String str((const char *)content, size);
 	free(content);
 
 	Common::StringTokenizer tok(str, "\r\n");
@@ -228,7 +244,7 @@ void Resources::loadFlaInfo() {
 	}
 }
 
-const Common::Array<int32>& Resources::getFlaMovieInfo(const Common::String &name) const {
+const Common::Array<int32> &Resources::getFlaMovieInfo(const Common::String &name) const {
 	return _flaMovieFrames.getVal(name);
 }
 


Commit: fdbab2613488fc03ce47b524697217d0613a786b
    https://github.com/scummvm/scummvm/commit/fdbab2613488fc03ce47b524697217d0613a786b
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-03-01T18:53:23+01:00

Commit Message:
TWINE: replaced magic number with defines

Changed paths:
    engines/twine/scene/gamestate.cpp
    engines/twine/scene/gamestate.h
    engines/twine/shared.h
    engines/twine/twine.h


diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 9f91d2d047..1b8fb52bfa 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -289,12 +289,12 @@ void GameState::setGameFlag(uint8 index, uint8 value) {
 	_gameStateFlags[index] = value;
 
 	// all 4 slap videos
-	if ((index == 200 || index == 201 || index == 202 || index == 215) &&
-		_gameStateFlags[200] != 0 && _gameStateFlags[201] != 0 && _gameStateFlags[202] != 0 && _gameStateFlags[215] != 0) {
+	if ((index == GAMEFLAG_VIDEO_BAFFE || index == GAMEFLAG_VIDEO_BAFFE2 || index == GAMEFLAG_VIDEO_BAFFE3 || index == GAMEFLAG_VIDEO_BAFFE5) &&
+		_gameStateFlags[GAMEFLAG_VIDEO_BAFFE] != 0 && _gameStateFlags[GAMEFLAG_VIDEO_BAFFE2] != 0 && _gameStateFlags[GAMEFLAG_VIDEO_BAFFE3] != 0 && _gameStateFlags[GAMEFLAG_VIDEO_BAFFE5] != 0) {
 		_engine->unlockAchievement("LBA_ACH_012");
 	}
 	// second video of ferry trip
-	if (index == 209) {
+	if (index == GAMEFLAG_VIDEO_BATEAU2) {
 		_engine->unlockAchievement("LBA_ACH_010");
 	}
 	if (index == (uint8)InventoryItems::kiUseSabre) {
diff --git a/engines/twine/scene/gamestate.h b/engines/twine/scene/gamestate.h
index b80fa91888..5887eb1295 100644
--- a/engines/twine/scene/gamestate.h
+++ b/engines/twine/scene/gamestate.h
@@ -32,11 +32,6 @@
 
 namespace TwinE {
 
-/**
- * This gameflag indicates that the inventory items are taken from Twinson because he went to jail
- */
-#define GAMEFLAG_INVENTORY_DISABLED 70
-
 enum InventoryItems {
 	kiHolomap = 0,
 	kiMagicBall = 1,
@@ -93,8 +88,10 @@ private:
 	 * LBA engine game flags to save quest states
 	 *
 	 * 0-27: inventory related
-	 * 28-199: story related
-	 * 200-255: video related
+	 * 28-158: story related
+	 * 159..199: unused
+	 * 200-219: video related
+	 * 220..255: unused
 	 *
 	 * 35: If 0, a zommed sequence of opening the ventilation shaft will be played when Twinsen escapes
 	 * his house after arresting Zoe. Set to 1 after the sequence (also if Twinsen is killed during the arrest).
diff --git a/engines/twine/shared.h b/engines/twine/shared.h
index 0b0aef5d45..8857c72c1a 100644
--- a/engines/twine/shared.h
+++ b/engines/twine/shared.h
@@ -27,6 +27,50 @@
 
 #define NUM_GAME_FLAGS 255
 #define NUM_INVENTORY_ITEMS 28
+/**
+ * This gameflag indicates that the inventory items are taken from Twinson because he went to jail
+ */
+#define GAMEFLAG_INVENTORY_DISABLED 70
+// Hit
+#define GAMEFLAG_VIDEO_BAFFE 200
+// Hit, band-aid
+#define GAMEFLAG_VIDEO_BAFFE2 201
+// Hit, black eye
+#define GAMEFLAG_VIDEO_BAFFE3 202
+// Ferry #1
+#define GAMEFLAG_VIDEO_BATEAU 203
+// Temple of Bu
+#define GAMEFLAG_VIDEO_TEMPLE 204
+// White Leaf Desert, flute
+#define GAMEFLAG_VIDEO_FLUTE2 205
+// Hamalayi Mountains, chuttle
+#define GAMEFLAG_VIDEO_NAVETTE 206
+// Hamalayi Mountains, storm
+#define GAMEFLAG_VIDEO_NEIGE2 207
+// Hamalayi Mountains, ski lift
+#define GAMEFLAG_VIDEO_SURF 208
+// Ferry #2
+#define GAMEFLAG_VIDEO_BATEAU2 209
+// Fortress, Zoe Clone
+#define GAMEFLAG_VIDEO_CAPTURE 210
+// Fortress, Rune stone (cut from the game)
+#define GAMEFLAG_VIDEO_VERSER 211
+// Fortress, Rune stone
+#define GAMEFLAG_VIDEO_VERSER2 212
+// Fortress, explosion
+#define GAMEFLAG_VIDEO_FORTRESS 213
+// Sendel give powers to Twinsen and Zoe.
+#define GAMEFLAG_VIDEO_SENDEL2 214
+// Hit, reject
+#define GAMEFLAG_VIDEO_BAFFE5 215
+// Twinsun explosion (on top of the well)
+#define GAMEFLAG_VIDEO_EXPLOD 216
+// Clear water lake
+#define GAMEFLAG_VIDEO_GLASS2 217
+// Twinsen in Well of Sendell
+#define GAMEFLAG_VIDEO_SENDEL 218
+// Twinsun explosion
+#define GAMEFLAG_VIDEO_EXPLOD2 219
 
 namespace TwinE {
 
diff --git a/engines/twine/twine.h b/engines/twine/twine.h
index 0386245688..9d39c1c1e1 100644
--- a/engines/twine/twine.h
+++ b/engines/twine/twine.h
@@ -31,7 +31,7 @@
 #include "graphics/managed_surface.h"
 #include "graphics/pixelformat.h"
 #include "graphics/surface.h"
-#include "metaengine.h"
+#include "engines/metaengine.h"
 #include "twine/scene/actor.h"
 #include "twine/input.h"
 #include "twine/detection.h"




More information about the Scummvm-git-logs mailing list