[Scummvm-git-logs] scummvm master -> 530c365b97b446e5e1c47496c381d4c05ac2455e

sev- noreply at scummvm.org
Sat Aug 24 22:26:10 UTC 2024


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

Summary:
3e8013503e QDENGINE: Initialize all class variables. PVS-Studio V730
4f9b25a7f8 QDENGINE: Initialize all class variables. PVS-Studio V730
e486eb4801 QDENGINE: Initialize all class variables. PVS-Studio V730
a4cd71123d QDENGINE: Avoid rounding errors by propagating proper types. PVS-Studio V636
319716a1e6 QDENGINE: Remove unneded check. PVS-Studio V668
c33edbfec9 QDENGINE: Initialize all class variables. PVS-Studio V730
34b9bfbc27 QDENGINE: Fix possible array overrun. PVS-Studio V557
5337062cc9 QDENGINE: JANITORIAL: Added numbers to ConditionType enum members
b1d2e0f3f2 QDENGINE: Remove useless check. PVS-Studio V547
9034c35ed2 QDENGINE: Resolve virtual clas disambiguity. PVS-Studio V1053
577151814b QDENGINE: Remove duplicate flag in the drop list
a283421400 QDENGINE: Fix potential nullptr dereference. PVS-Studio V595
022d842e93 QDENGINE: Remove condition that is always false. PVS-Studio V547
2ac645a7ec QDENGINE: Fix incorrect logic in the original. PVS-Studio V581
3753090b64 QDENGINE: Remove leftover unreachable code. PVS-Studio V779
eb5a6f443e QDENGINE: Removed useless check. PVS-Studio V560
f8748d4a32 QDENGINE: Explicitely cast float type. PVS-Studio V636
f39acd266f QDENGINE: Plug memory leak. PVS-Studio V773
496e90df96 QDENGINE: Fix potential null dereference. PVS-Studio V595
671f9c56ea QDENGINE: Fix pointless assignment. PVS-Studio V1048
d4c438d5b6 QDENGINE: Fix memory leak. PVS-Studio V575
c43263b3a9 QDENGINE: Fix newp[]/delete mismatch. PVS-Studio V611
d085d74d40 QDENGINE: Remove pointless virtual method specifier. PVS-Studio V1053
b4779a62b7 QDENGINE: Fix new[]/delete mismatch. PVS-Studio V611
530c365b97 QDENGINE: Fix same value assignment warning. PVS-Studio V1048


Commit: 3e8013503e7ec0df9d3056ee47adaf5f4b895423
    https://github.com/scummvm/scummvm/commit/3e8013503e7ec0df9d3056ee47adaf5f4b895423
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:53+02:00

Commit Message:
QDENGINE: Initialize all class variables. PVS-Studio V730

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


diff --git a/engines/qdengine/minigames/book_all.h b/engines/qdengine/minigames/book_all.h
index d231836068b..98efef79221 100644
--- a/engines/qdengine/minigames/book_all.h
+++ b/engines/qdengine/minigames/book_all.h
@@ -354,8 +354,8 @@ public:
 	}
 
 private:
-	const float *_artTimeStamps;
-	float _pageDurations[3];
+	const float *_artTimeStamps = nullptr;
+	float _pageDurations[3] = { 0.0, 0.0, 0.0 };
 
 	const qdEngineInterface *_engine = nullptr;
 	qdMinigameSceneInterface *_scene = nullptr;
@@ -367,7 +367,7 @@ private:
 	int _pageNum = 0;
 	bool _playbackOn = false;
 	int _currentPageArt = 1;
-	int _totalPageArts[3];
+	int _totalPageArts[3] = { 0, 0, 0 };
 	float _time = 0.0f;
 
 	Common::String _dll;


Commit: 4f9b25a7f8bb90678f35449ab30e5d04975463f8
    https://github.com/scummvm/scummvm/commit/4f9b25a7f8bb90678f35449ab30e5d04975463f8
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:53+02:00

Commit Message:
QDENGINE: Initialize all class variables. PVS-Studio V730

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


