[Scummvm-git-logs] scummvm master -> 4f52107b29cde3a8df6155c16f99129a6f25a2fc

sev- noreply at scummvm.org
Mon Oct 21 16:50:10 UTC 2024


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

Summary:
57cc40e60d QDENGINE: Fix uninit class variable. CID 1563857
afaf26e6cc QDENGINE: Init class variables. CID 1563749
ff7e2cc2c7 QDENGINE: Init class variables. CID 1563745
1bbb6b96dd QDENGINE: Init class variables. CID 1563751
3fbf77bbab QDENGINE: Fix potential out-of-bounds read. CID 1563752
ed4ad8af96 QDENGINE: Initialize class variable. CID 1563859
6f0b6531a8 QDENGINE: Initialize class variable. CID 1563853
2f2fd04201 QDENGINE: Mark switch option as fall through. CID 1563858
627969bff3 QDENGINE: Init struct variable. CID 1563860
012b1a5654 QDENGINE: Fix potentially uninitalized variable. CID 1563850
d71e861a89 QDENGINE: Initialize class variables. CID 1563874
f5bc924120 QDENGINE: Initialize class variables. CID 1559915
b2c45c6074 QDENGINE: Initialize class vairables. CID 1559910
085ffdeff6 QDENGINE: Cleanup in MaskyOrder.dll minigame
4450c9d2f1 QDENGINE: Initialize class variables. CID 1562474
d2b7f7cdba QDENGINE: Avoid integer overflow. CID 1559706
436609f5de QDENGINE: Remove redundant code. CID 1559630
807b9300bd QDENGINE: Initialized class vairable. CID 1559611
02900a7555 QDENGINE: Check return value of load_data(). CID 1559604
128aaff557 QDENGINE: Check return value of save_script_body(). CID 1559645
72c4bbaea4 QDENGINE: Check success of loading operation. CID 1559658
37bc194e34 QDENGINE: Fix potential null dereference. CID 1559613
ad616bbc26 QDENGINE: Check file open success before attempt to write. CID 1560116
a0deab50c7 QDENGINE: Remove useless assignment. CID 1559707
3b377fa206 QDENGINE: Comment out unusued code branch. CID 1559646
d9de39b8c2 QDENGINE: Fix potential division by zero. CID 1559605, CID 1559617, CID 1559639, CID 1559643
bb463cf86f QDENGINE: Use safer array copy operations. CID 1559603, CID 1559612, CID 1559628
4f52107b29 QDENGINE: Check return value. CID 1559601


Commit: 57cc40e60d5a09dacfe2b5acac9a10c72dbeb037
    https://github.com/scummvm/scummvm/commit/57cc40e60d5a09dacfe2b5acac9a10c72dbeb037
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Fix uninit class variable. CID 1563857

Changed paths:
    engines/qdengine/minigames/3mice2_raskr_all.h


diff --git a/engines/qdengine/minigames/3mice2_raskr_all.h b/engines/qdengine/minigames/3mice2_raskr_all.h
index cb4aa58a5be..a6bb9b59298 100644
--- a/engines/qdengine/minigames/3mice2_raskr_all.h
+++ b/engines/qdengine/minigames/3mice2_raskr_all.h
@@ -351,7 +351,7 @@ private:
 
 	int _gameNum = 0;
 
-	const int *_colorRegions;
+	const int *_colorRegions = nullptr;
 	int _colorRegionsSize = 0;
 	int _neededColors = 0;
 };


Commit: afaf26e6cca4a19eda8f521e480455de06398e4a
    https://github.com/scummvm/scummvm/commit/afaf26e6cca4a19eda8f521e480455de06398e4a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Init class variables. CID 1563749

Changed paths:
    engines/qdengine/minigames/3mice2_states.h


diff --git a/engines/qdengine/minigames/3mice2_states.h b/engines/qdengine/minigames/3mice2_states.h
index 972412e110c..a6bed875e84 100644
--- a/engines/qdengine/minigames/3mice2_states.h
+++ b/engines/qdengine/minigames/3mice2_states.h
@@ -393,7 +393,7 @@ private:
 	qdMinigameObjectInterface *_objScene = nullptr;
 	qdMinigameObjectInterface *_objSelectedSet = nullptr;
 
-	qdMinigameObjectInterface *_objects[131];
+	qdMinigameObjectInterface *_objects[131] = { nullptr };
 };
 
 } // namespace QDEngine


Commit: ff7e2cc2c719d63e99b39d4620c9723910f54f47
    https://github.com/scummvm/scummvm/commit/ff7e2cc2c719d63e99b39d4620c9723910f54f47
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Init class variables. CID 1563745

Changed paths:
    engines/qdengine/minigames/3mice2_sudoku.h


