[Scummvm-git-logs] scummvm master -> 04b2637d3414682951a42077913aa279c48067f0
sev-
noreply at scummvm.org
Fri May 30 17:53:14 UTC 2025
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
d81e70801d QDENGINE: Fix condition in qdInterfaceScreen::mouse_handler()
1b946a696b QDENGINE: Cache Inifiles when loading minigame config
04b2637d34 QDENGINE: Fix memory leak when loading tiled animations
Commit: d81e70801d5f6d5d81bf5c9c662c9973bf5901eb
https://github.com/scummvm/scummvm/commit/d81e70801d5f6d5d81bf5c9c662c9973bf5901eb
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-05-30T19:53:09+02:00
Commit Message:
QDENGINE: Fix condition in qdInterfaceScreen::mouse_handler()
Changed paths:
engines/qdengine/qdcore/qd_interface_screen.cpp
diff --git a/engines/qdengine/qdcore/qd_interface_screen.cpp b/engines/qdengine/qdcore/qd_interface_screen.cpp
index 6a178e9e21b..5968eb74337 100644
--- a/engines/qdengine/qdcore/qd_interface_screen.cpp
+++ b/engines/qdengine/qdcore/qd_interface_screen.cpp
@@ -242,7 +242,7 @@ bool qdInterfaceScreen::mouse_handler(int x, int y, mouseDispatcher::mouseEvent
if (it->get_element_type() != qdInterfaceElement::EL_TEXT_WINDOW)
dp->disable_autohide();
- if (it->mouse_handler(x, y, ev) && !it->is_locked())
+ if (!it->is_locked() && it->mouse_handler(x, y, ev))
return true;
} else
it->hover_clear();
Commit: 1b946a696b9d74680d390096c816a49b7dc50f7a
https://github.com/scummvm/scummvm/commit/1b946a696b9d74680d390096c816a49b7dc50f7a
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-05-30T19:53:09+02:00
Commit Message:
QDENGINE: Cache Inifiles when loading minigame config
Changed paths:
engines/qdengine/qdcore/qd_minigame.cpp
engines/qdengine/qdcore/qd_minigame_config.cpp
engines/qdengine/qdcore/qd_minigame_config.h
engines/qdengine/qdcore/qd_setup.cpp
engines/qdengine/qdcore/qd_setup.h
diff --git a/engines/qdengine/qdcore/qd_minigame.cpp b/engines/qdengine/qdcore/qd_minigame.cpp
index 04c544970ca..98d61c116c7 100644
--- a/engines/qdengine/qdcore/qd_minigame.cpp
+++ b/engines/qdengine/qdcore/qd_minigame.cpp
@@ -271,14 +271,15 @@ bool qdMiniGame::load_config() {
return false;
_config.clear();
+ Common::INIFile ini;
Common::INIFile::SectionList section_list;
- enumerateIniSections(config_file_name(), section_list);
+ enumerateIniSections(ini, config_file_name(), section_list);
_config.reserve(section_list.size());
for (auto &it : section_list) {
qdMinigameConfigParameter prm;
- prm.load_ini(config_file_name(), it.name.c_str());
+ prm.load_ini(ini, config_file_name(), it.name.c_str());
_config.push_back(prm);
}
diff --git a/engines/qdengine/qdcore/qd_minigame_config.cpp b/engines/qdengine/qdcore/qd_minigame_config.cpp
index 148666f1823..4e2a83b5928 100644
--- a/engines/qdengine/qdcore/qd_minigame_config.cpp
+++ b/engines/qdengine/qdcore/qd_minigame_config.cpp
@@ -92,9 +92,9 @@ bool qdMinigameConfigParameter::validate_data() {
return true;
}
-bool qdMinigameConfigParameter::load_ini(const Common::Path &ini_file, const char *ini_section) {
+bool qdMinigameConfigParameter::load_ini(Common::INIFile& ini, const Common::Path &ini_file, const char *ini_section) {
set_name(ini_section);
- Common::String str = getIniKey(ini_file, ini_section, "type");
+ Common::String str = getIniKey(ini, ini_file, ini_section, "type");
if (!str.empty()) {
if (str.equalsIgnoreCase("string"))
set_data_type(PRM_DATA_STRING);
@@ -104,16 +104,16 @@ bool qdMinigameConfigParameter::load_ini(const Common::Path &ini_file, const cha
set_data_type(PRM_DATA_OBJECT);
}
- str = getIniKey(ini_file, ini_section, "count");
+ str = getIniKey(ini, ini_file, ini_section, "count");
if (!str.empty())
set_data_count(atoi(str.c_str()));
- str = getIniKey(ini_file, ini_section, "value");
+ str = getIniKey(ini, ini_file, ini_section, "value");
if (!str.empty()) {
set_data_string(str.c_str());
}
- str = getIniKey(ini_file, ini_section, "comment");
+ str = getIniKey(ini, ini_file, ini_section, "comment");
if (!str.empty())
set_comment(str.c_str());
diff --git a/engines/qdengine/qdcore/qd_minigame_config.h b/engines/qdengine/qdcore/qd_minigame_config.h
index cff803ee3f0..f14869897fc 100644
--- a/engines/qdengine/qdcore/qd_minigame_config.h
+++ b/engines/qdengine/qdcore/qd_minigame_config.h
@@ -22,6 +22,7 @@
#ifndef QDENGINE_QDCORE_QD_MINIGAME_CONFIG_H
#define QDENGINE_QDCORE_QD_MINIGAME_CONFIG_H
+#include "common/formats/ini-file.h"
#include "common/path.h"
namespace QDEngine {
@@ -119,7 +120,7 @@ public:
bool save_script(Common::WriteStream &fh, int indent = 0) const;
//! ÐагÑÑзка даннÑÑ
из .ini Ñайла.
- bool load_ini(const Common::Path &ini_file, const char *ini_section);
+ bool load_ini(Common::INIFile& ini, const Common::Path &ini_file, const char *ini_section);
private:
diff --git a/engines/qdengine/qdcore/qd_setup.cpp b/engines/qdengine/qdcore/qd_setup.cpp
index fc6fb5f1437..41d9d3eeb44 100644
--- a/engines/qdengine/qdcore/qd_setup.cpp
+++ b/engines/qdengine/qdcore/qd_setup.cpp
@@ -26,9 +26,8 @@
namespace QDEngine {
-bool enumerateIniSections(const Common::Path &fname, Common::INIFile::SectionList §ionList) {
+bool enumerateIniSections(Common::INIFile& ini, const Common::Path &fname, Common::INIFile::SectionList §ionList) {
- Common::INIFile ini;
Common::Path iniFilePath(fname);
ini.allowNonEnglishCharacters();
ini.loadFromFile(iniFilePath);
@@ -42,12 +41,9 @@ bool enumerateIniSections(const Common::Path &fname, Common::INIFile::SectionLis
return true;
}
-const Common::String getIniKey(const Common::Path &fname, const char *section, const char *key) {
- Common::INIFile ini;
+const Common::String getIniKey(Common::INIFile ini, const Common::Path &fname, const char *section, const char *key) {
Common::String buf;
- ini.allowNonEnglishCharacters();
- ini.loadFromFile(fname);
bool hasValue = ini.getKey(key, section, buf);
if (!hasValue) {
diff --git a/engines/qdengine/qdcore/qd_setup.h b/engines/qdengine/qdcore/qd_setup.h
index 87d050e297d..303fdfdc6bc 100644
--- a/engines/qdengine/qdcore/qd_setup.h
+++ b/engines/qdengine/qdcore/qd_setup.h
@@ -26,8 +26,8 @@
namespace QDEngine {
-const Common::String getIniKey(const Common::Path &fname, const char *section, const char *key);
-bool enumerateIniSections(const Common::Path &fname, Common::INIFile::SectionList §ion_list);
+const Common::String getIniKey(Common::INIFile ini, const Common::Path &fname, const char *section, const char *key);
+bool enumerateIniSections(Common::INIFile& ini, const Common::Path &fname, Common::INIFile::SectionList §ion_list);
} // namespace QDEngine
Commit: 04b2637d3414682951a42077913aa279c48067f0
https://github.com/scummvm/scummvm/commit/04b2637d3414682951a42077913aa279c48067f0
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-05-30T19:53:09+02:00
Commit Message:
QDENGINE: Fix memory leak when loading tiled animations
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 3e9b59eeb92..a0e74e00041 100644
--- a/engines/qdengine/qdcore/qd_animation.cpp
+++ b/engines/qdengine/qdcore/qd_animation.cpp
@@ -698,6 +698,8 @@ bool qdAnimation::qda_load(const Common::Path &fpath) {
}
debugC(1, kDebugLoad, "qdAnimation::qda_load() tileAnimation %s", transCyrillic(fpath.toString()));
+ if (_tileAnimation)
+ _tileAnimation->clear();
_tileAnimation = new grTileAnimation;
_tileAnimation->load(fh, version);
More information about the Scummvm-git-logs
mailing list