[Scummvm-git-logs] scummvm master -> fffab1d77c9e21e63390a07f1bc99609eb569502
sev-
noreply at scummvm.org
Thu May 29 09:34:12 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:
7b2c16ebbd QDENGINE: TRIANGLES: Added more debug output on loading
1e5c838f93 QDENGINE: Reduce red herring warnings
fffab1d77c QDENGINE: TRIANGLES: Fixed invalid memory access on element state change
Commit: 7b2c16ebbd617fbd00ca59b05c44d5378ae96148
https://github.com/scummvm/scummvm/commit/7b2c16ebbd617fbd00ca59b05c44d5378ae96148
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-05-29T11:34:00+02:00
Commit Message:
QDENGINE: TRIANGLES: Added more debug output on loading
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 087a92a295d..3f339d65e1c 100644
--- a/engines/qdengine/minigames/adv/m_triangles.cpp
+++ b/engines/qdengine/minigames/adv/m_triangles.cpp
@@ -121,6 +121,7 @@ MinigameTriangle::MinigameTriangle(MinigameManager *runtime) {
Node &node = _nodes.back();
for (int angle = 1; angle <= 3; ++angle) {
snprintf(name, 63, "%s%02d_%1d", faceNameBegin, num + 1, angle);
+ debugC(5, kDebugMinigames, "Loading face object: %s", name);
QDObject obj = _runtime->getObject(name);
node._face.push_back(obj);
_positions.push_back(obj->R());
@@ -148,10 +149,12 @@ MinigameTriangle::MinigameTriangle(MinigameManager *runtime) {
for (int num = 1; num <= 2; ++num) {
for (int angle = 1; angle <= 3; ++angle) {
snprintf(name, 63, "%s%1d_%1d", backNameBegin, num, angle);
+ debugC(5, kDebugMinigames, "Loading back object: %s", name);
if (!_backSides[(num - 1) * 3 + angle - 1].load(name, _runtime))
return;
}
snprintf(name, 63, "%s%1d", selectNameBegin, num);
+ debugC(5, kDebugMinigames, "Loading select object: %s", name);
if (!_selectBorders[num - 1].load(name, _runtime))
return;
}
Commit: 1e5c838f9362e87f8adc51715365142b6f3321af
https://github.com/scummvm/scummvm/commit/1e5c838f9362e87f8adc51715365142b6f3321af
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-05-29T11:34:00+02:00
Commit Message:
QDENGINE: Reduce red herring warnings
Changed paths:
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/qdcore/qd_minigame_interface.cpp
engines/qdengine/qdcore/qd_minigame_interface.h
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index b7f7aa0dbb3..b2e3128c5e2 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -809,7 +809,7 @@ QDObject MinigameManager::getObject(const char *name) const {
}
bool MinigameManager::testObject(const char *name) const {
- if (qdMinigameObjectInterface *obj = _scene->object_interface(name)) {
+ if (qdMinigameObjectInterface *obj = _scene->object_interface(name, true)) {
_scene->release_object_interface(obj);
return true;
}
diff --git a/engines/qdengine/qdcore/qd_minigame_interface.cpp b/engines/qdengine/qdcore/qd_minigame_interface.cpp
index 3123174693f..d5b9c3c86e9 100644
--- a/engines/qdengine/qdcore/qd_minigame_interface.cpp
+++ b/engines/qdengine/qdcore/qd_minigame_interface.cpp
@@ -183,7 +183,7 @@ public:
const char *name() const;
//! СоздаÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ðº обÑекÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ object_name.
- qdMinigameObjectInterface *object_interface(const char *object_name);
+ qdMinigameObjectInterface *object_interface(const char *object_name, bool test = false);
//! СоздаÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ðº пеÑÑÐ¾Ð½Ð°Ð¶Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ personage_name.
qdMinigameObjectInterface *personage_interface(const char *personage_name);
//! ÐкÑиваÑÐ¸Ñ Ð¿ÐµÑÑонажа Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ personage_name.
@@ -322,11 +322,12 @@ const char *qdMinigameSceneInterfaceImpl::name() const {
return _scene->name();
}
-qdMinigameObjectInterface *qdMinigameSceneInterfaceImpl::object_interface(const char *object_name) {
+qdMinigameObjectInterface *qdMinigameSceneInterfaceImpl::object_interface(const char *object_name, bool test) {
if (qdGameObjectAnimated * p = dynamic_cast<qdGameObjectAnimated * >(_scene->get_object(object_name)))
return new qdMinigameObjectInterfaceImpl(p);
- warning("object_interface(): Unknown object '%s'", transCyrillic(object_name));
+ if (!test)
+ warning("object_interface(): Unknown object '%s'", transCyrillic(object_name));
return NULL;
}
diff --git a/engines/qdengine/qdcore/qd_minigame_interface.h b/engines/qdengine/qdcore/qd_minigame_interface.h
index 7a1ad8f43d2..c66b35e48c8 100644
--- a/engines/qdengine/qdcore/qd_minigame_interface.h
+++ b/engines/qdengine/qdcore/qd_minigame_interface.h
@@ -320,7 +320,7 @@ public:
virtual const char *name() const = 0;
//! СоздаÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ðº обÑекÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ object_name.
- virtual qdMinigameObjectInterface *object_interface(const char *object_name) = 0;
+ virtual qdMinigameObjectInterface *object_interface(const char *object_name, bool test = false) = 0;
//! СоздаÑÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ðº пеÑÑÐ¾Ð½Ð°Ð¶Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ personage_name.
virtual qdMinigameObjectInterface *personage_interface(const char *personage_name) = 0;
//! ÐкÑиваÑÐ¸Ñ Ð¿ÐµÑÑонажа Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ personage_name.
Commit: fffab1d77c9e21e63390a07f1bc99609eb569502
https://github.com/scummvm/scummvm/commit/fffab1d77c9e21e63390a07f1bc99609eb569502
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-05-29T11:34:00+02:00
Commit Message:
QDENGINE: TRIANGLES: Fixed invalid memory access on element state change
Changed paths:
engines/qdengine/minigames/adv/m_triangles.cpp
engines/qdengine/minigames/adv/m_triangles.h
diff --git a/engines/qdengine/minigames/adv/m_triangles.cpp b/engines/qdengine/minigames/adv/m_triangles.cpp
index 3f339d65e1c..9d10e24d4f4 100644
--- a/engines/qdengine/minigames/adv/m_triangles.cpp
+++ b/engines/qdengine/minigames/adv/m_triangles.cpp
@@ -201,7 +201,7 @@ void MinigameTriangle::Node::debugInfo() const {
debugC(5, kDebugMinigames, "name:\"%s\" state:\"%s\" number:%d rotation:%d flip:%d isBack:%d highlight:%d animated:%d", obj().getName(), obj()->current_state_name(), _number, _rotation, _flip, _isBack, _highlight, _animated);
}
-const char *MinigameTriangle::Node::getFaceStateName(int angle, bool selected, bool animated, bool instantaneous) {
+const Common::String MinigameTriangle::Node::getFaceStateName(int angle, bool selected, bool animated, bool instantaneous) {
assert(!selected || !animated); // анимиÑованнÑе вÑделеннÑми бÑÑÑ Ð½Ðµ могÑÑ
static const char *angleNames[3] = {"0", "120", "240"};
@@ -210,7 +210,7 @@ const char *MinigameTriangle::Node::getFaceStateName(int angle, bool selected, b
Common::String out;
out = Common::String::format("%s%s%s", (animated ? "02_" : "01_"), angleNames[angle], (selected || instantaneous ? "_sel" : ""));
- return out.c_str();
+ return out;
}
const char *MinigameTriangle::Node::getBackStateName(bool selected, bool animated, bool instantaneous) {
@@ -252,7 +252,7 @@ void MinigameTriangle::updateNode(Node &node, int position, int flip, bool quick
QDObject &face = node._face[flip];
face->set_R(slotCoord(position, flip));
face->update_screen_R();
- face.setState(Node::getFaceStateName(node._rotation, node._highlight, node._animated, quick));
+ face.setState(Node::getFaceStateName(node._rotation, node._highlight, node._animated, quick).c_str());
}
}
@@ -370,10 +370,10 @@ bool MinigameTriangle::animate(float dt) {
releaseNodeBack(node2);
for (auto &it : node1._face)
- it.setState(Node::getFaceStateName(0, false, false, false));
+ it.setState(Node::getFaceStateName(0, false, false, false).c_str());
for (auto &it : node2._face)
- it.setState(Node::getFaceStateName(0, false, false, false));
+ it.setState(Node::getFaceStateName(0, false, false, false).c_str());
updateNode(node1, _animatedNodes[1], destination(_animatedNodes[0], _animatedNodes[1]), true);
updateNode(node2, _animatedNodes[0], destination(_animatedNodes[1], _animatedNodes[0]), true);
diff --git a/engines/qdengine/minigames/adv/m_triangles.h b/engines/qdengine/minigames/adv/m_triangles.h
index 6453e61923c..ba1b5e0d668 100644
--- a/engines/qdengine/minigames/adv/m_triangles.h
+++ b/engines/qdengine/minigames/adv/m_triangles.h
@@ -66,7 +66,7 @@ class MinigameTriangle : public MinigameInterface {
bool _highlight;
bool _animated;
- static const char *getFaceStateName(int angle, bool selected, bool animated, bool instantaneous);
+ static const Common::String getFaceStateName(int angle, bool selected, bool animated, bool instantaneous);
static const char *getBackStateName(bool selected, bool animated, bool instantaneous);
static const char *getBorderStateName(bool selected);
};
More information about the Scummvm-git-logs
mailing list