diff --git a/engines/qdengine/minigames/3mice2_sudoku.h b/engines/qdengine/minigames/3mice2_sudoku.h
index e309f758eed..911b2b2123c 100644
--- a/engines/qdengine/minigames/3mice2_sudoku.h
+++ b/engines/qdengine/minigames/3mice2_sudoku.h
@@ -296,10 +296,10 @@ private:
 	const qdEngineInterface *_engine = nullptr;
 	qdMinigameSceneInterface *_scene = nullptr;
 
-	qdMinigameObjectInterface *_figures[26];
-	int _pos[13];
+	qdMinigameObjectInterface *_figures[26] = { nullptr };
+	int _pos[13] = { 0 };
 	mgVect2i _pieceCoords[13];
-	int _pieceTargets[13];
+	int _pieceTargets[13] = { 0 };
 
 	qdMinigameObjectInterface *_objDone = nullptr;
 	qdMinigameObjectInterface *_objResult = nullptr;


Commit: 1bbb6b96dda300277be16ef4ae1f59bdde71059a
    https://github.com/scummvm/scummvm/commit/1bbb6b96dda300277be16ef4ae1f59bdde71059a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Init class variables. CID 1563751

Changed paths:
    engines/qdengine/minigames/3mice2_testo.h


diff --git a/engines/qdengine/minigames/3mice2_testo.h b/engines/qdengine/minigames/3mice2_testo.h
index 220914713b3..e43020e8f96 100644
--- a/engines/qdengine/minigames/3mice2_testo.h
+++ b/engines/qdengine/minigames/3mice2_testo.h
@@ -334,9 +334,9 @@ private:
 	const qdEngineInterface *_engine = nullptr;
 	qdMinigameSceneInterface *_scene = nullptr;
 
-	qdMinigameObjectInterface *_figures[24];
+	qdMinigameObjectInterface *_figures[24] = { nullptr };
 
-	int _numVerts[8];
+	int _numVerts[8] = { 0 };
 
 	qdMinigameObjectInterface *_objNoDough = nullptr;
 	qdMinigameObjectInterface *_objNoDoughFake = nullptr;


Commit: 3fbf77bbaba2b3ee21d1c5802588a17a383ed4bd
    https://github.com/scummvm/scummvm/commit/3fbf77bbaba2b3ee21d1c5802588a17a383ed4bd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Fix potential out-of-bounds read. CID 1563752

Changed paths:
    engines/qdengine/minigames/3mice2_testo.h