diff --git a/engines/qdengine/minigames/puzzle_all.h b/engines/qdengine/minigames/puzzle_all.h
index 14ab61b0cee..808d66f7b30 100644
--- a/engines/qdengine/minigames/puzzle_all.h
+++ b/engines/qdengine/minigames/puzzle_all.h
@@ -77,7 +77,10 @@ const int puzzle_ep13[] = {
 
 class qdPuzzleAllMiniGameInterface : public qdMiniGameInterface {
 public:
-	qdPuzzleAllMiniGameInterface(Common::String dll, Common::Language language) : _dll(dll), _language(language) {}
+	qdPuzzleAllMiniGameInterface(Common::String dll, Common::Language language) : _dll(dll), _language(language) {
+		for (uint i = 0; i < ARRAYSIZE(_pieces); i++)
+			_pieces[i] = nullptr;
+	}
 	~qdPuzzleAllMiniGameInterface() {};
 
 	//! Инициализация игры.


Commit: e486eb480159c0c24fd7862b15fd9ffc974572fa
    https://github.com/scummvm/scummvm/commit/e486eb480159c0c24fd7862b15fd9ffc974572fa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:53+02:00

Commit Message:
QDENGINE: Initialize all class variables. PVS-Studio V730

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


diff --git a/engines/qdengine/qdcore/qd_animation.cpp b/engines/qdengine/qdcore/qd_animation.cpp
index 31fe59c89a6..1689a138c54 100644
--- a/engines/qdengine/qdcore/qd_animation.cpp
+++ b/engines/qdengine/qdcore/qd_animation.cpp
@@ -45,6 +45,7 @@ namespace QDEngine {
 
 qdAnimation::qdAnimation() : _parent(NULL) {
 	_tileAnimation = 0;
+	_num_frames = 0;
 
 	_length = _cur_time = 0.0f;
 	_status = QD_ANIMATION_STOPPED;


Commit: a4cd71123dc3a211ef523d345c0f87f142330519
    https://github.com/scummvm/scummvm/commit/a4cd71123dc3a211ef523d345c0f87f142330519
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:53+02:00

Commit Message:
QDENGINE: Avoid rounding errors by propagating proper types. PVS-Studio V636

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


diff --git a/engines/qdengine/qdcore/qd_camera.cpp b/engines/qdengine/qdcore/qd_camera.cpp
index b25d7a26a7a..06e89e2e40f 100644
--- a/engines/qdengine/qdcore/qd_camera.cpp
+++ b/engines/qdengine/qdcore/qd_camera.cpp
@@ -1470,7 +1470,7 @@ bool qdCamera::set_grid_line_attributes(const Vect2s &start_pos, const Vect2s &e
 	int dy = end_pos.y - start_pos.y;
 
 	Vect2f dr(dx, dy);
-	float d = _cellSX / 3;
+	float d = (float)_cellSX / 3.0;
 	if (d < 0.5f) d = 0.5f;
 	dr.normalize(d);
 
@@ -1503,7 +1503,7 @@ bool qdCamera::drop_grid_line_attributes(const Vect2s &start_pos, const Vect2s &
 	int dy = end_pos.y - start_pos.y;
 
 	Vect2f dr(dx, dy);
-	float d = _cellSX / 3;
+	float d = (float)_cellSX / 3.0;
 	if (d < 0.5f) d = 0.5f;
 	dr.normalize(d);
 
@@ -1534,7 +1534,7 @@ bool qdCamera::check_grid_line_attributes(const Vect2s &start_pos, const Vect2s
 	int dy = end_pos.y - start_pos.y;
 
 	Vect2f dr(dx, dy);
-	float d = _cellSX / 3;
+	float d = (float)_cellSX / 3.0;
 	if (d < 0.5f) d = 0.5f;
 	dr.normalize(d);
 


Commit: 319716a1e6b8d3f700e769fe28259a738a913a2e
    https://github.com/scummvm/scummvm/commit/319716a1e6b8d3f700e769fe28259a738a913a2e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Remove unneded check. PVS-Studio V668

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


diff --git a/engines/qdengine/qdcore/qd_camera.cpp b/engines/qdengine/qdcore/qd_camera.cpp
index 06e89e2e40f..7e381028f61 100644
--- a/engines/qdengine/qdcore/qd_camera.cpp
+++ b/engines/qdengine/qdcore/qd_camera.cpp
@@ -886,10 +886,9 @@ sGridCell *qdCamera::backup(sGridCell *ptrBuff) {
 bool qdCamera::restore(sGridCell *grid, int sx, int sy, int csx, int csy) {
 	if (_grid)
 		delete [] _grid;
+
 	_grid  = new sGridCell[sx * sy];
-	if (!_grid)
-		return false;
-	memcpy(_grid, grid, sizeof(sGridCell)*sx * sy);
+	memcpy(_grid, grid, sizeof(sGridCell) * sx * sy);
 
 	_GSX = sx;
 	_GSY = sy;


Commit: c33edbfec94a451e1451842a0ebbf31a3f106b18
    https://github.com/scummvm/scummvm/commit/c33edbfec94a451e1451842a0ebbf31a3f106b18
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Initialize all class variables. PVS-Studio V730

Changed paths:
    engines/qdengine/qdcore/qd_camera.cpp
    engines/qdengine/qdcore/qd_game_object.cpp
    engines/qdengine/qdcore/qd_game_object_animated.cpp
    engines/qdengine/qdcore/qd_game_object_moving.cpp
    engines/qdengine/qdcore/qd_interface_element.cpp
    engines/qdengine/qdcore/qd_screen_text.cpp
    engines/qdengine/qdcore/util/AIAStar.h
    engines/qdengine/qdcore/util/ResourceDispatcher.h
    engines/qdengine/qdcore/util/WinVideo.cpp
    engines/qdengine/qdengine.cpp
    engines/qdengine/system/graphics/gr_dispatcher.cpp
    engines/qdengine/xmath.h


diff --git a/engines/qdengine/qdcore/qd_camera.cpp b/engines/qdengine/qdcore/qd_camera.cpp
index 7e381028f61..79981e3c058 100644
--- a/engines/qdengine/qdcore/qd_camera.cpp
+++ b/engines/qdengine/qdcore/qd_camera.cpp
@@ -38,7 +38,7 @@ namespace QDEngine {
 
 struct sPlane4f {
 	float A, B, C, D;
-	sPlane4f()                                              { }
+	sPlane4f() { A = B = C = D = 0.0; }
 	sPlane4f(float a, float b, float c, float d)               {
 		A = a, B = b, C = c, D = d;
 	}
diff --git a/engines/qdengine/qdcore/qd_game_object.cpp b/engines/qdengine/qdcore/qd_game_object.cpp
index 024ecf611a7..c727054251a 100644
--- a/engines/qdengine/qdcore/qd_game_object.cpp
+++ b/engines/qdengine/qdcore/qd_game_object.cpp
@@ -35,14 +35,14 @@ namespace QDEngine {
 qdGameObject::qdGameObject() : _r(0, 0, 0),
 	_parallax_offset(0.0f, 0.0f),
 	_screen_r(0, 0),
-	_screen_depth(0.0f) {
+	_screen_depth(0.0f), _tempPosInList(0) {
 }
 
 qdGameObject::qdGameObject(const qdGameObject &obj) : qdNamedObject(obj),
 	_r(obj._r),
 	_parallax_offset(obj._parallax_offset),
 	_screen_r(obj._screen_r),
-	_screen_depth(obj._screen_depth) {
+	_screen_depth(obj._screen_depth), _tempPosInList(obj._tempPosInList) {
 }
 
 qdGameObject::~qdGameObject() {
diff --git a/engines/qdengine/qdcore/qd_game_object_animated.cpp b/engines/qdengine/qdcore/qd_game_object_animated.cpp
index 1c2636a4d56..306e2020056 100644
--- a/engines/qdengine/qdcore/qd_game_object_animated.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_animated.cpp
@@ -45,6 +45,7 @@ qdGameObjectAnimated::qdGameObjectAnimated() : _cur_state(-1),
 	_queued_state(NULL),
 	_last_frame(NULL),
 	_inventory_cell_index(-1),
+	_last_inventory_state(nullptr),
 	_shadow_alpha(QD_NO_SHADOW_ALPHA),
 	_shadow_color(0) {
 	set_animation(NULL);
diff --git a/engines/qdengine/qdcore/qd_game_object_moving.cpp b/engines/qdengine/qdcore/qd_game_object_moving.cpp
index f68d33a3355..17c54113ac8 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_moving.cpp
@@ -83,6 +83,9 @@ qdGameObjectMoving::qdGameObjectMoving() :
 }
 
 qdGameObjectMoving::qdGameObjectMoving(const qdGameObjectMoving &obj) : qdGameObjectAnimated(obj),
+	_collision_radius(obj.collision_radius()),
+	_collision_delay(obj.collision_delay()),
+	_collision_path(obj.collision_path()),
 	_follow_min_radius(obj.follow_min_radius()),
 	_follow_max_radius(obj.follow_min_radius()),
 	_follow_condition(obj.follow_condition()),
diff --git a/engines/qdengine/qdcore/qd_interface_element.cpp b/engines/qdengine/qdcore/qd_interface_element.cpp
index 723d9f4a628..e903213804f 100644
--- a/engines/qdengine/qdcore/qd_interface_element.cpp
+++ b/engines/qdengine/qdcore/qd_interface_element.cpp
@@ -54,6 +54,7 @@ qdInterfaceElement::qdInterfaceElement(const qdInterfaceElement &el) : qdInterfa
 	_option_data(el._option_data),
 	_screen_depth(el._screen_depth),
 	_is_visible(el._is_visible),
+	_is_locked(el._is_locked),
 	_last_animation_frame(NULL) {
 }
 
diff --git a/engines/qdengine/qdcore/qd_screen_text.cpp b/engines/qdengine/qdcore/qd_screen_text.cpp
index 8019f5ecfb8..6f817f8669c 100644
--- a/engines/qdengine/qdcore/qd_screen_text.cpp
+++ b/engines/qdengine/qdcore/qd_screen_text.cpp
@@ -139,7 +139,8 @@ bool qdScreenTextFormat::save_script(Common::WriteStream &fh, int indent) const
 
 qdScreenText::qdScreenText(const char *p, const Vect2i &pos, qdGameObjectState *owner) : _pos(pos),
 	_size(0, 0),
-	_owner(owner) {
+	_owner(owner),
+	_hover_mode(false) {
 	set_data(p);
 }
 
diff --git a/engines/qdengine/qdcore/util/AIAStar.h b/engines/qdengine/qdcore/util/AIAStar.h
index b9aea8d6982..24e3dcef636 100644
--- a/engines/qdengine/qdcore/util/AIAStar.h
+++ b/engines/qdengine/qdcore/util/AIAStar.h
@@ -99,6 +99,9 @@ AIAStar<Heuristic, TypeH>::AIAStar() {
 	_chart = NULL;
 	_heuristic = NULL;
 	_num_find_erase = 0;
+	_dx = _dy = 0;
+	_is_used_num = 0;
+	_num_point_examine = 0;
 }
 
 template<class Heuristic, class TypeH>
@@ -329,6 +332,9 @@ protected:
 template<class Heuristic, class Node, class TypeH>
 AIAStarGraph<Heuristic, Node, TypeH>::AIAStarGraph() {
 	_heuristic = NULL;
+	_is_used_num = 0;
+	_num_point_examine = 0;
+	_num_find_erase = 0;
 }
 
 template<class Heuristic, class Node, class TypeH>
diff --git a/engines/qdengine/qdcore/util/ResourceDispatcher.h b/engines/qdengine/qdcore/util/ResourceDispatcher.h
index 052234a3f4f..3afae8369ee 100644
--- a/engines/qdengine/qdcore/util/ResourceDispatcher.h
+++ b/engines/qdengine/qdcore/util/ResourceDispatcher.h
@@ -99,7 +99,7 @@ protected:
 /////////////////////////////////////////////////////////////////////////////////////////
 class ResourceDispatcher {
 public:
-	ResourceDispatcher() : _start_log(false) { }
+	ResourceDispatcher() : _start_log(false), _max_time_interval(0) { }
 	void setTimer(int syncro_by_clock, time_type time_per_frame, time_type max_time_interval_) {
 		_syncro_timer.set(syncro_by_clock, time_per_frame, _max_time_interval = max_time_interval_);
 	}
diff --git a/engines/qdengine/qdcore/util/WinVideo.cpp b/engines/qdengine/qdcore/util/WinVideo.cpp
index 0f2d692c5a5..8a1a57eb3f6 100644
--- a/engines/qdengine/qdcore/util/WinVideo.cpp
+++ b/engines/qdengine/qdcore/util/WinVideo.cpp
@@ -35,6 +35,9 @@ bool winVideo::_is_initialized = false;
 
 winVideo::winVideo() {
 	_decoder = new Video::MPEGPSDecoder();
+	_x = _y = 0;
+	_vidWidth = _vidHeight = 0;
+	_videostream = nullptr;
 }
 
 winVideo::~winVideo() {
diff --git a/engines/qdengine/qdengine.cpp b/engines/qdengine/qdengine.cpp
index 6fcb0d42b99..0857eb3cd17 100644
--- a/engines/qdengine/qdengine.cpp
+++ b/engines/qdengine/qdengine.cpp
@@ -52,6 +52,8 @@ QDEngineEngine::QDEngineEngine(OSystem *syst, const ADGameDescription *gameDesc)
 	ConfMan.registerDefault("show_fps", false);
 	ConfMan.registerDefault("splash_enabled", true);
 	ConfMan.registerDefault("splash_time", 3000);
+
+	memset(_tagMap, 0, sizeof(_tagMap));
 }
 
 QDEngineEngine::~QDEngineEngine() {
diff --git a/engines/qdengine/system/graphics/gr_dispatcher.cpp b/engines/qdengine/system/graphics/gr_dispatcher.cpp
index b66d4fe4971..c03d62abe45 100644
--- a/engines/qdengine/system/graphics/gr_dispatcher.cpp
+++ b/engines/qdengine/system/graphics/gr_dispatcher.cpp
@@ -70,6 +70,8 @@ grDispatcher::grDispatcher() : _screenBuf(NULL),
 
 	_pixel_format = GR_RGB565;
 
+	setClip();
+
 	if (!_dispatcher_ptr) _dispatcher_ptr = this;
 }
 
diff --git a/engines/qdengine/xmath.h b/engines/qdengine/xmath.h
index 565065021d2..2fde950d920 100644
--- a/engines/qdengine/xmath.h
+++ b/engines/qdengine/xmath.h
@@ -116,7 +116,7 @@ class Vect2f {
 public:
 	float x, y;
 
-	inline Vect2f()                              { }
+	inline Vect2f()                              { x = y = 0.0; }
 	inline Vect2f(float x_, float y_)                 {
 		x = x_;
 		y = y_;
@@ -267,7 +267,7 @@ class Vect2i {
 public:
 	int x, y;
 
-	inline Vect2i()                              { }
+	inline Vect2i()                              { x = y = 0; }
 	inline Vect2i(int x_, int y_)                        {
 		x = x_;
 		y = y_;
@@ -418,7 +418,7 @@ class Vect2s {
 public:
 	int16 x, y;
 
-	inline Vect2s()                                      { }
+	inline Vect2s()                                      { x = y = 0; }
 	inline Vect2s(int x_, int y_)                         {
 		x = x_;
 		y = y_;
@@ -537,7 +537,7 @@ public:
 
 	// constructors //////////////////////////////////////////////////////////////
 
-	inline Vect3f() {}
+	inline Vect3f() { x = y = z = 0.0;}
 	inline Vect3f(float x_, float y_, float z_) {
 		x = x_;
 		y = y_;


Commit: 34b9bfbc274dfb2f755c1a7624e8b9b230b4a472
    https://github.com/scummvm/scummvm/commit/34b9bfbc274dfb2f755c1a7624e8b9b230b4a472
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Fix possible array overrun. PVS-Studio V557

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


diff --git a/engines/qdengine/qdcore/qd_condition.cpp b/engines/qdengine/qdcore/qd_condition.cpp
index 54b6884c78b..e092b4279ab 100644
--- a/engines/qdengine/qdcore/qd_condition.cpp
+++ b/engines/qdengine/qdcore/qd_condition.cpp
@@ -540,7 +540,7 @@ const char *types[] = {
 };
 
 const char *qdCondition::type2str(uint type) {
-	if (type > ARRAYSIZE(types))
+	if (type >= ARRAYSIZE(types))
 		return "???";
 
 	return types[type];


Commit: 5337062cc9b4ace167a1b2316e79cff238705aec
    https://github.com/scummvm/scummvm/commit/5337062cc9b4ace167a1b2316e79cff238705aec
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: JANITORIAL: Added numbers to ConditionType enum members

Changed paths:
    engines/qdengine/qdcore/qd_condition.h


diff --git a/engines/qdengine/qdcore/qd_condition.h b/engines/qdengine/qdcore/qd_condition.h
index 9623f186614..08e56a2fe73 100644
--- a/engines/qdengine/qdcore/qd_condition.h
+++ b/engines/qdengine/qdcore/qd_condition.h
@@ -370,7 +370,7 @@ public:
 		//! персонаж или объект в определенном месте сетки
 		CONDITION_OBJECT_IN_ZONE,
 		//! персонаж движется в определенном направлении
-		CONDITION_PERSONAGE_WALK_DIRECTION,
+		CONDITION_PERSONAGE_WALK_DIRECTION,									// 5
 		//! персонаж стоит и ориентирован в определенном направлении
 		CONDITION_PERSONAGE_STATIC_DIRECTION,
 		//! условие выпоняется с некоторой периодичностью
@@ -380,7 +380,7 @@ public:
 		//! мини-игра находится в определенном состоянии
 		CONDITION_MINIGAME_STATE,
 		//! объект находится в определенном состоянии
-		CONDITION_OBJECT_STATE,
+		CONDITION_OBJECT_STATE,												// 10
 		//! клик мышью по зоне на сетке сцены
 		CONDITION_MOUSE_ZONE_CLICK,
 		//! клик объектом по зоне на сетке сцены
@@ -390,7 +390,7 @@ public:
 		//! состояние объекта не активировалось
 		CONDITION_OBJECT_STATE_WAS_NOT_ACTIVATED,
 		//! объект не находится в определенном состоянии
-		CONDITION_OBJECT_NOT_IN_STATE,
+		CONDITION_OBJECT_NOT_IN_STATE,										// 15
 		//! расстояние по сетке между двумя объектами меньше заданного
 		CONDITION_OBJECTS_DISTANCE,
 		//! персонаж активен
@@ -400,7 +400,7 @@ public:
 		//! состояние в определенной фазе анимации
 		CONDITION_OBJECT_STATE_ANIMATION_PHASE,
 		//! предыдущее состояние объекта
-		CONDITION_OBJECT_PREV_STATE,
+		CONDITION_OBJECT_PREV_STATE,										// 20
 		//! время работы состояния больше значения
 		CONDITION_STATE_TIME_GREATER_THAN_VALUE,
 		//! время работы одного состояния больше времени работы другого
@@ -410,7 +410,7 @@ public:
 		//! значние счетчика больше числа
 		CONDITION_COUNTER_GREATER_THAN_VALUE,
 		//! значние счетчика меньше числа
-		CONDITION_COUNTER_LESS_THAN_VALUE,
+		CONDITION_COUNTER_LESS_THAN_VALUE,									// 25
 		//! значние счетчика больше значения другого счетчика
 		CONDITION_COUNTER_GREATER_THAN_COUNTER,
 		//! значние счетчика в интервале
@@ -420,7 +420,7 @@ public:
 		//! кнопка нажата
 		CONDITION_KEYPRESS,
 		//! в зоне хотя бы один персонаж
-		CONDITION_ANY_PERSONAGE_IN_ZONE,
+		CONDITION_ANY_PERSONAGE_IN_ZONE,									// 30
 		//! правый клик мыши по объекту
 		CONDITION_MOUSE_RIGHT_CLICK,
 		//! правый клик объектом на мыши по объекту
@@ -430,7 +430,7 @@ public:
 		//! правый клик объектом по зоне на сетке сцены
 		CONDITION_MOUSE_RIGHT_OBJECT_ZONE_CLICK,
 		//! объект скрыт
-		CONDITION_OBJECT_HIDDEN,
+		CONDITION_OBJECT_HIDDEN,											// 35
 		//! мышь наведена на объект
 		CONDITION_MOUSE_HOVER,
 		//! мышь наведена на объект, на мыши объект
@@ -440,7 +440,7 @@ public:
 		//! мышь наведена на зону, на мыши объект
 		CONDITION_MOUSE_OBJECT_HOVER_ZONE,
 		//! неудачный клик мыши
-		CONDITION_MOUSE_CLICK_FAILED,
+		CONDITION_MOUSE_CLICK_FAILED,										// 40
 		//! неудачный клик объектом на мыши
 		CONDITION_MOUSE_OBJECT_CLICK_FAILED,
 		//! был клик мыши
@@ -450,7 +450,7 @@ public:
 		//! был клик правой кнопкой мыши
 		CONDITION_MOUSE_RIGHT_CLICK_EVENT,
 		//! был клик правой кнопкой объектом на мыши
-		CONDITION_MOUSE_RIGHT_OBJECT_CLICK_EVENT,
+		CONDITION_MOUSE_RIGHT_OBJECT_CLICK_EVENT,							// 45
 		//! клик по фразе определённого состояния
 		CONDITION_MOUSE_STATE_PHRASE_CLICK,
 		//! расстояние до одного объекта меньше чем до другого


Commit: b1d2e0f3f2014ebb897e5512fd4411dc8fc4a1d4
    https://github.com/scummvm/scummvm/commit/b1d2e0f3f2014ebb897e5512fd4411dc8fc4a1d4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Remove useless check. PVS-Studio V547

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


diff --git a/engines/qdengine/qdcore/qd_coords_animation.cpp b/engines/qdengine/qdcore/qd_coords_animation.cpp
index dc32c282d2c..2c5a703b916 100644
--- a/engines/qdengine/qdcore/qd_coords_animation.cpp
+++ b/engines/qdengine/qdcore/qd_coords_animation.cpp
@@ -193,33 +193,31 @@ void qdCoordsAnimation::quant(float dt) const {
 
 		qdGameObjectAnimated *obj = object();
 		if (obj) obj->set_pos(cur_pos());
-	} else {
-		if (_type == CA_WALK) {
-			qdGameObjectAnimated *obj = object();
-			if (obj->named_object_type() != QD_NAMED_OBJECT_MOVING_OBJ) return;
-			qdGameObjectMoving *p = static_cast<qdGameObjectMoving *>(obj);
-
-			if (p->is_in_position(_points[_cur_point].dest_pos() - _del)) {
-				if (++_cur_point >= (int)_points.size()) {
-					_is_finished = true;
-					if (!check_flag(QD_COORDS_ANM_LOOP_FLAG)) {
-						stop();
-						return;
-					}
-
-					_start_point.set_dest_pos(_points[_points.size() - 1].dest_pos() - _del);
-					// Расстояние считаем, переместившись в глобальне координаты
-					_points[0].calc_path(_start_point, _del);
-
-					_cur_point = 0;
+	} else { // _type == CA_WALK
+		qdGameObjectAnimated *obj = object();
+		if (obj->named_object_type() != QD_NAMED_OBJECT_MOVING_OBJ) return;
+		qdGameObjectMoving *p = static_cast<qdGameObjectMoving *>(obj);
+
+		if (p->is_in_position(_points[_cur_point].dest_pos() - _del)) {
+			if (++_cur_point >= (int)_points.size()) {
+				_is_finished = true;
+				if (!check_flag(QD_COORDS_ANM_LOOP_FLAG)) {
+					stop();
+					return;
 				}
 
-				_points[_cur_point].start();
+				_start_point.set_dest_pos(_points[_points.size() - 1].dest_pos() - _del);
+				// Расстояние считаем, переместившись в глобальне координаты
+				_points[0].calc_path(_start_point, _del);
+
+				_cur_point = 0;
 			}
 
-			if (!p->is_moving())
-				p->move(_points[_cur_point].dest_pos() - _del, _points[_cur_point].direction_angle());
+			_points[_cur_point].start();
 		}
+
+		if (!p->is_moving())
+			p->move(_points[_cur_point].dest_pos() - _del, _points[_cur_point].direction_angle());
 	}
 }
 


Commit: 9034c35ed2e313d15013285d642d2ee0c37e266b
    https://github.com/scummvm/scummvm/commit/9034c35ed2e313d15013285d642d2ee0c37e266b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Resolve virtual clas disambiguity. PVS-Studio V1053

The base class declred this method as virtual.

Changed paths:
    engines/qdengine/qdcore/qd_game_dispatcher_base.h


diff --git a/engines/qdengine/qdcore/qd_game_dispatcher_base.h b/engines/qdengine/qdcore/qd_game_dispatcher_base.h
index 07c320b481d..ef648ed40d8 100644
--- a/engines/qdengine/qdcore/qd_game_dispatcher_base.h
+++ b/engines/qdengine/qdcore/qd_game_dispatcher_base.h
@@ -126,7 +126,7 @@ public:
 	virtual bool save_script_body(Common::WriteStream &fh, int indent = 0) const;
 
 	virtual int load_resources();
-	virtual void free_resources();
+	void free_resources();
 
 	virtual void quant(float dt) { };
 


Commit: 577151814b02f403f8a9615da5dbb52c966ad2e2
    https://github.com/scummvm/scummvm/commit/577151814b02f403f8a9615da5dbb52c966ad2e2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Remove duplicate flag in the drop list

It was introduced by refactoring where two flags dropping was moved from
qdGameObject::load_script_body() without checking that QD_OBJ_STATE_CHANGE_FLAG
was already present in the list.

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


diff --git a/engines/qdengine/qdcore/qd_game_object.cpp b/engines/qdengine/qdcore/qd_game_object.cpp
index c727054251a..01b0d77a7f6 100644
--- a/engines/qdengine/qdcore/qd_game_object.cpp
+++ b/engines/qdengine/qdcore/qd_game_object.cpp
@@ -180,7 +180,7 @@ bool qdGameObject::save_data(Common::WriteStream &fh) const {
 
 bool qdGameObject::init() {
 	drop_flag(QD_OBJ_SCREEN_COORDS_FLAG);
-	drop_flag(QD_OBJ_STATE_CHANGE_FLAG | QD_OBJ_IS_IN_TRIGGER_FLAG | QD_OBJ_STATE_CHANGE_FLAG | QD_OBJ_IS_IN_INVENTORY_FLAG);
+	drop_flag(QD_OBJ_STATE_CHANGE_FLAG | QD_OBJ_IS_IN_TRIGGER_FLAG | QD_OBJ_IS_IN_INVENTORY_FLAG);
 	drop_flag(QD_OBJ_HIDDEN_FLAG);
 	return true;
 }


Commit: a283421400db2d5fda3aafad935792f1e5bae6b3
    https://github.com/scummvm/scummvm/commit/a283421400db2d5fda3aafad935792f1e5bae6b3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Fix potential nullptr dereference. PVS-Studio V595

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 306e2020056..b2514bbb6d2 100644
--- a/engines/qdengine/qdcore/qd_game_object_animated.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_animated.cpp
@@ -1393,7 +1393,7 @@ void qdGameObjectAnimated::draw_grid_zone(const Vect2s sz) const {
 }
 
 bool qdGameObjectAnimated::set_grid_zone_attributes(const Vect2f &r, int attr) const {
-	debugC(5, kDebugMovement, "qdGameObjectAnimated::set_grid_zone_attributes(): has_bound: %d named_object_type: %d", has_bound(), owner()->named_object_type());
+	debugC(5, kDebugMovement, "qdGameObjectAnimated::set_grid_zone_attributes(): has_bound: %d named_object_type: %d", has_bound(), owner() ? owner()->named_object_type() : -1);
 
 	if (has_bound() && owner() && owner()->named_object_type() == QD_NAMED_OBJECT_SCENE) {
 		qdCamera *cp = static_cast<qdGameScene *>(owner())->get_camera();


Commit: 022d842e939e7f2f1f426f9ba5e20482e97631d7
    https://github.com/scummvm/scummvm/commit/022d842e939e7f2f1f426f9ba5e20482e97631d7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Remove condition that is always false. PVS-Studio V547

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 17c54113ac8..8130fc143a0 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_moving.cpp
@@ -1605,9 +1605,6 @@ Vect2s qdGameObjectMoving::get_nearest_walkable_point(const Vect2s &target) cons
 		} while (--dy >= 0);
 	}
 
-	// Если шаг так и не был сделан
-	if (fir_step) return trg;
-
 	r -= dr;
 	return Vect2s(r.xi(), r.yi());
 }


Commit: 2ac645a7eca2be353d3e8cd70f55efa1809ed5b1
    https://github.com/scummvm/scummvm/commit/2ac645a7eca2be353d3e8cd70f55efa1809ed5b1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Fix incorrect logic in the original. PVS-Studio V581

It requires more testing, but looks like a copy/paste error

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


diff --git a/engines/qdengine/qdcore/qd_game_scene.cpp b/engines/qdengine/qdcore/qd_game_scene.cpp
index 5d8ba1f3c6f..4647e42bc7f 100644
--- a/engines/qdengine/qdcore/qd_game_scene.cpp
+++ b/engines/qdengine/qdcore/qd_game_scene.cpp
@@ -1526,7 +1526,7 @@ void qdGameScene::collision_quant() {
 				}
 			}
 
-			if (dr.norm() < dist) {
+			if (dr.norm() > dist) {
 				if (fabs(getDeltaAngle(angle, _selected_object->direction_angle())) < M_PI / 2.0f) {
 					if ((*it)->has_control_type(qdGameObjectMoving::CONTROL_AVOID_COLLISION))
 						(*it)->avoid_collision(_selected_object);


Commit: 3753090b64b3e8103a22a7d9108ebfaf1c520a44
    https://github.com/scummvm/scummvm/commit/3753090b64b3e8103a22a7d9108ebfaf1c520a44
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Remove leftover unreachable code. PVS-Studio V779

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


diff --git a/engines/qdengine/qdcore/qd_game_scene.cpp b/engines/qdengine/qdcore/qd_game_scene.cpp
index 4647e42bc7f..89cf78cc50e 100644
--- a/engines/qdengine/qdcore/qd_game_scene.cpp
+++ b/engines/qdengine/qdcore/qd_game_scene.cpp
@@ -1136,9 +1136,6 @@ bool qdGameScene::follow_path_seek(qdGameObjectMoving *pObj, bool lock_target) {
 		_selected_object->set_grid_zone_attributes(sGridCell::CELL_SELECTED);
 
 	return pObj->move(_selected_object->last_move_order(), lock_target);
-
-	if (qdGameObjectMoving::FOLLOW_UPDATE_PATH == pObj->follow_condition())
-		_selected_object->drop_grid_zone_attributes(sGridCell::CELL_SELECTED);
 }
 
 /*


Commit: eb5a6f443e748b06272db50d650922773a648193
    https://github.com/scummvm/scummvm/commit/eb5a6f443e748b06272db50d650922773a648193
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Removed useless check. PVS-Studio V560

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 c985fc7f873..3877dc6567c 100644
--- a/engines/qdengine/qdcore/qd_interface_button.cpp
+++ b/engines/qdengine/qdcore/qd_interface_button.cpp
@@ -93,7 +93,7 @@ bool qdInterfaceButton::activate_state(int state_num) {
 
 	_cur_state = state_num;
 
-	if (state_num >= 0 && state_num < (int)_states.size())
+	if (state_num < (int)_states.size())
 		return set_state(get_state(state_num));
 
 	return true;


Commit: f8748d4a32dae8a10496e636f6b41906d2b13265
    https://github.com/scummvm/scummvm/commit/f8748d4a32dae8a10496e636f6b41906d2b13265
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Explicitely cast float type. PVS-Studio V636

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


diff --git a/engines/qdengine/qdcore/qd_interface_text_window.cpp b/engines/qdengine/qdcore/qd_interface_text_window.cpp
index 8273d5be714..7f1943a0064 100644
--- a/engines/qdengine/qdcore/qd_interface_text_window.cpp
+++ b/engines/qdengine/qdcore/qd_interface_text_window.cpp
@@ -500,7 +500,7 @@ void qdInterfaceTextWindow::update_text_position() {
 		Vect2f rr = r() - text_size() / 2 + _text_set->screen_size() / 2;
 		switch (_textVAlign) {
 		case VALIGN_CENTER:
-			rr.y += (text_size().y - _text_set->screen_size().y) / 2;
+			rr.y += (float)(text_size().y - _text_set->screen_size().y) / 2.0;
 			break;
 		case VALIGN_BOTTOM:
 			rr.y += text_size().y - _text_set->screen_size().y;


Commit: f39acd266fe725e3d0df2518609348523b594ef3
    https://github.com/scummvm/scummvm/commit/f39acd266fe725e3d0df2518609348523b594ef3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Plug memory leak. PVS-Studio V773

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


diff --git a/engines/qdengine/qdcore/qd_minigame.cpp b/engines/qdengine/qdcore/qd_minigame.cpp
index a62afe96b0d..0f44b19aec6 100644
--- a/engines/qdengine/qdcore/qd_minigame.cpp
+++ b/engines/qdengine/qdcore/qd_minigame.cpp
@@ -50,6 +50,7 @@ qdMiniGame::qdMiniGame(const qdMiniGame &mg) : qdNamedObject(mg),
 }
 
 qdMiniGame::~qdMiniGame() {
+	release_interface();
 }
 
 bool qdMiniGame::start() {
@@ -315,6 +316,8 @@ bool qdMiniGame::load_interface() {
 }
 
 bool qdMiniGame::release_interface() {
+	delete _interface;
+	_interface = nullptr;
 	return true;
 }
 } // namespace QDEngine


Commit: 496e90df9608d3904283eb33a6d7ebcd8860ec0c
    https://github.com/scummvm/scummvm/commit/496e90df9608d3904283eb33a6d7ebcd8860ec0c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:54+02:00

Commit Message:
QDENGINE: Fix potential null dereference. PVS-Studio V595

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


diff --git a/engines/qdengine/qdcore/qd_sound.cpp b/engines/qdengine/qdcore/qd_sound.cpp
index 7d98f7905e6..954efacc46e 100644
--- a/engines/qdengine/qdcore/qd_sound.cpp
+++ b/engines/qdengine/qdcore/qd_sound.cpp
@@ -116,7 +116,7 @@ bool qdSound::play(const qdSoundHandle *handle, bool loop) const {
 }
 
 bool qdSound::stop(const qdSoundHandle *handle) const {
-	debugC(3, kDebugSound, "[%d] sound stop %p owner: %s", g_system->getMillis(), (const void *)this, handle->owner()->toString().c_str());
+	debugC(3, kDebugSound, "[%d] sound stop %p owner: %s", g_system->getMillis(), (const void *)this, handle ? handle->owner()->toString().c_str() : "<null>");
 	if (sndDispatcher *p = sndDispatcher::get_dispatcher()) {
 		if (!handle) {
 			sndSound sound(&_sound);


Commit: 671f9c56ea889bf79d56c2df58389796e999633e
    https://github.com/scummvm/scummvm/commit/671f9c56ea889bf79d56c2df58389796e999633e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:55+02:00

Commit Message:
QDENGINE: Fix pointless assignment. PVS-Studio V1048

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


diff --git a/engines/qdengine/qdcore/qd_sprite.cpp b/engines/qdengine/qdcore/qd_sprite.cpp
index 4f94101f425..9c9c0d84d59 100644
--- a/engines/qdengine/qdcore/qd_sprite.cpp
+++ b/engines/qdengine/qdcore/qd_sprite.cpp
@@ -144,7 +144,7 @@ qdSprite &qdSprite::operator = (const qdSprite &spr) {
 
 	delete [] _data;
 	if (spr._data) {
-		int ssx = 2;
+		int ssx;
 		switch (_format) {
 		case GR_RGB565:
 		case GR_ARGB1555:
@@ -159,6 +159,9 @@ qdSprite &qdSprite::operator = (const qdSprite &spr) {
 		case GR_ARGB8888:
 			ssx = 4;
 			break;
+		default:
+			ssx = 2;
+			break;
 		}
 
 		_data = new byte[_picture_size.x * _picture_size.y * ssx];


Commit: d4c438d5b6ae1f0ca94b18c8761dfb78c0d26d73
    https://github.com/scummvm/scummvm/commit/d4c438d5b6ae1f0ca94b18c8761dfb78c0d26d73
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:55+02:00

Commit Message:
QDENGINE: Fix memory leak. PVS-Studio V575

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 c03d62abe45..93c4302655b 100644
--- a/engines/qdengine/system/graphics/gr_dispatcher.cpp
+++ b/engines/qdengine/system/graphics/gr_dispatcher.cpp
@@ -89,7 +89,6 @@ bool grDispatcher::finit() {
 	_flags &= ~GR_INITED;
 	_sizeX = _sizeY = 0;
 	_wndPosX = _wndPosY = 0;
-	_screenBuf = NULL;
 	delete _screenBuf;
 	_screenBuf = nullptr;
 	delete  _yTable;


Commit: c43263b3a946d2f54047789f53b7da92c3839696
    https://github.com/scummvm/scummvm/commit/c43263b3a946d2f54047789f53b7da92c3839696
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:55+02:00

Commit Message:
QDENGINE: Fix newp[]/delete mismatch. PVS-Studio V611

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 93c4302655b..91e64fed791 100644
--- a/engines/qdengine/system/graphics/gr_dispatcher.cpp
+++ b/engines/qdengine/system/graphics/gr_dispatcher.cpp
@@ -848,7 +848,7 @@ char *grDispatcher::temp_buffer(int size) {
 	if (size <= 0) size = 1;
 
 	if (size > _temp_buffer_size) {
-		delete _temp_buffer;
+		delete[] _temp_buffer;
 		_temp_buffer = new char[size];
 		_temp_buffer_size = size;
 	}


Commit: d085d74d401babccd360fa7d90520d0bc0bed090
    https://github.com/scummvm/scummvm/commit/d085d74d401babccd360fa7d90520d0bc0bed090
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:55+02:00

Commit Message:
QDENGINE: Remove pointless virtual method specifier. PVS-Studio V1053

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


diff --git a/engines/qdengine/system/graphics/gr_dispatcher.h b/engines/qdengine/system/graphics/gr_dispatcher.h
index 0c1a66d8dc3..7b349d02278 100644
--- a/engines/qdengine/system/graphics/gr_dispatcher.h
+++ b/engines/qdengine/system/graphics/gr_dispatcher.h
@@ -108,7 +108,7 @@ public:
 		return false;
 	}
 
-	virtual bool finit();
+	bool finit();
 
 	void *Get_hWnd() const {
 		return _hWnd;


Commit: b4779a62b75d095443118e08cdb02b3b6ce644f7
    https://github.com/scummvm/scummvm/commit/b4779a62b75d095443118e08cdb02b3b6ce644f7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:55+02:00

Commit Message:
QDENGINE: Fix new[]/delete mismatch. PVS-Studio V611

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


diff --git a/engines/qdengine/system/graphics/gr_font.cpp b/engines/qdengine/system/graphics/gr_font.cpp
index 37b25de71ad..a46475f9914 100644
--- a/engines/qdengine/system/graphics/gr_font.cpp
+++ b/engines/qdengine/system/graphics/gr_font.cpp
@@ -40,7 +40,7 @@ grFont::grFont() : _alpha_buffer(NULL) {
 }
 
 grFont::~grFont() {
-	delete _alpha_buffer;
+	delete[] _alpha_buffer;
 }
 
 bool grFont::load(const Common::Path fname) {


Commit: 530c365b97b446e5e1c47496c381d4c05ac2455e
    https://github.com/scummvm/scummvm/commit/530c365b97b446e5e1c47496c381d4c05ac2455e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-25T00:25:55+02:00

Commit Message:
QDENGINE: Fix same value assignment warning. PVS-Studio V1048

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


diff --git a/engines/qdengine/system/sound/wav_sound.cpp b/engines/qdengine/system/sound/wav_sound.cpp
index af66386a26e..1331250ef91 100644
--- a/engines/qdengine/system/sound/wav_sound.cpp
+++ b/engines/qdengine/system/sound/wav_sound.cpp
@@ -91,13 +91,15 @@ bool wavSound::wav_file_load(const Common::Path fpath) {
 			return false;
 		}
 
-		int bits = 8;
+		int bits;
 		if (flags & Audio::FLAG_UNSIGNED)
 			bits = 8;
 		else if (flags & Audio::FLAG_16BITS)
 			bits = 16;
 		else if (flags & Audio::FLAG_24BITS)
 			bits = 24;
+		else
+			bits = 8;
 
 		int channels = 1;
 		if (flags & Audio::FLAG_STEREO)




More information about the Scummvm-git-logs mailing list