[Scummvm-git-logs] scummvm master -> bc0de5454599a5abf07b4464ad646959cb020eb5
sev-
noreply at scummvm.org
Sun Oct 13 18:10:20 UTC 2024
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7541704371 QDENGINE: Completed code for 3mice2_testo.dll minigame
6bb411a58c QDENGINE: Code fixes to 3mice2_testo.dll minigame
6371b2866c QDENGINE: Fix wrong semicolon. PVS-Studio V529
bc0de54545 QDENGINE: Init class variables. PVS-Studio V730
Commit: 754170437121d2f4ce84d01755e6b5a7816ffc0f
https://github.com/scummvm/scummvm/commit/754170437121d2f4ce84d01755e6b5a7816ffc0f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-13T20:09:54+02:00
Commit Message:
QDENGINE: Completed code for 3mice2_testo.dll minigame
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 213c07235ef..1b53fcc72eb 100644
--- a/engines/qdengine/minigames/3mice2_testo.h
+++ b/engines/qdengine/minigames/3mice2_testo.h
@@ -285,70 +285,39 @@ private:
}
bool checkSnapPiece(int num) {
-#if 0
- v3 = _noDoughX + _engine->mouse_cursor_position(_engine, &v22)->x;
- v4 = _engine->mouse_cursor_position(_engine, &v22);
- v5 = num;
- y = v4->y;
- v16 = 0;
- if (_numVerts[num] > 0) {
- p_y = (mgVect2i_s1 *)&_figureVerts[num].y;
- while (2) {
- v7 = 0;
- v8 = &_figures[8];
- v19 = 0;
- do {
- if (v7 != v5) {
- v9 = p_y->y;
- v21[0] = p_y[-1].x + v3;
- v10 = *v8;
- v21[1] = y + v9;
- if (v10->hit_test(v10, (mgVect2i *)v21))
- return 1;
- v11 = y + p_y->y;
- v22.x = p_y[-1].x + v3;
- v22.y = v11;
- if (_objNoDoughFake->hit_test(_objNoDoughFake, &v22))
- return 1;
- v5 = num;
- v7 = v19;
- }
- ++v7;
- ++v8;
- v19 = v7;
- } while (v7 < 8);
-
- p_y += 8;
-
- if (++v16 < _numVerts[v5])
- continue;
- break;
+ mgVect2i pos = _engine->mouse_cursor_position();
+ pos.x += _noDoughX;
+
+ int v = num;
+
+ for (int i = 0; i < _numVerts[num]; i++) {
+ mgVect2i npos = _figureVerts[v];
+ npos.x += pos.x;
+ npos.y += pos.y;
+
+ for (int j = 0; j < 8; j++) {
+ if (j != num) {
+ if (_figures[8 + i]->hit_test(npos))
+ return true;
+
+ if (_objNoDoughFake->hit_test(npos))
+ return true;
+ }
}
+
+ v += 8;
}
- v12 = 0;
- figures_ = &_figures[8];
- v17 = 0;
- v14 = (mgVect2i_s1 *)&_figureBboxes[0].y;
- do {
- if (v12 != v5) {
- if (v14[-1].x + (*figures_)->screen_R(*figures_, &v22)->x < v3 + _figureBboxes[2 * num].x) {
- v20 = (qdMinigameInterface *)((char *)this + 16 * num);
- if (v14->y + (*figures_)->screen_R(*figures_, (mgVect2i *)v21)->x > v3
- + v20->_figureBboxes[offsetof(qdMinigameInterface, vmt)].y
- && v14[1].y + (*figures_)->screen_R(*figures_, &v23)->y > y + v20->_figureBboxes[1].y
- && v14->x + (*figures_)->screen_R(*figures_, (mgVect2i *)v24)->y < y + v20->_figureBboxes[1].x) {
+
+ for (int i = 0; i < 8; i++) {
+ if (i != num) {
+ if (_figureBboxes[2 * i].x + _figures[i]->screen_R().x < pos.x + _figureBboxes[2 * num].x &&
+ _figureBboxes[2 * i].y + _figures[i]->screen_R().x > pos.x + _figureBboxes[2 * num].y &&
+ _figureBboxes[2 * i + 1].x + _figures[i]->screen_R().y < pos.y + _figureBboxes[2 * num + 1].x &&
+ _figureBboxes[2 * i + 1].y + _figures[i]->screen_R().y > pos.y + _figureBboxes[2 * num + 1].y)
return true;
- }
- }
- v5 = num;
- v12 = v17;
}
- ++v12;
- ++figures_;
- v14 += 2;
- v17 = v12;
- } while (v12 < 8);
-#endif
+ }
+
return false;
}
Commit: 6bb411a58cb3bc147bbcd3661c9dfc3d814d8faa
https://github.com/scummvm/scummvm/commit/6bb411a58cb3bc147bbcd3661c9dfc3d814d8faa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-13T20:09:54+02:00
Commit Message:
QDENGINE: Code fixes to 3mice2_testo.dll minigame
Changed paths:
engines/qdengine/minigames/3mice2_testo.h
engines/qdengine/qdcore/qd_minigame.cpp
diff --git a/engines/qdengine/minigames/3mice2_testo.h b/engines/qdengine/minigames/3mice2_testo.h
index 1b53fcc72eb..8e612e0c018 100644
--- a/engines/qdengine/minigames/3mice2_testo.h
+++ b/engines/qdengine/minigames/3mice2_testo.h
@@ -23,6 +23,7 @@
#define QDENGINE_MINIGAMES_3MICE2_TESTO_H
#include "common/debug.h"
+#include "common/rect.h"
#include "qdengine/qd_fwd.h"
#include "qdengine/qdcore/qd_minigame_interface.h"
@@ -112,10 +113,12 @@ public:
v += 8; // Data is arranged in vertical columns
}
- _figureBboxes[i * 2].x = maxX;
- _figureBboxes[i * 2].y = minX;
- _figureBboxes[i * 2 + 1].x = maxY;
- _figureBboxes[i * 2 + 1].y = minY;
+ _figureBboxes[i].top = maxX;
+ _figureBboxes[i].left = minX;
+ _figureBboxes[i].bottom = maxY;
+ _figureBboxes[i].top = minY;
+
+ debugC(2, kDebugMinigames, "bbox for: %d: [%d, %d, %d, %d]", i, _figureBboxes[i].left, _figureBboxes[i].top, _figureBboxes[i].right, _figureBboxes[i].bottom);
}
mgVect2i pos = _objNoDough->screen_R();
@@ -157,24 +160,25 @@ public:
debugC(3, kDebugMinigames, "3mice2Testo::quant(%f)", dt);
if (checkSolution())
- _objDone->set_state("да");
+ _objDone->set_state("\xe4\xe0"); // "да"
else
- _objDone->set_state("неÑ");
+ _objDone->set_state("\xed\xe5\xf2"); // "неÑ"
for (int i = 0; i < 8; i++) {
mgVect2i pos = _figures[i]->screen_R();
pos.x += _noDoughX;
- _figures[8 + i]->set_R(_scene->screen2world_coords(pos, 1000.0));
+ _figures[i + 8]->set_R(_scene->screen2world_coords(pos, 1000.0));
}
qdMinigameObjectInterface *mouseObj = _scene->mouse_object_interface();
qdMinigameObjectInterface *clickObj = _scene->mouse_click_object_interface();
- const char *name = mouseObj->name();
+ const char *name = nullptr;
if (mouseObj) {
+ name = mouseObj->name();
if (strstr(name, "figure") && strstr(name, "inv")) {
int num = atol(name + 6);
@@ -188,6 +192,8 @@ public:
if (_engine->is_mouse_event_active(qdmg::qdEngineInterfaceImpl::MOUSE_EV_LEFT_DOWN) && !mouseObj) {
int hit = hitTest();
+ debugC(2, kDebugMinigames, "hit: %d", hit);
+
if (hit > -1) {
_figures[hit]->set_state("hide");
_figures[hit + 16]->set_state("to_inv");
@@ -200,6 +206,8 @@ public:
if (strstr(name, "figure") && strstr(name, "inv")) {
num = atol(name + 6);
+ debugC(2, kDebugMinigames, "drop: %d", num);
+
if (num > 0 && num <= 8 && !checkSnapPiece(num - 1)) {
_figures[num - 1]->set_state("testo");
_figures[num + 15]->set_state("del");
@@ -310,10 +318,10 @@ private:
for (int i = 0; i < 8; i++) {
if (i != num) {
- if (_figureBboxes[2 * i].x + _figures[i]->screen_R().x < pos.x + _figureBboxes[2 * num].x &&
- _figureBboxes[2 * i].y + _figures[i]->screen_R().x > pos.x + _figureBboxes[2 * num].y &&
- _figureBboxes[2 * i + 1].x + _figures[i]->screen_R().y < pos.y + _figureBboxes[2 * num + 1].x &&
- _figureBboxes[2 * i + 1].y + _figures[i]->screen_R().y > pos.y + _figureBboxes[2 * num + 1].y)
+ if (_figureBboxes[i].right + _figures[i]->screen_R().x < pos.x + _figureBboxes[num].right &&
+ _figureBboxes[i].left + _figures[i]->screen_R().x > pos.x + _figureBboxes[num].left &&
+ _figureBboxes[i].top + _figures[i]->screen_R().y < pos.y + _figureBboxes[num].top &&
+ _figureBboxes[i].bottom + _figures[i]->screen_R().y > pos.y + _figureBboxes[num].bottom)
return true;
}
}
@@ -336,7 +344,7 @@ private:
mgVect2i _initialCoords[8];
int _noDoughX = 0;
- mgVect2i _figureBboxes[16];
+ Common::Rect _figureBboxes[8];
const mgVect2i _figureVerts[1088] = {
diff --git a/engines/qdengine/qdcore/qd_minigame.cpp b/engines/qdengine/qdcore/qd_minigame.cpp
index b917fa81ccc..c3f24426ae5 100644
--- a/engines/qdengine/qdcore/qd_minigame.cpp
+++ b/engines/qdengine/qdcore/qd_minigame.cpp
@@ -344,14 +344,15 @@ bool qdMiniGame::load_interface() {
} else if (_dll_name == "DLL\\3Mice2_states.dll") {
_interface = new qd3mice2StatesMiniGame();
return true;
+ } else if (_dll_name == "DLL\\3Mice2_testo.dll") {
+ _interface = new qd3mice2TestoMiniGame();
+ return true;
// 3Mice2_babochka.dll
- // 3Mice2_kovrik.dll
// 3Mice2_plate.dll
// 3Mice2_raskr1.dll
// 3Mice2_raskr2.dll
// 3Mice2_raskr3.dll
// 3Mice2_raskr4.dll
- // 3Mice2_testo.dll
// dogncat
// scores.dll
Commit: 6371b2866ccac2c712acd752557a13ff0284219f
https://github.com/scummvm/scummvm/commit/6371b2866ccac2c712acd752557a13ff0284219f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-13T20:09:54+02:00
Commit Message:
QDENGINE: Fix wrong semicolon. PVS-Studio V529
Changed paths:
engines/qdengine/minigames/3mice2_kovrik.h
diff --git a/engines/qdengine/minigames/3mice2_kovrik.h b/engines/qdengine/minigames/3mice2_kovrik.h
index 6d80ebbb3ff..0134b9697b4 100644
--- a/engines/qdengine/minigames/3mice2_kovrik.h
+++ b/engines/qdengine/minigames/3mice2_kovrik.h
@@ -129,7 +129,7 @@ public:
}
if (_objSound->is_state_active("\xed\xe5\xf2") // "неÑ"
- || _objSound->is_state_active("\xed\xe5\xf2\x31")); // "неÑ1"
+ || _objSound->is_state_active("\xed\xe5\xf2\x31")) // "неÑ1"
_objSound->set_state("\xe4\xe0"); // "да"
}
}
Commit: bc0de5454599a5abf07b4464ad646959cb020eb5
https://github.com/scummvm/scummvm/commit/bc0de5454599a5abf07b4464ad646959cb020eb5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-13T20:09:54+02:00
Commit Message:
QDENGINE: Init class variables. PVS-Studio V730
Changed paths:
engines/qdengine/minigames/3mice2_kovrik.h
engines/qdengine/minigames/3mice2_sbor_karty.h
diff --git a/engines/qdengine/minigames/3mice2_kovrik.h b/engines/qdengine/minigames/3mice2_kovrik.h
index 0134b9697b4..d1c5e9c6706 100644
--- a/engines/qdengine/minigames/3mice2_kovrik.h
+++ b/engines/qdengine/minigames/3mice2_kovrik.h
@@ -196,11 +196,11 @@ private:
const qdEngineInterface *_engine = nullptr;
qdMinigameSceneInterface *_scene = nullptr;
- qdMinigameObjectInterface *_objects[84];
+ qdMinigameObjectInterface *_objects[84] = { nullptr };
qdMinigameObjectInterface *_objDone = nullptr;
qdMinigameObjectInterface *_objSound = nullptr;
- float _timePassed;
+ float _timePassed = 0.0;
};
} // namespace QDEngine
diff --git a/engines/qdengine/minigames/3mice2_sbor_karty.h b/engines/qdengine/minigames/3mice2_sbor_karty.h
index 6e5d969948a..ee3201fe00e 100644
--- a/engines/qdengine/minigames/3mice2_sbor_karty.h
+++ b/engines/qdengine/minigames/3mice2_sbor_karty.h
@@ -183,11 +183,11 @@ private:
const qdEngineInterface *_engine = nullptr;
qdMinigameSceneInterface *_scene = nullptr;
- qdMinigameObjectInterface *_objects[22];
+ qdMinigameObjectInterface *_objects[22] = { nullptr };
qdMinigameObjectInterface *_objDone = nullptr;
qdMinigameObjectInterface *_objDrop = nullptr;
- float _timePassed;
+ float _timePassed = 0.0;
};
} // namespace QDEngine
More information about the Scummvm-git-logs
mailing list