[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