diff --git a/engines/qdengine/minigames/3mice2_testo.h b/engines/qdengine/minigames/3mice2_testo.h
index e43020e8f96..7cfc85b5af3 100644
--- a/engines/qdengine/minigames/3mice2_testo.h
+++ b/engines/qdengine/minigames/3mice2_testo.h
@@ -218,7 +218,7 @@ public:
 			if (mouseObj && clickObj) {
 				name = clickObj->name();
 
-				if (strstr(name, "notesto")) {
+				if (strstr(name, "notesto") && num > 0 && num <= 8) {
 					_figures[num - 1]->set_state("base");
 					_figures[num + 15]->set_state("del");
 


Commit: ed4ad8af961e96229ab60f904b88d389c3d1fa4d
    https://github.com/scummvm/scummvm/commit/ed4ad8af961e96229ab60f904b88d389c3d1fa4d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Initialize class variable. CID 1563859

Changed paths:
    engines/qdengine/minigames/adv/EffectManager.cpp


diff --git a/engines/qdengine/minigames/adv/EffectManager.cpp b/engines/qdengine/minigames/adv/EffectManager.cpp
index 968d96414c9..a53d96ce34a 100644
--- a/engines/qdengine/minigames/adv/EffectManager.cpp
+++ b/engines/qdengine/minigames/adv/EffectManager.cpp
@@ -42,6 +42,8 @@ EffectManager::EffectManager(HoldData<EffectManagerData> &data) {
 
 	_current = EFFECT_COUNT;
 
+	_effectTimer = 0;
+	_phaseTimer = 0;
 }
 
 EffectManager::~EffectManager() {


Commit: 6f0b6531a8feba951bb85114c18ddbdf172f5321
    https://github.com/scummvm/scummvm/commit/6f0b6531a8feba951bb85114c18ddbdf172f5321
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Initialize class variable. CID 1563853

Changed paths:
    engines/qdengine/minigames/adv/RunTime.cpp


diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index e32e2cc3a18..c7808b3322c 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -1017,6 +1017,8 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
 			sscanf(data, "%f", &timeCost_);
 	}
 
+	direction_ = DOWN;
+
 	if (timeBar_) {
 		TimeManagerData myData;
 		myData.crd = g_runtime->world2game(timeBar_);
@@ -1041,7 +1043,6 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
 	assert(g_runtime->getTime() == 0.f);
 
 	lastEventTime_ = 0;
-
 }
 
 TimeManager::~TimeManager() {


Commit: 2f2fd042013bde280abae8a8d2421044e8630eef
    https://github.com/scummvm/scummvm/commit/2f2fd042013bde280abae8a8d2421044e8630eef
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Mark switch option as fall through. CID 1563858

Changed paths:
    engines/qdengine/minigames/adv/RunTime.cpp


diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index c7808b3322c..12629c85237 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -546,6 +546,7 @@ bool MinigameManager::quant(float dt) {
 		case MinigameInterface::GAME_LOST:
 			if (!timeManager_->timeIsOut())
 				signal(EVENT_GAME_LOSE);
+			// fallthrough
 		case MinigameInterface::NOT_INITED:
 			gameLose();
 			break;


Commit: 627969bff3ffdf18fd18c9befdee5cd4c717f00f
    https://github.com/scummvm/scummvm/commit/627969bff3ffdf18fd18c9befdee5cd4c717f00f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Init struct variable. CID 1563860

Changed paths:
    engines/qdengine/minigames/adv/TextManager.cpp


diff --git a/engines/qdengine/minigames/adv/TextManager.cpp b/engines/qdengine/minigames/adv/TextManager.cpp
index 0b0006c6aa6..ba6dea00290 100644
--- a/engines/qdengine/minigames/adv/TextManager.cpp
+++ b/engines/qdengine/minigames/adv/TextManager.cpp
@@ -221,6 +221,7 @@ TextManager::StaticTextPreset::StaticTextPreset() {
 	font = -1;
 	align = ALIGN_CENTER;
 	format[15] = 0;
+	textID = 0;
 }
 
 TextManager::StaticMessage::StaticMessage(Font* font, TextAlign align) {


Commit: 012b1a5654fac3722d03fc11f1a7304c4328ac0e
    https://github.com/scummvm/scummvm/commit/012b1a5654fac3722d03fc11f1a7304c4328ac0e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Fix potentially uninitalized variable. CID 1563850

Changed paths:
    engines/qdengine/minigames/adv/m_triangles.cpp


diff --git a/engines/qdengine/minigames/adv/m_triangles.cpp b/engines/qdengine/minigames/adv/m_triangles.cpp
index 0a5b7ee90d2..d3277e0178c 100644
--- a/engines/qdengine/minigames/adv/m_triangles.cpp
+++ b/engines/qdengine/minigames/adv/m_triangles.cpp
@@ -73,6 +73,8 @@ MinigameTriangle::MinigameTriangle() {
 		gameType_ = TRIANGLE;
 	}
 
+	fieldLines_ = fieldWidth_ = 0;
+
 	if (!getParameter("size", fieldLines_, true))
 		return;
 	if (fieldLines_ < 2)


Commit: d71e861a896426a4de339f31fff3b5e708e4d46d
    https://github.com/scummvm/scummvm/commit/d71e861a896426a4de339f31fff3b5e708e4d46d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:45+02:00

Commit Message:
QDENGINE: Initialize class variables. CID 1563874

Changed paths:
    engines/qdengine/minigames/adv/m_triangles.h


diff --git a/engines/qdengine/minigames/adv/m_triangles.h b/engines/qdengine/minigames/adv/m_triangles.h
index ce45e6118de..e9ac06e1c78 100644
--- a/engines/qdengine/minigames/adv/m_triangles.h
+++ b/engines/qdengine/minigames/adv/m_triangles.h
@@ -80,21 +80,21 @@ public:
 private:
 	GameType gameType_;
 	Coords positions_;
-	int selectDepth_;
+	int selectDepth_ = 0;
 
-	int fieldLines_;
-	int fieldWidth_;
-	int fieldSize_;
+	int fieldLines_ = 0;
+	int fieldWidth_ = 0;
+	int fieldSize_ = 0;
 	Nodes nodes_;
 	ObjectContainer selectBorders_[2];
 	ObjectContainer backSides_[6];
-	int selected_;
-	int hovered_;
+	int selected_ = 0;
+	int hovered_ = 0;
 
-	AnimationState animationState_;
-	int animatedNodes_[2];
-	float animationTime_;
-	float animationTimer_;
+	AnimationState animationState_ = NO_ANIMATION;
+	int animatedNodes_[2] =  { 0 };
+	float animationTime_ = 0.0;
+	float animationTimer_ = 0.0;
 
 	/// очистить рубашку фишки
 	void releaseNodeBack(Node& node);


Commit: f5bc9241205dbd05038edf7eac680d5f8e1f3434
    https://github.com/scummvm/scummvm/commit/f5bc9241205dbd05038edf7eac680d5f8e1f3434
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Initialize class variables. CID 1559915

Changed paths:
    engines/qdengine/minigames/arkada_avtomat.h


diff --git a/engines/qdengine/minigames/arkada_avtomat.h b/engines/qdengine/minigames/arkada_avtomat.h
index 163a208332f..8140e03e17b 100644
--- a/engines/qdengine/minigames/arkada_avtomat.h
+++ b/engines/qdengine/minigames/arkada_avtomat.h
@@ -524,20 +524,20 @@ private:
 	const qdEngineInterface *_engine = nullptr;
 	qdMinigameSceneInterface *_scene = nullptr;
 
-	qdMinigameObjectInterface *_patronMouseObj;
-	qdMinigameObjectInterface *_patronTomatoObj;
-	qdMinigameObjectInterface *_killObj;
-	qdMinigameObjectInterface *_fazaObj;
-	qdMinigameObjectInterface *_menObj;
-	qdMinigameObjectInterface *_bloodObj;
-	qdMinigameObjectInterface *_shotsEggObj;
-	qdMinigameObjectInterface *_shotsTomatoObj;
-	qdMinigameObjectInterface *_shotsBananObj;
-	qdMinigameObjectInterface *_doneObj;
-	qdMinigameObjectInterface *_livesObj;
-	qdMinigameObjectInterface *_bublObj;
-	qdMinigameObjectInterface *_walkFlagObj;
-	qdMinigameObjectInterface *_jumpFlagObj;
+	qdMinigameObjectInterface *_patronMouseObj = nullptr;
+	qdMinigameObjectInterface *_patronTomatoObj = nullptr;
+	qdMinigameObjectInterface *_killObj = nullptr;
+	qdMinigameObjectInterface *_fazaObj = nullptr;
+	qdMinigameObjectInterface *_menObj = nullptr;
+	qdMinigameObjectInterface *_bloodObj = nullptr;
+	qdMinigameObjectInterface *_shotsEggObj = nullptr;
+	qdMinigameObjectInterface *_shotsTomatoObj = nullptr;
+	qdMinigameObjectInterface *_shotsBananObj = nullptr;
+	qdMinigameObjectInterface *_doneObj = nullptr;
+	qdMinigameObjectInterface *_livesObj = nullptr;
+	qdMinigameObjectInterface *_bublObj = nullptr;
+	qdMinigameObjectInterface *_walkFlagObj = nullptr;
+	qdMinigameObjectInterface *_jumpFlagObj = nullptr;
 
 	bool _goingLeft = false;
 	bool _goingRight = false;


Commit: b2c45c607482c5cdc8a7d41c930023b874cf0d08
    https://github.com/scummvm/scummvm/commit/b2c45c607482c5cdc8a7d41c930023b874cf0d08
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Initialize class vairables. CID 1559910

Changed paths:
    engines/qdengine/minigames/kartiny.h


diff --git a/engines/qdengine/minigames/kartiny.h b/engines/qdengine/minigames/kartiny.h
index 8fbe0e24d77..91392e5738f 100644
--- a/engines/qdengine/minigames/kartiny.h
+++ b/engines/qdengine/minigames/kartiny.h
@@ -490,8 +490,8 @@ private:
 	int _stage = 0;
 
 	struct {
-		float depth;
-		int num;
+		float depth = 0;
+		int num = 0;
 	} _artState[4];
 };
 


Commit: 085ffdeff6a1a88590290e0f1f4b93b32086ef4f
    https://github.com/scummvm/scummvm/commit/085ffdeff6a1a88590290e0f1f4b93b32086ef4f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Cleanup in MaskyOrder.dll minigame

Changed paths:
    engines/qdengine/minigames/masky_order.h


diff --git a/engines/qdengine/minigames/masky_order.h b/engines/qdengine/minigames/masky_order.h
index 31dc1331409..bdd95ee993e 100644
--- a/engines/qdengine/minigames/masky_order.h
+++ b/engines/qdengine/minigames/masky_order.h
@@ -51,7 +51,7 @@ public:
 	~qdMaskyOrderMiniGame() {};
 
 	bool init(const qdEngineInterface *engine_interface) {
-		debugC(1, kDebugMinigames, "MaskyOrder::init(), dll: %s lang: %d", _dll.c_str(), _language);
+		debugC(1, kDebugMinigames, "MaskyOrder::init()");
 
 		_engine = engine_interface;
 		_scene = _engine->current_scene_interface();
@@ -319,9 +319,6 @@ private:
 	int _rotatingPiece = -1;
 	bool _pieceIsPut = true;
 	int _currentPieceState = 0;
-
-	Common::String _dll;
-	Common::Language _language;
 };
 
 } // namespace QDEngine


Commit: 4450c9d2f1c2fc3ec73e66d0c0f9cf7a68c4d3c0
    https://github.com/scummvm/scummvm/commit/4450c9d2f1c2fc3ec73e66d0c0f9cf7a68c4d3c0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Initialize class variables. CID 1562474

Changed paths:
    engines/qdengine/minigames/shveik_shkatulka.h


diff --git a/engines/qdengine/minigames/shveik_shkatulka.h b/engines/qdengine/minigames/shveik_shkatulka.h
index 5567ddb7253..d74390947c6 100644
--- a/engines/qdengine/minigames/shveik_shkatulka.h
+++ b/engines/qdengine/minigames/shveik_shkatulka.h
@@ -385,7 +385,7 @@ private:
 	int _someVar3 = 0;
 	bool _needSnap = false;
 
-	qdMinigameObjectInterface *_stones[14];
+	qdMinigameObjectInterface *_stones[14] = { nullptr };
 	qdMinigameObjectInterface *_draggedStone = nullptr;
 	qdMinigameObjectInterface *_cursorObj = nullptr;
 	qdMinigameObjectInterface *_doneObj = nullptr;


Commit: d2b7f7cdba8758cafbcf6b10980730e4d7f9d4fb
    https://github.com/scummvm/scummvm/commit/d2b7f7cdba8758cafbcf6b10980730e4d7f9d4fb
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Avoid integer overflow. CID 1559706

In general, computing 'npos + 1' is not a great idea, so
avoid this

Changed paths:
    engines/qdengine/parser/qdscr_parser.cpp


diff --git a/engines/qdengine/parser/qdscr_parser.cpp b/engines/qdengine/parser/qdscr_parser.cpp
index 5eef375e7d9..b3574daf17b 100644
--- a/engines/qdengine/parser/qdscr_parser.cpp
+++ b/engines/qdengine/parser/qdscr_parser.cpp
@@ -337,45 +337,35 @@ const char *qdscr_XML_string(const char *p) {
 
 	conv_str = p;
 
-	uint32 pos = Common::String::npos;
-	do {
+	uint32 pos = conv_str.find("&");;
+	while (pos != Common::String::npos) {
+		conv_str.replace(pos, 1, "&");
 		pos = conv_str.find("&", pos + 1);
-		if (pos != Common::String::npos)
-			conv_str.replace(pos, 1, "&");
-
-	} while (pos != Common::String::npos);
+	}
 
-	pos = Common::String::npos;
-	do {
+	pos = conv_str.find("<");
+	while (pos != Common::String::npos) {
+		conv_str.replace(pos, 1, "<");
 		pos = conv_str.find("<", pos + 1);
-		if (pos != Common::String::npos)
-			conv_str.replace(pos, 1, "<");
-
-	} while (pos != Common::String::npos);
+	}
 
-	pos = Common::String::npos;
-	do {
+	pos = conv_str.find(">");
+	while (pos != Common::String::npos) {
+		conv_str.replace(pos, 1, ">");
 		pos = conv_str.find(">", pos + 1);
-		if (pos != Common::String::npos)
-			conv_str.replace(pos, 1, ">");
-
-	} while (pos != Common::String::npos);
+	}
 
-	pos = Common::String::npos;
-	do {
+	pos = conv_str.find("\"");
+	while (pos != Common::String::npos) {
+		conv_str.replace(pos, 1, """);
 		pos = conv_str.find("\"", pos + 1);
-		if (pos != Common::String::npos)
-			conv_str.replace(pos, 1, """);
-
-	} while (pos != Common::String::npos);
+	}
 
-	pos = Common::String::npos;
-	do {
+	pos = conv_str.find("'");
+	while (pos != Common::String::npos) {
+		conv_str.replace(pos, 1, "'");
 		pos = conv_str.find("'", pos + 1);
-		if (pos != Common::String::npos)
-			conv_str.replace(pos, 1, "'");
-
-	} while (pos != Common::String::npos);
+	}
 
 	return (const char *)transCyrillic(conv_str.c_str());
 }


Commit: 436609f5deb243e847b42008789c2cc757ac34d3
    https://github.com/scummvm/scummvm/commit/436609f5deb243e847b42008789c2cc757ac34d3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Remove redundant code. CID 1559630

Changed paths:
    engines/qdengine/qdcore/qd_game_dispatcher.cpp


diff --git a/engines/qdengine/qdcore/qd_game_dispatcher.cpp b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
index 0881ae00847..8e722c6fa13 100644
--- a/engines/qdengine/qdcore/qd_game_dispatcher.cpp
+++ b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
@@ -1934,7 +1934,6 @@ bool qdGameDispatcher::play_video(qdVideo *p) {
 }
 
 bool qdGameDispatcher::pause_video() {
-	if (!_cur_video) return false;
 	return false;
 }
 


Commit: 807b9300bddd827dcacf588e1658feaf8f8b8c3b
    https://github.com/scummvm/scummvm/commit/807b9300bddd827dcacf588e1658feaf8f8b8c3b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Initialized class vairable. CID 1559611

Changed paths:
    engines/qdengine/qdcore/qd_game_object_animated.cpp


diff --git a/engines/qdengine/qdcore/qd_game_object_animated.cpp b/engines/qdengine/qdcore/qd_game_object_animated.cpp
index 60e0bfa1253..d71103604b4 100644
--- a/engines/qdengine/qdcore/qd_game_object_animated.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_animated.cpp
@@ -75,6 +75,7 @@ qdGameObjectAnimated::qdGameObjectAnimated(const qdGameObjectAnimated &obj) : qd
 	_inventory_name(obj._inventory_name),
 	_last_state(NULL),
 	_inventory_cell_index(-1),
+	_last_inventory_state(nullptr),
 	_last_frame(NULL),
 	_last_chg_time(obj._last_chg_time),
 	_shadow_alpha(obj._shadow_alpha),


Commit: 02900a7555384e48ea46eda8be0e466741916c84
    https://github.com/scummvm/scummvm/commit/02900a7555384e48ea46eda8be0e466741916c84
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Check return value of load_data(). CID 1559604

Changed paths:
    engines/qdengine/qdcore/qd_game_object_moving.cpp


diff --git a/engines/qdengine/qdcore/qd_game_object_moving.cpp b/engines/qdengine/qdcore/qd_game_object_moving.cpp
index 480ea03f3ea..970c4b5c7b9 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_moving.cpp
@@ -1800,7 +1800,8 @@ bool qdGameObjectMoving::load_data(Common::SeekableReadStream &fh, int save_vers
 	_circuit_objs.clear();
 	for (int i = 0; i < num; i++) {
 		qdNamedObjectReference circ_ref;
-		circ_ref.load_data(fh, save_version);
+		if (!circ_ref.load_data(fh, save_version))
+			return false;
 		_circuit_objs.push_back(dynamic_cast<qdGameObjectMoving *>(
 		                            qdGameDispatcher::get_dispatcher()->get_named_object(&circ_ref)));
 	}


Commit: 128aaff557f4fbddc0f6ab02be157c7e13b504cf
    https://github.com/scummvm/scummvm/commit/128aaff557f4fbddc0f6ab02be157c7e13b504cf
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Check return value of save_script_body(). CID 1559645

Changed paths:
    engines/qdengine/qdcore/qd_interface_button.cpp


diff --git a/engines/qdengine/qdcore/qd_interface_button.cpp b/engines/qdengine/qdcore/qd_interface_button.cpp
index 3877dc6567c..ab6b608304a 100644
--- a/engines/qdengine/qdcore/qd_interface_button.cpp
+++ b/engines/qdengine/qdcore/qd_interface_button.cpp
@@ -194,7 +194,8 @@ bool qdInterfaceButton::init(bool is_game_active) {
 
 bool qdInterfaceButton::save_script_body(Common::WriteStream &fh, int indent) const {
 	for (int i = 0; i < num_states(); i++) {
-		get_state(i)->save_script(fh, indent + 1);
+		if (!get_state(i)->save_script(fh, indent + 1))
+			return false;
 	}
 
 	return true;


Commit: 72c4bbaea4e3d68009492909cfab60aadb65efda
    https://github.com/scummvm/scummvm/commit/72c4bbaea4e3d68009492909cfab60aadb65efda
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Check success of loading operation. CID 1559658

Changed paths:
    engines/qdengine/qdcore/qd_interface_button.cpp


diff --git a/engines/qdengine/qdcore/qd_interface_button.cpp b/engines/qdengine/qdcore/qd_interface_button.cpp
index ab6b608304a..5009887b146 100644
--- a/engines/qdengine/qdcore/qd_interface_button.cpp
+++ b/engines/qdengine/qdcore/qd_interface_button.cpp
@@ -220,7 +220,8 @@ bool qdInterfaceButton::load_script_body(const xml::tag *p) {
 		switch (it->ID()) {
 		case QDSCR_INTERFACE_ELEMENT_STATE: {
 			qdInterfaceElementState st;
-			st.load_script(&*it);
+			if (!st.load_script(&*it))
+				return false;
 			add_state(st);
 		}
 		break;


Commit: 37bc194e34a23eb07678ce9eb3cad07144be519f
    https://github.com/scummvm/scummvm/commit/37bc194e34a23eb07678ce9eb3cad07144be519f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:46+02:00

Commit Message:
QDENGINE: Fix potential null dereference. CID 1559613

Changed paths:
    engines/qdengine/qdcore/qd_interface_element_state.cpp


diff --git a/engines/qdengine/qdcore/qd_interface_element_state.cpp b/engines/qdengine/qdcore/qd_interface_element_state.cpp
index 4a7d479d5ae..1c466db7dfd 100644
--- a/engines/qdengine/qdcore/qd_interface_element_state.cpp
+++ b/engines/qdengine/qdcore/qd_interface_element_state.cpp
@@ -381,7 +381,7 @@ const qdInterfaceEvent *qdInterfaceElementState::find_event(qdInterfaceEvent::ev
 bool qdInterfaceElementState::has_event(qdInterfaceEvent::event_t type, const char *ev_data) const {
 	for (events_container_t::const_iterator it = _events.begin(); it != _events.end(); ++it) {
 		if (it->event() == type) {
-			if ((!ev_data && !it->event_data()) || (it->event_data() && !strcmp(ev_data, it->event_data())))
+			if ((!ev_data && !it->event_data()) || (it->event_data() && ev_data && !strcmp(ev_data, it->event_data())))
 				return true;
 		}
 	}


Commit: ad616bbc26eda60a04b9f060dde001cb79e95212
    https://github.com/scummvm/scummvm/commit/ad616bbc26eda60a04b9f060dde001cb79e95212
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:47+02:00

Commit Message:
QDENGINE: Check file open success before attempt to write. CID 1560116

Changed paths:
    engines/qdengine/system/graphics/gr_tile_animation.cpp


diff --git a/engines/qdengine/system/graphics/gr_tile_animation.cpp b/engines/qdengine/system/graphics/gr_tile_animation.cpp
index 185a9c2c20a..79f7436064e 100644
--- a/engines/qdengine/system/graphics/gr_tile_animation.cpp
+++ b/engines/qdengine/system/graphics/gr_tile_animation.cpp
@@ -666,10 +666,15 @@ Graphics::ManagedSurface *grTileAnimation::dumpTiles(int tilesPerRow) const {
 void grTileAnimation::dumpTiles(Common::Path basename, int tilesPerRow) const {
 	Common::Path path = Common::Path(Common::String::format("dumps/%s.tiles.png", transCyrillic(basename.baseName())));
 
+	Common::DumpFile bitmapFile;
+	if (!bitmapFile.open(path, true)) {
+		warning("Cannot dump tile into file '%s'", path.toString().c_str());
+		return;
+	}
+
 	Graphics::ManagedSurface *dstSurf = dumpTiles(tilesPerRow);
 
-	Common::DumpFile bitmapFile;
-	bitmapFile.open(path, true);
+
 	Image::writePNG(bitmapFile, *(dstSurf->surfacePtr()));
 	bitmapFile.close();
 


Commit: a0deab50c716008ead9dfb283110e9eca421475d
    https://github.com/scummvm/scummvm/commit/a0deab50c716008ead9dfb283110e9eca421475d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:47+02:00

Commit Message:
QDENGINE: Remove useless assignment. CID 1559707

Changed paths:
    engines/qdengine/qdcore/util/LZ77.cpp


diff --git a/engines/qdengine/qdcore/util/LZ77.cpp b/engines/qdengine/qdcore/util/LZ77.cpp
index 1f53d9a7d79..0f6576fa425 100644
--- a/engines/qdengine/qdcore/util/LZ77.cpp
+++ b/engines/qdengine/qdcore/util/LZ77.cpp
@@ -160,7 +160,7 @@ int32 CLZ77::decode(byte *target, int32 &tlen, const byte *source, int32 slen) {
 			s += 2;
 		} else {
 			*t++ = *s++;
-			len = 1;
+			//len = 1;
 		}
 		if (++block >= 8) {
 			flag = s++;


Commit: 3b377fa20608724431ab7235ff36ea6f857e20cb
    https://github.com/scummvm/scummvm/commit/3b377fa20608724431ab7235ff36ea6f857e20cb
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:47+02:00

Commit Message:
QDENGINE: Comment out unusued code branch. CID 1559646

Changed paths:
    engines/qdengine/system/graphics/gr_dispatcher.cpp


diff --git a/engines/qdengine/system/graphics/gr_dispatcher.cpp b/engines/qdengine/system/graphics/gr_dispatcher.cpp
index dfd075960e4..e2f0c07ec19 100644
--- a/engines/qdengine/system/graphics/gr_dispatcher.cpp
+++ b/engines/qdengine/system/graphics/gr_dispatcher.cpp
@@ -961,12 +961,12 @@ bool grDispatcher::drawParsedText(int x, int y, int sx, int sy, uint32 color, co
 	int hSize = parser->fontHeight();
 	y -= hSize;
 
-	bool skipToNextLine = false;
+	//bool skipToNextLine = false;
 	int cur_x = x;
 	for (OutNodes::const_iterator it = parser->outNodes().begin(); it != parser->outNodes().end(); ++it) {
 		switch (it->type) {
 		case OutNode::NEW_LINE:
-			skipToNextLine = false;
+			//skipToNextLine = false;
 			y += hSize;
 			switch (align) {
 			case GR_ALIGN_LEFT:
@@ -984,8 +984,8 @@ bool grDispatcher::drawParsedText(int x, int y, int sx, int sy, uint32 color, co
 			break;
 
 		case OutNode::TEXT: {
-			if (skipToNextLine)
-				break;
+			//if (skipToNextLine)
+			//	break;
 
 			Common::String str(it->nl.begin, it->nl.end - it->nl.begin);
 			drawText(cur_x, y, color, str.c_str(), 0, 0, font);


Commit: d9de39b8c2d16096f9b5d74feeb0c9474f7d6627
    https://github.com/scummvm/scummvm/commit/d9de39b8c2d16096f9b5d74feeb0c9474f7d6627
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:47+02:00

Commit Message:
QDENGINE: Fix potential division by zero. CID 1559605, CID 1559617, CID 1559639, CID 1559643

Changed paths:
    engines/qdengine/qdcore/qd_inventory_cell.cpp


diff --git a/engines/qdengine/qdcore/qd_inventory_cell.cpp b/engines/qdengine/qdcore/qd_inventory_cell.cpp
index 4f61483270b..c416abdb8c5 100644
--- a/engines/qdengine/qdcore/qd_inventory_cell.cpp
+++ b/engines/qdengine/qdcore/qd_inventory_cell.cpp
@@ -263,6 +263,9 @@ grScreenRegion qdInventoryCellSet::screen_region() const {
 bool qdInventoryCellSet::put_object(qdGameObjectAnimated *p, const Vect2s &pos) {
 	if (!hit(pos)) return false;
 
+	if (_cells.front().size_x() == 0 || _cells.front().size_y() == 0)
+		return NULL;
+
 	Vect2s v = pos - screen_pos() + _cells.front().size() / 2;
 	int idx = v.x / _cells.front().size_x() + (v.y / _cells.front().size_y()) * _size.x;
 	// Двигаем индекс на текущее смещение ячеек
@@ -279,6 +282,9 @@ bool qdInventoryCellSet::put_object(qdGameObjectAnimated *p, const Vect2s &pos)
 qdGameObjectAnimated *qdInventoryCellSet::get_object(const Vect2s &pos) const {
 	if (!hit(pos)) return NULL;
 
+	if (_cells.front().size_x() == 0 || _cells.front().size_y() == 0)
+		return NULL;
+
 	Vect2s v = pos - screen_pos() + _cells.front().size() / 2;
 
 	int idx = v.x / _cells.front().size_x() + (v.y / _cells.front().size_y()) * _size.x;


Commit: bb463cf86fd4e57505a256b4b03bd9f021f7d84f
    https://github.com/scummvm/scummvm/commit/bb463cf86fd4e57505a256b4b03bd9f021f7d84f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:47+02:00

Commit Message:
QDENGINE: Use safer array copy operations. CID 1559603, CID 1559612, CID 1559628

Changed paths:
    engines/qdengine/system/graphics/gr_tile_animation.cpp


diff --git a/engines/qdengine/system/graphics/gr_tile_animation.cpp b/engines/qdengine/system/graphics/gr_tile_animation.cpp
index 79f7436064e..ac109e4dbe8 100644
--- a/engines/qdengine/system/graphics/gr_tile_animation.cpp
+++ b/engines/qdengine/system/graphics/gr_tile_animation.cpp
@@ -110,7 +110,10 @@ bool grTileAnimation::compress(grTileCompressionMethod method) {
 
 		uint32 offs = tile_offsets.back();
 		uint32 sz = grTileSprite::compress(data, &*tile_vector.begin(), method);
-		tile_data.insert(tile_data.end(), tile_vector.begin(), tile_vector.begin() + sz);
+
+		for (int j = 0; j < sz; j++)
+			tile_data.push_back(tile_vector[j]);
+
 		tile_offsets.push_back(offs + sz);
 	}
 
@@ -188,7 +191,9 @@ void grTileAnimation::addFrame(const uint32 *frame_data) {
 				uint32 sz = GR_TILE_SPRITE_SIZE;
 				uint32 offs = _tileOffsets.back();
 
-				_tileData.insert(_tileData.end(), tile_vector.begin(), tile_vector.end());
+				for (auto &it : tile_vector)
+					_tileData.push_back(it);
+
 				_tileOffsets.push_back(offs + sz);
 				_frameIndex.push_back(tile_count);
 			} else


Commit: 4f52107b29cde3a8df6155c16f99129a6f25a2fc
    https://github.com/scummvm/scummvm/commit/4f52107b29cde3a8df6155c16f99129a6f25a2fc
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-21T18:49:47+02:00

Commit Message:
QDENGINE: Check return value. CID 1559601

Changed paths:
    engines/qdengine/system/sound/snd_dispatcher.cpp


diff --git a/engines/qdengine/system/sound/snd_dispatcher.cpp b/engines/qdengine/system/sound/snd_dispatcher.cpp
index f417d89d946..b7266233a1b 100644
--- a/engines/qdengine/system/sound/snd_dispatcher.cpp
+++ b/engines/qdengine/system/sound/snd_dispatcher.cpp
@@ -96,7 +96,9 @@ bool sndDispatcher::play_sound(const sndSound *snd, bool loop, int vol) {
 
 		int snd_volume = (vol == 255) ? volume_dB() : convert_volume_to_dB((volume() * vol) >> 8);
 
-		p.create_sound_buffer();
+		if (!p.create_sound_buffer())
+			return false;
+
 		p.set_volume(snd_volume);
 		p.change_frequency(frequency_coeff());
 




More information about the Scummvm-git-logs mailing list