[Scummvm-git-logs] scummvm master -> e3fe196befc2b04e54a1673d2c713468c588aac2
sev-
noreply at scummvm.org
Thu Aug 29 21:51:14 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4a4d8310f7 QDENGINE: Implemented orchestra.dll minigame for maski
e3fe196bef QDENGINE: Initial code for arkada_avtomat.dll minigame for maski
Commit: 4a4d8310f7984c6155cde8894ec9402a01d9dc31
https://github.com/scummvm/scummvm/commit/4a4d8310f7984c6155cde8894ec9402a01d9dc31
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-29T23:12:09+02:00
Commit Message:
QDENGINE: Implemented orchestra.dll minigame for maski
Changed paths:
A engines/qdengine/minigames/orchestra.h
engines/qdengine/qdcore/qd_minigame.cpp
diff --git a/engines/qdengine/minigames/orchestra.h b/engines/qdengine/minigames/orchestra.h
new file mode 100644
index 00000000000..df8cea612a7
--- /dev/null
+++ b/engines/qdengine/minigames/orchestra.h
@@ -0,0 +1,121 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef QDENGINE_MINIGAMES_ORCHESTRA_H
+#define QDENGINE_MINIGAMES_ORCHESTRA_H
+
+#include "common/debug.h"
+
+#include "qdengine/qd_fwd.h"
+#include "qdengine/qdcore/qd_minigame_interface.h"
+
+namespace QDEngine {
+
+class qdOrchestraMiniGame : public qdMiniGameInterface {
+public:
+ qdOrchestraMiniGame() {}
+ ~qdOrchestraMiniGame() {}
+
+ bool init(const qdEngineInterface *engine_interface) {
+ debugC(1, kDebugMinigames, "Orchestra::init()");
+
+ _engine = engine_interface;
+ _scene = engine_interface->current_scene_interface();
+ if (!_scene)
+ return false;
+
+ _clickObj = _scene->object_interface(_scene->minigame_parameter("click_object"));
+ _doneObj = _scene->object_interface(_scene->minigame_parameter("done_object"));
+
+ _needReset = false;
+ _counter = 0;
+
+ return true;
+ }
+
+ bool quant(float dt) {
+ debugC(3, kDebugMinigames, "Orchestra::quant(%f)", dt);
+
+ if (!_needReset) {
+ if (_clickObj->is_state_active("\xe4\xe0")) { // "да"
+ _counter++;
+
+ _clickObj->set_state("\xed\xe5\xf2"); // "неÑ"
+
+ if (_counter >= 20) {
+ _needReset = 1;
+ _doneObj->set_state("\xe4\xe0"); // "да"
+ }
+ }
+ }
+
+ if (_needReset) {
+ if (_doneObj->is_state_active("\xed\xe5\xf2\x31")) { // "неÑ1"
+ _needReset = false;
+ _counter = 0;
+ }
+ }
+
+ return true;
+ }
+
+ bool finit() {
+ debugC(1, kDebugMinigames, "Orchestra::finit()");
+
+ if (_scene) {
+ _engine->release_scene_interface(_scene);
+ _scene = 0;
+ }
+
+ return true;
+ }
+
+ bool new_game(const qdEngineInterface *engine_interface) {
+ return true;
+ }
+
+ int save_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, char *buffer, int buffer_size) {
+ return 0;
+ }
+
+ int load_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, const char *buffer, int buffer_size) {
+ return 0;
+ }
+
+ enum { INTERFACE_VERSION = 99 };
+ int version() const {
+ return INTERFACE_VERSION;
+ }
+
+private:
+ const qdEngineInterface *_engine = nullptr;
+ qdMinigameSceneInterface *_scene = nullptr;
+
+ qdMinigameObjectInterface *_clickObj = nullptr;
+ qdMinigameObjectInterface *_doneObj = nullptr;
+
+ bool _needReset = false;
+ int _counter = 0;
+};
+
+} // namespace QDEngine
+
+#endif // QDENGINE_MINIGAMES_ORCHESTRA_H
diff --git a/engines/qdengine/qdcore/qd_minigame.cpp b/engines/qdengine/qdcore/qd_minigame.cpp
index 26fe49bb247..cddeeefdad0 100644
--- a/engines/qdengine/qdcore/qd_minigame.cpp
+++ b/engines/qdengine/qdcore/qd_minigame.cpp
@@ -37,6 +37,7 @@
#include "qdengine/minigames/kartiny.h"
#include "qdengine/minigames/maski_21.h"
#include "qdengine/minigames/masky_order.h"
+#include "qdengine/minigames/orchestra.h"
#include "qdengine/minigames/scroll.h"
#include "qdengine/minigames/tetris.h"
@@ -266,7 +267,6 @@ bool qdMiniGame::load_interface() {
// maski
// Arkada_avtomat.dll
- // orchestra.dll
if (_dll_name == "Resource\\DLL\\tetris.dll") {
_interface = new qdTetrisMiniGame();
return true;
@@ -285,6 +285,9 @@ bool qdMiniGame::load_interface() {
} else if (_dll_name == "Resource\\DLL\\kartiny.dll") {
_interface = new qdKartinyMiniGame();
return true;
+ } else if (_dll_name == "Resource\\DLL\\orchestra.dll") {
+ _interface = new qdOrchestraMiniGame();
+ return true;
// 3mice1
Commit: e3fe196befc2b04e54a1673d2c713468c588aac2
https://github.com/scummvm/scummvm/commit/e3fe196befc2b04e54a1673d2c713468c588aac2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-08-29T23:50:44+02:00
Commit Message:
QDENGINE: Initial code for arkada_avtomat.dll minigame for maski
Changed paths:
A engines/qdengine/minigames/arkada_avtomat.h
engines/qdengine/qdcore/qd_minigame.cpp
diff --git a/engines/qdengine/minigames/arkada_avtomat.h b/engines/qdengine/minigames/arkada_avtomat.h
new file mode 100644
index 00000000000..21125b40f85
--- /dev/null
+++ b/engines/qdengine/minigames/arkada_avtomat.h
@@ -0,0 +1,155 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef QDENGINE_MINIGAMES_ARKADA_AVTOMAT_H
+#define QDENGINE_MINIGAMES_ARKADA_AVTOMAT_H
+
+#include "common/debug.h"
+
+#include "qdengine/qd_fwd.h"
+#include "qdengine/qdcore/qd_minigame_interface.h"
+
+namespace QDEngine {
+
+class qdArkadaAvtomatMiniGame : public qdMiniGameInterface {
+public:
+ qdArkadaAvtomatMiniGame() {}
+ ~qdArkadaAvtomatMiniGame() {}
+
+ bool init(const qdEngineInterface *engine_interface) {
+ debugC(1, kDebugMinigames, "ArkadaAvtomat::init()");
+
+ _engine = engine_interface;
+ _scene = engine_interface->current_scene_interface();
+ if (!_scene)
+ return false;
+
+ _patronMouseObj = _scene->object_interface(_scene->minigame_parameter("patron_mouse"));
+ _patronTomatoObj = _scene->object_interface(_scene->minigame_parameter("patron_tomato"));
+ _killObj = _scene->object_interface(_scene->minigame_parameter("kill"));
+ _fazaObj = _scene->object_interface(_scene->minigame_parameter("faza"));
+ _menObj = _scene->object_interface(_scene->minigame_parameter("men"));
+ _bloodObj = _scene->object_interface(_scene->minigame_parameter("blood"));
+ _shotsEggObj = _scene->object_interface(_scene->minigame_parameter("shots_egg"));
+ _shotsTomatoObj = _scene->object_interface(_scene->minigame_parameter("shots_tomato"));
+ _shotsBananObj = _scene->object_interface(_scene->minigame_parameter("shots_banan"));
+ _doneObj = _scene->object_interface(_scene->minigame_parameter("done"));
+ _livesObj = _scene->object_interface(_scene->minigame_parameter("lives"));
+ _bublObj = _scene->object_interface(_scene->minigame_parameter("bubl"));
+ _walkFlagObj = _scene->object_interface(_scene->minigame_parameter("walk_flag"));
+ _jumpFlagObj = _scene->object_interface(_scene->minigame_parameter("jump_flag"));
+
+ _flag1 = 0;
+ _flag2 = 0;
+ _field_64 = 2;
+ _flag3 = 0;
+ _field_54 = -1;
+
+ // stand(time(0));
+
+ _someSwitchBackup = -1;
+ _shotsTomatoCounter = 9;
+ _shotsBananaCounter = 10;
+ _shoteEggCounter = 10;
+ _livesCounter = 5;
+ _someFlag5 = 0;
+ _someSwitch = 2;
+ _someFlag6 = 0;
+ _jumpFlag = 0;
+
+ return true;
+ }
+
+ bool quant(float dt) {
+ debugC(3, kDebugMinigames, "ArkadaAvtomat::quant(%f)", dt);
+
+ return true;
+ }
+
+ bool finit() {
+ debugC(1, kDebugMinigames, "ArkadaAvtomat::finit()");
+
+ if (_scene) {
+ _engine->release_scene_interface(_scene);
+ _scene = 0;
+ }
+
+ return true;
+ }
+
+ bool new_game(const qdEngineInterface *engine_interface) {
+ return true;
+ }
+
+ int save_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, char *buffer, int buffer_size) {
+ return 0;
+ }
+
+ int load_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, const char *buffer, int buffer_size) {
+ return 0;
+ }
+
+ enum { INTERFACE_VERSION = 99 };
+ int version() const {
+ return INTERFACE_VERSION;
+ }
+
+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;
+
+ bool _flag1 = 0;
+ bool _flag2 = 0;
+ int _field_64 = 2;
+ bool _flag3 = 0;
+ int _field_54 = -1;
+
+ int _someSwitch = 2;
+ int _someSwitchBackup = -1;
+
+ int _shotsTomatoCounter = 9;
+ int _shotsBananaCounter = 10;
+ int _shoteEggCounter = 10;
+ int _livesCounter = 5;
+
+ bool _someFlag5 = 0;
+ bool _someFlag6 = 0;
+ bool _jumpFlag = 0;
+};
+
+} // namespace QDEngine
+
+#endif // QDENGINE_MINIGAMES_ARKADA_AVTOMAT_H
diff --git a/engines/qdengine/qdcore/qd_minigame.cpp b/engines/qdengine/qdcore/qd_minigame.cpp
index cddeeefdad0..2e397490c85 100644
--- a/engines/qdengine/qdcore/qd_minigame.cpp
+++ b/engines/qdengine/qdcore/qd_minigame.cpp
@@ -34,6 +34,7 @@
#include "qdengine/minigames/qd_empty_minigame_interface.h"
// maski
+#include "qdengine/minigames/arkada_avtomat.h"
#include "qdengine/minigames/kartiny.h"
#include "qdengine/minigames/maski_21.h"
#include "qdengine/minigames/masky_order.h"
More information about the Scummvm-git-logs
mailing list