[Scummvm-git-logs] scummvm master -> 665cd7a51b9f84001c3c2c51fc5c97989545bc5e
sev-
noreply at scummvm.org
Sat Oct 19 17:48:04 UTC 2024
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2c7478ad13 QDENGINE: Added triangles.dll minigame code for dogncat
38ee26aca7 QDENGINE: JANITORIAL: Indentation fixes
543fb4729c QDENGINE: Unstubbed MinigameManager::load/save_game()
eeda0dbf97 QDENGINE: JANITORIAL: Fix formatting
41bc481639 QDENGINE: runtime -> g_runtime in minigames/adv
665cd7a51b TINSEL: Fixed crash on failed engine run attempt
Commit: 2c7478ad1377b749663dccd1a257c7758ed74ec7
https://github.com/scummvm/scummvm/commit/2c7478ad1377b749663dccd1a257c7758ed74ec7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-19T19:45:31+02:00
Commit Message:
QDENGINE: Added triangles.dll minigame code for dogncat
Changed paths:
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/m_triangles.cpp
engines/qdengine/minigames/adv/m_triangles.h
engines/qdengine/module.mk
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 04bde746b7e..f86ec785de9 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -877,14 +877,14 @@ int MinigameManager::rnd(const Std::vector<float> &prob) const {
break;
}
assert(idx >= 0 && idx < prob.size());
- #ifdef _DEBUG
+#ifdef _DEBUG
float sum = 0.f;
for (auto &pit : prob)
sum += pit;
assert(abs(sum - 1.f) < 0.0001f);
- #endif
+#endif
return idx;
}
diff --git a/engines/qdengine/minigames/adv/m_triangles.cpp b/engines/qdengine/minigames/adv/m_triangles.cpp
index 051333c551d..12be98fee82 100644
--- a/engines/qdengine/minigames/adv/m_triangles.cpp
+++ b/engines/qdengine/minigames/adv/m_triangles.cpp
@@ -19,6 +19,9 @@
*
*/
+#include "common/debug.h"
+
+#include "qdengine/qdengine.h"
#include "qdengine/minigames/adv/m_triangles.h"
#include "qdengine/minigames/adv/RunTime.h"
#include "qdengine/minigames/adv/EventManager.h"
@@ -46,9 +49,8 @@ MinigameTriangle::Node::Node(int number, int rot) {
}
void MinigameTriangle::Node::release() {
- QDObjects::iterator it;
- FOR_EACH(face_, it)
- runtime->release(*it);
+ for (auto &it : face_)
+ runtime->release(it);
}
bool MinigameTriangle::Node::hit(const mgVect2f& pos) const {
@@ -91,7 +93,7 @@ MinigameTriangle::MinigameTriangle() {
fieldSize_ = fieldLines_ * fieldWidth_;
break;
case HEXAGON:
- xassert(fieldLines_ % 2 == 0);
+ assert(fieldLines_ % 2 == 0);
if (fieldLines_ % 2 != 0)
return;
fieldSize_ = 3 * sqr(fieldLines_) / 2;
@@ -111,32 +113,34 @@ MinigameTriangle::MinigameTriangle() {
nodes_.push_back(Node(num, 0));
Node& node = nodes_.back();
for (int angle = 1; angle <= 3; ++angle) {
- sprintf(name, "%s%02d_%1d", faceNameBegin, num + 1, angle);
+ snprintf(name, 63, "%s%02d_%1d", faceNameBegin, num + 1, angle);
QDObject obj = runtime->getObject(name);
node.face_.push_back(obj);
positions_.push_back(obj->R());
}
}
+ warning("STUB: MinigameTriangle::MinigameTriangle(): processGameData");
+#if 0
XBuffer gameData;
- Coords::iterator it;
- FOR_EACH(positions_, it)
- gameData.write(*it);
+ for (auto &it : positions_)
+ gameData.write(it);
if (!runtime->processGameData(gameData))
return;
- FOR_EACH(positions_, it)
- gameData.read(*it);
+ for (auto &it : positions_)
+ gameData.read(it);
+#endif
for (int num = 1; num <= 2; ++num) {
for (int angle = 1; angle <= 3; ++angle) {
- sprintf(name, "%s%1d_%1d", backNameBegin, num, angle);
+ snprintf(name, 63, "%s%1d_%1d", backNameBegin, num, angle);
if (!backSides_[(num - 1) * 3 + angle - 1].load(name))
return;
}
- sprintf(name, "%s%1d", selectNameBegin, num);
+ snprintf(name, 63, "%s%1d", selectNameBegin, num);
if (!selectBorders_[num - 1].load(name))
return;
}
@@ -169,9 +173,8 @@ MinigameTriangle::MinigameTriangle() {
}
MinigameTriangle::~MinigameTriangle() {
- Nodes::iterator it;
- FOR_EACH(nodes_, it)
- it->release();
+ for (auto &it : nodes_)
+ it.release();
for (int idx = 0; idx < 2; ++idx)
selectBorders_[idx].release();
@@ -185,20 +188,19 @@ void MinigameTriangle::Node::debugInfo() const {
}
const char *MinigameTriangle::Node::getFaceStateName(int angle, bool selected, bool animated, bool instantaneous) {
- xassert(!selected || !animated); // анимиÑованнÑе вÑделеннÑми бÑÑÑ Ð½Ðµ могÑÑ
+ assert(!selected || !animated); // анимиÑованнÑе вÑделеннÑми бÑÑÑ Ð½Ðµ могÑÑ
- static char *angleNames[3] = {"0", "120", "240"};
- xassert(angle >= 0 && angle < sizeof(angleNames) / sizeof(angleNames[0]));
+ static const char *angleNames[3] = {"0", "120", "240"};
+ assert(angle >= 0 && angle < sizeof(angleNames) / sizeof(angleNames[0]));
- static XBuffer out;
- out.init();
+ Common::String out;
- out < (animated ? "02_" : "01_") < angleNames[angle] < (selected || instantaneous ? "_sel" : "") < '\0';
+ out = Common::String::format("%s%s%s", (animated ? "02_" : "01_"), angleNames[angle], (selected || instantaneous ? "_sel" : ""));
return out.c_str();
}
const char *MinigameTriangle::Node::getBackStateName(bool selected, bool animated, bool instantaneous) {
- xassert(!selected || !animated); // анимиÑованнÑе вÑделеннÑми бÑÑÑ Ð½Ðµ могÑÑ
+ assert(!selected || !animated); // анимиÑованнÑе вÑделеннÑми бÑÑÑ Ð½Ðµ могÑÑ
if (animated)
return selected || instantaneous ? "02_sel" : "02";
@@ -219,9 +221,8 @@ void MinigameTriangle::releaseNodeBack(Node& node) {
}
void MinigameTriangle::updateNode(Node& node, int position, int flip, bool quick) {
- QDObjects::iterator fit;
- FOR_EACH(node.face_, fit)
- runtime->hide(*fit);
+ for (auto &fit : node.face_)
+ runtime->hide(fit);
node.flip = flip;
@@ -243,14 +244,14 @@ void MinigameTriangle::updateNode(Node& node, int position, int flip, bool quick
void MinigameTriangle::highlight(int idx, bool hl) {
if (idx >= 0) {
- xassert(idx < (int)nodes_.size());
+ assert(idx < (int)nodes_.size());
nodes_[idx].highlight_ = hl;
updateNode(nodes_[idx], idx);
}
}
void MinigameTriangle::beginSwapNodes(int pos1, int pos2) {
- xassert(compatible(pos1, pos2));
+ assert(compatible(pos1, pos2));
if (pos1 > pos2)
SWAP(pos1, pos2);
@@ -284,25 +285,25 @@ void MinigameTriangle::endSwapNodes(int pos1, int pos2) {
bool counted = false;
if (node1.number_ == pos1) { // поÑÑавили на Ñвое меÑÑо
- xassert(!node1.isBack_);
+ assert(!node1.isBack_);
counted = true;
runtime->event(EVENT_PUT_RIGHT, node1.obj()->screen_R());
}
if (node2.number_ == pos1) { // ÑнÑли Ñо Ñвоего меÑÑа
- xassert(node2.isBack_);
+ assert(node2.isBack_);
counted = true;
runtime->event(EVENT_GET_RIGHT, node1.obj()->screen_R());
}
if (node2.number_ == pos2) { // поÑÑавили на Ñвое меÑÑо
- xassert(!node2.isBack_);
+ assert(!node2.isBack_);
counted = true;
runtime->event(EVENT_PUT_RIGHT, node2.obj()->screen_R());
}
if (node1.number_ == pos2) { // ÑнÑли Ñо Ñвоего меÑÑа
- xassert(node1.isBack_);
+ assert(node1.isBack_);
counted = true;
runtime->event(EVENT_GET_RIGHT, node2.obj()->screen_R());
}
@@ -316,11 +317,12 @@ void MinigameTriangle::endSwapNodes(int pos1, int pos2) {
bool isWin = true;
int position = 0;
- Nodes::const_iterator it;
- FOR_EACH(nodes_, it)
- if (it->number_ != position++) {
- isWin = false;
- break;
+
+ for (auto &it : nodes_) {
+ if (it.number_ != position++) {
+ isWin = false;
+ break;
+ }
}
if (isWin) {
@@ -351,11 +353,11 @@ bool MinigameTriangle::animate(float dt) {
releaseNodeBack(node1);
releaseNodeBack(node2);
- QDObjects::iterator it;
- FOR_EACH(node1.face_, it)
- (*it).setState(Node::getFaceStateName(0, false, false, false));
- FOR_EACH(node2.face_, it)
- (*it).setState(Node::getFaceStateName(0, false, false, false));
+ for (auto &it : node1.face_)
+ it.setState(Node::getFaceStateName(0, false, false, false));
+
+ for (auto &it : node2.face_)
+ it.setState(Node::getFaceStateName(0, false, false, false));
updateNode(node1, animatedNodes_[1], destination(animatedNodes_[0], animatedNodes_[1]), true);
updateNode(node2, animatedNodes_[0], destination(animatedNodes_[1], animatedNodes_[0]), true);
@@ -404,6 +406,9 @@ bool MinigameTriangle::animate(float dt) {
animatedNodes_[1] = -1;
return true;
+
+ default:
+ break;
}
return false;
@@ -519,9 +524,11 @@ int MinigameTriangle::rowBegin(int row) const {
return sqr(row);
case RECTANGLE:
return row * fieldWidth_;
+ default:
+ break;
}
//case HEXAGON:
- xassert(row >= 0 && row < fieldLines_);
+ assert(row >= 0 && row < fieldLines_);
if (row >= fieldLines_ / 2) {
row -= fieldLines_ / 2;
return fieldSize_ / 2 + (2 * fieldLines_ - row) * row;
@@ -539,6 +546,8 @@ int MinigameTriangle::rowByNum(int num) const {
return floor(sqrt((float)num));
case RECTANGLE:
return num / fieldWidth_;
+ default:
+ break;
}
//case HEXAGON:
int row = num < fieldSize_ / 2 ? 0 : fieldLines_ / 2;
@@ -553,6 +562,8 @@ int MinigameTriangle::orientation(int num) const {
return (rowByNum(num) + num) % 2;
case RECTANGLE:
return num % 2;
+ default:
+ break;
}
//case HEXAGON:
return (num + rowByNum(num) + (num >= fieldSize_ / 2 ? 1 : 0)) % 2;
@@ -590,7 +601,7 @@ int MinigameTriangle::getRotate(int num1, int num2) const {
{{2, 1, 0}, {1, 0, 2}},
{{1, 0, 2}, {2, 1, 0}}
};
- xassert(compatible(num1, num2));
+ assert(compatible(num1, num2));
return solves[rowByNum(num1) != rowByNum(num2) ? 0 : (num2 < num1 ? 1 : 2)]
[orientation(num1)][nodes_[num1].rotation_];
}
@@ -603,7 +614,7 @@ int MinigameTriangle::destination(int num1, int num2) const {
}
mgVect3f MinigameTriangle::slotCoord(int pos, int angle) const {
- xassert(pos * 3 + angle < positions_.size());
+ assert(pos * 3 + angle < positions_.size());
return positions_[pos * 3 + angle];
}
diff --git a/engines/qdengine/minigames/adv/m_triangles.h b/engines/qdengine/minigames/adv/m_triangles.h
index 2323b714a54..a462dffa241 100644
--- a/engines/qdengine/minigames/adv/m_triangles.h
+++ b/engines/qdengine/minigames/adv/m_triangles.h
@@ -68,7 +68,7 @@ class MinigameTriangle : public MinigameInterface {
static const char *getBackStateName(bool selected, bool animated, bool instantaneous);
static const char *getBorderStateName(bool selected);
};
- typedef vector<Node> Nodes;
+ typedef Std::vector<Node> Nodes;
public:
MinigameTriangle();
diff --git a/engines/qdengine/module.mk b/engines/qdengine/module.mk
index 285f9bb5e14..189e19ef08e 100644
--- a/engines/qdengine/module.mk
+++ b/engines/qdengine/module.mk
@@ -13,6 +13,7 @@ MODULE_OBJS = \
minigames/adv/Range.o \
minigames/adv/RunTime.o \
minigames/adv/TextManager.o \
+ minigames/adv/m_triangles.o \
parser/qdscr_parser.o \
parser/xml_parser.o \
parser/xml_tag_buffer.o \
Commit: 38ee26aca716a3441f845ca8ff3dba4d028d3707
https://github.com/scummvm/scummvm/commit/38ee26aca716a3441f845ca8ff3dba4d028d3707
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-19T19:45:31+02:00
Commit Message:
QDENGINE: JANITORIAL: Indentation fixes
Changed paths:
engines/qdengine/minigames/adv/ObjectContainer.h
engines/qdengine/minigames/adv/Rect.h
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/RunTime.h
engines/qdengine/minigames/adv/TextManager.cpp
diff --git a/engines/qdengine/minigames/adv/ObjectContainer.h b/engines/qdengine/minigames/adv/ObjectContainer.h
index db4b5c2e7ae..e7e8b59f204 100644
--- a/engines/qdengine/minigames/adv/ObjectContainer.h
+++ b/engines/qdengine/minigames/adv/ObjectContainer.h
@@ -28,9 +28,9 @@ class ObjectContainer {
QDObjects _objects;
int _current;
mgVect3f _coord;
- #ifdef _DEBUG
+#ifdef _DEBUG
Common::String _name;
- #endif
+#endif
const char *name() const;
void pushObject(QDObject& obj);
diff --git a/engines/qdengine/minigames/adv/Rect.h b/engines/qdengine/minigames/adv/Rect.h
index 4e745001ebe..77bd1ab473e 100644
--- a/engines/qdengine/minigames/adv/Rect.h
+++ b/engines/qdengine/minigames/adv/Rect.h
@@ -171,7 +171,7 @@ struct Rect {
/// ÐÑовеÑÑÐµÑ Ð½Ðµ наÑ
одиÑÑÑ Ð»Ð¸ ÑоÑка \a _point внÑÑÑи пÑÑмоÑголÑника
inline bool point_inside(const VectType& point) const {
if (point.x >= left() && point.y >= top() &&
- point.x <= right() && point.y <= bottom())
+ point.x <= right() && point.y <= bottom())
return true;
else
return false;
@@ -179,7 +179,7 @@ struct Rect {
/// ÐÑовеÑÑÐµÑ Ð½Ðµ наÑ
одиÑÑÑ Ð»Ð¸ пÑÑмоÑголÑник \a _rect внÑÑÑи пÑÑмоÑголÑника
inline bool rect_inside(const RectType& rect) const {
if (rect.left() >= left() && rect.top() >= top() &&
- rect.bottom() <= bottom() && rect.right() <= right())
+ rect.bottom() <= bottom() && rect.right() <= right())
return true;
else
return false;
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index f86ec785de9..dc3a7f9a107 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -248,10 +248,10 @@ bool MinigameManager::createGame() {
}
#define SAFE_RELEASE(name) \
- if(name){ \
- scene_->release_object_interface(name); \
- name = 0; \
- }
+ if(name){ \
+ scene_->release_object_interface(name); \
+ name = 0; \
+ }
bool MinigameManager::finit() {
debugC(2, kDebugMinigames, "MinigameManager::finit(): finit game");
@@ -486,7 +486,7 @@ void MinigameManager::saveState(bool force) {
file < GameInfo::version();
file < (engine_ ? engine_->rnd(999999) : seed_);
- for (auto &it: gameInfos_) {
+ for (auto &it : gameInfos_) {
if (!it._value.empty()) {
debugC(2, kDebugMinigames, "MinigameManager::save_state(): write game info: (%d,%d), index: %d, game data: %d", it._key.gameLevel_, it._key.gameNum_, it._value.game_.sequenceIndex_, it._value.empty_ ? 0 : 1);
file.write(it._key);
@@ -542,10 +542,10 @@ bool MinigameManager::quant(float dt) {
if (game_help_)
game_help_.setState(game_help_enabled_ ? game_help_state_name_.c_str() : "off");
- #ifdef _DEBUG
+#ifdef _DEBUG
if (keyPressed(VK_MULTIPLY, true))
game_->setState(MinigameInterface::GAME_WIN);
- #endif
+#endif
switch (game_->state()) {
case MinigameInterface::GAME_LOST:
diff --git a/engines/qdengine/minigames/adv/RunTime.h b/engines/qdengine/minigames/adv/RunTime.h
index 44ccff4515d..52050a7db2b 100644
--- a/engines/qdengine/minigames/adv/RunTime.h
+++ b/engines/qdengine/minigames/adv/RunTime.h
@@ -244,11 +244,15 @@ private:
};
struct GameInfoIndex_Hash {
- uint operator()(const GameInfoIndex& x) const { return (x.gameNum_ << 16) + x.gameLevel_; }
+ uint operator()(const GameInfoIndex& x) const {
+ return (x.gameNum_ << 16) + x.gameLevel_;
+ }
};
struct GameInfoIndex_EqualTo {
- uint operator()(const GameInfoIndex& x, const GameInfoIndex& y) const { return x.gameNum_ == y.gameNum_ && x.gameLevel_ == y.gameLevel_; }
+ uint operator()(const GameInfoIndex& x, const GameInfoIndex& y) const {
+ return x.gameNum_ == y.gameNum_ && x.gameLevel_ == y.gameLevel_;
+ }
};
// инÑоÑмаÑÐ¸Ñ Ð¾ пÑойденнÑÑ
игÑаÑ
diff --git a/engines/qdengine/minigames/adv/TextManager.cpp b/engines/qdengine/minigames/adv/TextManager.cpp
index c16ea622d10..307eb7f3f45 100644
--- a/engines/qdengine/minigames/adv/TextManager.cpp
+++ b/engines/qdengine/minigames/adv/TextManager.cpp
@@ -105,7 +105,7 @@ bool TextManager::getStaticPreset(StaticTextPreset& preset, const char* name) co
int read = sscanf(descr, "%d %d |%63s", &align, &preset.font, str);
if (read != 3)
- warning("TextManager::getStaticPreset(): Incorrect text format description in %s", transCyrillic(name));
+ warning("TextManager::getStaticPreset(): Incorrect text format description in %s", transCyrillic(name));
if (read != 3)
return false;
@@ -113,7 +113,7 @@ bool TextManager::getStaticPreset(StaticTextPreset& preset, const char* name) co
char *pos_obj = strchr(str, '|');
if (!pos_obj)
- warning("TextManager::getStaticPreset(): Incorrect text format description (2) in %s", transCyrillic(name));
+ warning("TextManager::getStaticPreset(): Incorrect text format description (2) in %s", transCyrillic(name));
if (!pos_obj)
return false;
Commit: 543fb4729ce5ecd4851484598c33621051c57237
https://github.com/scummvm/scummvm/commit/543fb4729ce5ecd4851484598c33621051c57237
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-19T19:45:31+02:00
Commit Message:
QDENGINE: Unstubbed MinigameManager::load/save_game()
Changed paths:
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/RunTime.h
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index dc3a7f9a107..1fdc9a83b7e 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -20,6 +20,7 @@
*/
#include "common/debug.h"
+#include "common/memstream.h"
#include "qdengine/qdengine.h"
#include "qdengine/minigames/adv/common.h"
@@ -362,13 +363,10 @@ int MinigameManager::save_game(const qdEngineInterface* engine, const qdMinigame
if (currentGameInfo_ && !currentGameInfo_->empty()) {
debugC(2, kDebugMinigames, "MinigameManager::save_game(): save game (%d, %d)", currentGameIndex_.gameLevel_, currentGameIndex_.gameNum_);
- warning("STUB: MinigameManager::save_game()");
-#if 0
- XBuffer out((void*)buffer, buffer_size);
- out.write(GameInfo::version());
- out.write(currentGameInfo_->game_);
- return out.tell();
-#endif
+ Common::MemoryWriteStream out((byte *)buffer, buffer_size);
+ out.writeUint32LE(GameInfo::version());
+ currentGameInfo_->game_.write(out);
+ return out.pos();
}
return 0;
@@ -384,21 +382,18 @@ int MinigameManager::load_game(const qdEngineInterface* engine, const qdMinigame
TEMP_SCENE_ENTER();
loadState();
- warning("STUB: MinigameManager::load_game()");
-
-#if 0
if (currentGameInfo_) {
if (buffer_size > 0) {
debugC(2, kDebugMinigames, "MinigameManager::load_game(): load game (%d, %d)", currentGameIndex_.gameLevel_, currentGameIndex_.gameNum_);
- XBuffer in((void*)buffer, buffer_size);
+ Common::MemoryReadStream in((const byte *)buffer, buffer_size);
int version;
- in.read(version);
+ version = in.readUint32LE();
if (version == GameInfo::version()) {
- in.read(currentGameInfo_->game_);
+ currentGameInfo_->game_.read(in);
if (currentGameInfo_->empty_)
warning("MinigameManager::load_game(): Attempt to load minigame without a scene");
- if (in.tell() != buffer_size) {
+ if (in.pos() != buffer_size) {
currentGameInfo_->game_ = MinigameData();
warning("MinigameManager::load_game(): Data size mismatch");
return 0;
@@ -413,7 +408,7 @@ int MinigameManager::load_game(const qdEngineInterface* engine, const qdMinigame
}
saveState();
}
-#endif
+
return buffer_size;
}
@@ -928,6 +923,22 @@ MinigameData::MinigameData() {
bestScore_ = 0;
}
+void MinigameData::write(Common::SeekableWriteStream &out) {
+ out.writeSint32LE(sequenceIndex_);
+ out.writeSint32LE(lastScore_);
+ out.writeSint32LE(lastTime_);
+ out.writeSint32LE(bestTime_);
+ out.writeSint32LE(bestScore_);
+}
+
+void MinigameData::read(Common::SeekableReadStream &out) {
+ sequenceIndex_ = out.readSint32LE();
+ lastScore_ = out.readSint32LE();
+ lastTime_ = out.readSint32LE();
+ bestTime_ = out.readSint32LE();
+ bestScore_ = out.readSint32LE();
+}
+
GameInfo::GameInfo() {
empty_ = true;
dataSize_ = 0;
diff --git a/engines/qdengine/minigames/adv/RunTime.h b/engines/qdengine/minigames/adv/RunTime.h
index 52050a7db2b..647556aed6e 100644
--- a/engines/qdengine/minigames/adv/RunTime.h
+++ b/engines/qdengine/minigames/adv/RunTime.h
@@ -26,6 +26,7 @@
namespace Common {
class MemoryWriteStream;
+class SeekableWriteStream;
}
namespace QDEngine {
@@ -54,6 +55,9 @@ struct MinigameData {
int lastTime_;
int bestTime_;
int bestScore_;
+
+ void write(Common::SeekableWriteStream &out);
+ void read(Common::SeekableReadStream &out);
};
struct GameInfo {
Commit: eeda0dbf978c054586e27909a0ee3f24c1e0cb7c
https://github.com/scummvm/scummvm/commit/eeda0dbf978c054586e27909a0ee3f24c1e0cb7c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-19T19:45:31+02:00
Commit Message:
QDENGINE: JANITORIAL: Fix formatting
Changed paths:
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/RunTime.h
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 1fdc9a83b7e..1441455b0c6 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -108,7 +108,7 @@ MinigameManager::~MinigameManager() {
}
}
-bool MinigameManager::init(const qdEngineInterface* engine_interface) {
+bool MinigameManager::init(const qdEngineInterface *engine_interface) {
debugC(1, kDebugMinigames, "MinigameManager::init(): init game");
if (runtime != this)
@@ -313,7 +313,7 @@ bool MinigameManager::finit() {
#undef SAFE_RELEASE
-bool MinigameManager::new_game(const qdEngineInterface* engine_interface) {
+bool MinigameManager::new_game(const qdEngineInterface *engine_interface) {
if (!loadState(false)) {
debugC(2, kDebugMinigames, "MinigameManager::new_game(): new game skiped");
return false;
@@ -334,7 +334,7 @@ class TempValue {
qdMinigameSceneInterface *pre_scene_;
MinigameManager *pre_runtime_;
public:
- TempValue(MinigameManager* new_runtime, const qdEngineInterface* new_engine, qdMinigameSceneInterface* new_scene) {
+ TempValue(MinigameManager *new_runtime, const qdEngineInterface *new_engine, qdMinigameSceneInterface *new_scene) {
assert(new_runtime);
pre_runtime_ = runtime;
runtime = new_runtime;
@@ -356,7 +356,7 @@ public:
#define TEMP_SCENE_ENTER() TempValue tempSceneObject(this, engine, const_cast<qdMinigameSceneInterface*>(scene))
-int MinigameManager::save_game(const qdEngineInterface* engine, const qdMinigameSceneInterface* scene, char* buffer, int buffer_size) {
+int MinigameManager::save_game(const qdEngineInterface *engine, const qdMinigameSceneInterface *scene, char *buffer, int buffer_size) {
debugC(2, kDebugMinigames, "MinigameManager::save_game(): save game");
TEMP_SCENE_ENTER();
loadState();
@@ -372,7 +372,7 @@ int MinigameManager::save_game(const qdEngineInterface* engine, const qdMinigame
}
-int MinigameManager::load_game(const qdEngineInterface* engine, const qdMinigameSceneInterface* scene, const char* buffer, int buffer_size) {
+int MinigameManager::load_game(const qdEngineInterface *engine, const qdMinigameSceneInterface *scene, const char *buffer, int buffer_size) {
assert(!game_);
if (game_) {
debugC(2, kDebugMinigames, "MinigameManager::load_game(): load game skiped");
@@ -468,7 +468,7 @@ bool MinigameManager::loadState(bool current) {
return true;
}
-extern bool createDirForFile(const char* partialPath);
+extern bool createDirForFile(const char *partialPath);
void MinigameManager::saveState(bool force) {
debugC(2, kDebugMinigames, "MinigameManager::save_state(): save state");
@@ -632,7 +632,7 @@ bool MinigameManager::testAllGamesWin() {
--xbuf;
int game;
xbuf >= game;
- const MinigameData* data = getScore(level, game);
+ const MinigameData *data = getScore(level, game);
if (!data || data->sequenceIndex_ == -1)
return false;
}
@@ -696,7 +696,7 @@ void MinigameManager::gameLose() {
state_flag_->set_state("lose");
}
-const char *MinigameManager::parameter(const char* name, bool required) const {
+const char *MinigameManager::parameter(const char *name, bool required) const {
if (!scene_)
error("MinigameManager::parameter(): Scene is undefined");
@@ -765,12 +765,12 @@ mgVect2f MinigameManager::world2game(const mgVect3f& pos) const {
return mgVect2f(scr.x, scr.y);
}
-mgVect3f MinigameManager::world2game(qdMinigameObjectInterface* obj) const {
+mgVect3f MinigameManager::world2game(qdMinigameObjectInterface *obj) const {
mgVect2i scr = obj->screen_R();
return mgVect3f(scr.x, scr.y, round(getDepth(obj)));
}
-mgVect2f MinigameManager::getSize(qdMinigameObjectInterface* obj) const {
+mgVect2f MinigameManager::getSize(qdMinigameObjectInterface *obj) const {
if (obj) {
mgVect2i size = obj->screen_size();
return mgVect2f(size.x, size.y);
@@ -778,12 +778,12 @@ mgVect2f MinigameManager::getSize(qdMinigameObjectInterface* obj) const {
return mgVect2f();
}
-void MinigameManager::setDepth(qdMinigameObjectInterface* obj, int depth) const {
+void MinigameManager::setDepth(qdMinigameObjectInterface *obj, int depth) const {
mgVect2i scr = obj->screen_R();
obj->set_R(scene_->screen2world_coords(scr, depth));
}
-float MinigameManager::getDepth(qdMinigameObjectInterface* obj) const {
+float MinigameManager::getDepth(qdMinigameObjectInterface *obj) const {
return scene_->screen_depth(obj->R());
}
@@ -797,7 +797,7 @@ QDObject MinigameManager::getObject(const char *name) const {
if (!name || !*name)
return QDObject::ZERO;
- qdMinigameObjectInterface* obj = scene_->object_interface(name);
+ qdMinigameObjectInterface *obj = scene_->object_interface(name);
if (!obj)
warning("MinigameManager::getObject(): Object '%s' not found", transCyrillic(name));
@@ -806,8 +806,8 @@ QDObject MinigameManager::getObject(const char *name) const {
return QDObject::ZERO;
}
-bool MinigameManager::testObject(const char* name) const {
- if (qdMinigameObjectInterface * obj = scene_->object_interface(name)) {
+bool MinigameManager::testObject(const char *name) const {
+ if (qdMinigameObjectInterface *obj = scene_->object_interface(name)) {
scene_->release_object_interface(obj);
return true;
}
@@ -821,8 +821,8 @@ void MinigameManager::release(QDObject& obj) {
}
}
-QDCounter MinigameManager::getCounter(const char* name) {
- qdMinigameCounterInterface* counter = engine_->counter_interface(name);
+QDCounter MinigameManager::getCounter(const char *name) {
+ qdMinigameCounterInterface *counter = engine_->counter_interface(name);
if (!counter)
warning("MinigameManager::getCounter(): Counter '%s' not found", transCyrillic(name));
@@ -838,18 +838,18 @@ void MinigameManager::release(QDCounter& counter) {
counter = 0;
}
-void MinigameManager::setText(const char* name, const char* text) const {
+void MinigameManager::setText(const char *name, const char *text) const {
engine_->set_interface_text(0, name, text);
}
-void MinigameManager::setText(const char* name, int toText, const char* format) const {
+void MinigameManager::setText(const char *name, int toText, const char *format) const {
char text[16];
text[15] = 0;
snprintf(text, 15, format, toText);
setText(name, text);
}
-void MinigameManager::hide(qdMinigameObjectInterface* obj) const {
+void MinigameManager::hide(qdMinigameObjectInterface *obj) const {
obj->set_R(scene_->screen2world_coords(mgVect2i(-10000, -10000), getDepth(obj)));
}
@@ -889,7 +889,7 @@ int MinigameManager::rnd(const Std::vector<float> &prob) const {
// еÑли даннÑе еÑе ни ÑÐ°Ð·Ñ Ð½Ðµ ÑоÑ
ÑанÑлиÑÑ - запоминаем
// еÑли Ñже еÑÑÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½ÐµÐ½Ð½Ñе, Ñо заменÑем на ниÑ
-bool MinigameManager::processGameData(Common::MemoryWriteStream& data) {
+bool MinigameManager::processGameData(Common::MemoryWriteStream &data) {
warning("STUB: MinigameManager::processGameData()");
#if 0
if (currentGameInfo_) {
@@ -955,7 +955,7 @@ void GameInfo::free() {
dataSize_ = 0;
}
-void GameInfo::write(void* data, unsigned int size) {
+void GameInfo::write(void *data, uint size) {
if (dataSize_ != size) {
free();
if (size > 0) {
@@ -987,7 +987,7 @@ XStream &operator> (XStream& in, GameInfo& info) {
if (!info.empty_) {
in.read(info.timeManagerData_);
in.read(info.effectManagerData_);
- unsigned int size;
+ uint size;
in > size;
XBuffer buf(size);
in.read(buf.buffer(), size);
@@ -1013,7 +1013,7 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
if (const char *data = runtime->parameter("time_bar"))
timeBar_ = runtime->getObject(data);
- if (const char * data = runtime->parameter("time_cost"))
+ if (const char *data = runtime->parameter("time_cost"))
sscanf(data, "%f", &timeCost_);
}
diff --git a/engines/qdengine/minigames/adv/RunTime.h b/engines/qdengine/minigames/adv/RunTime.h
index 647556aed6e..08b58ce421a 100644
--- a/engines/qdengine/minigames/adv/RunTime.h
+++ b/engines/qdengine/minigames/adv/RunTime.h
@@ -62,7 +62,7 @@ struct MinigameData {
struct GameInfo {
GameInfo();
- void write(void* data, unsigned int size);
+ void write(void *data, uint size);
void free();
static int version() {
return 9;
@@ -75,7 +75,7 @@ struct GameInfo {
bool empty_;
TimeManagerData timeManagerData_;
EffectManagerData effectManagerData_;
- unsigned int dataSize_;
+ uint dataSize_;
void *gameData_;
};
Commit: 41bc48163906a1f7860f731279a0e3e78b983522
https://github.com/scummvm/scummvm/commit/41bc48163906a1f7860f731279a0e3e78b983522
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-19T19:45:31+02:00
Commit Message:
QDENGINE: runtime -> g_runtime in minigames/adv
Changed paths:
engines/qdengine/minigames/adv/EffectManager.cpp
engines/qdengine/minigames/adv/EventManager.cpp
engines/qdengine/minigames/adv/ExportInterface.cpp
engines/qdengine/minigames/adv/FlyObject.cpp
engines/qdengine/minigames/adv/ObjectContainer.cpp
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/TextManager.cpp
engines/qdengine/minigames/adv/common.cpp
engines/qdengine/minigames/adv/common.h
engines/qdengine/minigames/adv/m_karaoke.cpp
engines/qdengine/minigames/adv/m_puzzle.cpp
engines/qdengine/minigames/adv/m_swap.cpp
engines/qdengine/minigames/adv/m_triangles.cpp
diff --git a/engines/qdengine/minigames/adv/EffectManager.cpp b/engines/qdengine/minigames/adv/EffectManager.cpp
index 4e2dcd2dfe5..968d96414c9 100644
--- a/engines/qdengine/minigames/adv/EffectManager.cpp
+++ b/engines/qdengine/minigames/adv/EffectManager.cpp
@@ -26,12 +26,12 @@
namespace QDEngine {
EffectManager::EffectManager(HoldData<EffectManagerData> &data) {
- const char *effectName = runtime->parameter("effect_name", "effect");
- if (runtime->testObject(effectName)) {
- _effect = runtime->getObject(effectName);
+ const char *effectName = g_runtime->parameter("effect_name", "effect");
+ if (g_runtime->testObject(effectName)) {
+ _effect = g_runtime->getObject(effectName);
_data.crd = _effect->R();
_effect->set_screen_scale(mgVect2f(0.01f, 0.01f), mgVect2f(10000.f, 10000.f));
- runtime->hide(_effect);
+ g_runtime->hide(_effect);
}
data.process(_data);
@@ -45,7 +45,7 @@ EffectManager::EffectManager(HoldData<EffectManagerData> &data) {
}
EffectManager::~EffectManager() {
- runtime->release(_effect);
+ g_runtime->release(_effect);
}
@@ -53,13 +53,13 @@ void EffectManager::quant(float dt) {
if (_current == EFFECT_COUNT)
return;
- if (runtime->getTime() > _effectTimer) {
+ if (g_runtime->getTime() > _effectTimer) {
stop(_current);
return;
}
- if (runtime->getTime() > _phaseTimer) {
- _phaseTimer = runtime->getTime() + _phaseTime;
+ if (g_runtime->getTime() > _phaseTimer) {
+ _phaseTimer = g_runtime->getTime() + _phaseTime;
mgVect2f scale = _effect->screen_scale();
mgVect2f speed = scale;
scale *= _phaseSpeed;
@@ -73,9 +73,9 @@ void EffectManager::quant(float dt) {
void EffectManager::start(EffectType id) {
if (_current != EFFECT_COUNT || !_effect)
return;
- _effectTimer = runtime->getTime() + _effectTime;
+ _effectTimer = g_runtime->getTime() + _effectTime;
_current = id;
- _phaseTimer = runtime->getTime();
+ _phaseTimer = g_runtime->getTime();
_effect->set_screen_scale(mgVect2f(0.02f, 0.02f), mgVect2f(10000.f, 10000.f));
_effect->set_R(_data.crd);
@@ -84,7 +84,7 @@ void EffectManager::start(EffectType id) {
void EffectManager::stop(EffectType id) {
if (_current == EFFECT_COUNT)
return;
- runtime->hide(_effect);
+ g_runtime->hide(_effect);
_effect->set_screen_scale(mgVect2f(0.01f, 0.01f), mgVect2f(10000.f, 10000.f));
_current = EFFECT_COUNT;
}
diff --git a/engines/qdengine/minigames/adv/EventManager.cpp b/engines/qdengine/minigames/adv/EventManager.cpp
index 64fdf6c1164..b7decb7069d 100644
--- a/engines/qdengine/minigames/adv/EventManager.cpp
+++ b/engines/qdengine/minigames/adv/EventManager.cpp
@@ -43,8 +43,8 @@ EventManager::EventManager() {
for (int idx = 0;; ++idx) {
snprintf(str_cache, 127, "register_trigger_%d", idx);
- if (const char *descr = runtime->parameter(str_cache, false))
- _triggerEvents.push_back(runtime->getObject(descr));
+ if (const char *descr = g_runtime->parameter(str_cache, false))
+ _triggerEvents.push_back(g_runtime->getObject(descr));
else
break;
}
@@ -53,7 +53,7 @@ EventManager::EventManager() {
_eventPresets.resize(SYSTEM_EVENTS_SIZE);
for (int idx = 0; idx < SYSTEM_EVENTS_SIZE; ++idx) {
snprintf(str_cache, 127, "system_event_%d", idx);
- if (const char * descr = runtime->parameter(str_cache, false)) {
+ if (const char * descr = g_runtime->parameter(str_cache, false)) {
EventPreset preset;
int read = sscanf(descr, "%d %d", &preset.score, &preset.triggerEventID);
@@ -72,7 +72,7 @@ EventManager::EventManager() {
for (int idx = 0;; ++idx) {
snprintf(str_cache, 127, "register_event_%d", idx);
- if (const char * descr = runtime->parameter(str_cache, false)) {
+ if (const char * descr = g_runtime->parameter(str_cache, false)) {
EventPreset preset;
int read = sscanf(descr, "%d %d %d %d", &preset.score, &preset.fontID, &preset.escapeID, &preset.triggerEventID);
@@ -91,7 +91,7 @@ EventManager::EventManager() {
}
debugC(2, kDebugMinigames, "EventManager(): registered %d events", _eventPresets.size());
- if (const char * data = runtime->parameter("allow_negative", false)) {
+ if (const char * data = g_runtime->parameter("allow_negative", false)) {
int tmp;
sscanf(data, "%d", &tmp);
_enableNegative = tmp;
@@ -105,7 +105,7 @@ void EventManager::sysEvent(int eventID) {
assert(eventID < SYSTEM_EVENTS_SIZE);
- mgVect2i pos = runtime->screenSize() / 2;
+ mgVect2i pos = g_runtime->screenSize() / 2;
event(eventID - SYSTEM_EVENTS_SIZE, mgVect2f(pos.x, pos.y), 1);
}
@@ -128,7 +128,7 @@ void EventManager::event(int eventID, const mgVect2f& pos, int factor) {
int diff = addScore(pr.score);
if (pr.fontID >= 0 && pr.escapeID >= 0 && diff != 0)
- runtime->textManager().showNumber(diff, pos, pr.fontID, pr.escapeID);
+ g_runtime->textManager().showNumber(diff, pos, pr.fontID, pr.escapeID);
}
}
@@ -142,7 +142,7 @@ int EventManager::addScore(int sc) {
diff = _score - diff;
if (diff)
- runtime->textManager().updateScore(_score);
+ g_runtime->textManager().updateScore(_score);
return diff;
}
diff --git a/engines/qdengine/minigames/adv/ExportInterface.cpp b/engines/qdengine/minigames/adv/ExportInterface.cpp
index b5d29fef219..ab462757ab9 100644
--- a/engines/qdengine/minigames/adv/ExportInterface.cpp
+++ b/engines/qdengine/minigames/adv/ExportInterface.cpp
@@ -28,20 +28,20 @@
namespace QDEngine {
qdMiniGameInterface *open_game_interface(const char* name) {
- debugC(3, kDebugMinigames, "open_game_interface: %s, runtime%s", name, runtime ? "!=0" : "==0");
+ debugC(3, kDebugMinigames, "open_game_interface: %s, runtime%s", name, g_runtime ? "!=0" : "==0");
- if (!runtime)
- return runtime = new MinigameManager;
+ if (!g_runtime)
+ return g_runtime = new MinigameManager;
return new MinigameManager;
}
bool close_game_interface(qdMiniGameInterface* game) {
- debugC(3, kDebugMinigames, "close_game_interface, runtime%s%s", runtime == game ? "==game" : "!=game", runtime ? "!=0" : "==0");
+ debugC(3, kDebugMinigames, "close_game_interface, runtime%s%s", g_runtime == game ? "==game" : "!=game", g_runtime ? "!=0" : "==0");
delete game;
- if (game == runtime)
- runtime = 0;
+ if (game == g_runtime)
+ g_runtime = 0;
return true;
}
diff --git a/engines/qdengine/minigames/adv/FlyObject.cpp b/engines/qdengine/minigames/adv/FlyObject.cpp
index e34f5974e7b..0acdb10a3c4 100644
--- a/engines/qdengine/minigames/adv/FlyObject.cpp
+++ b/engines/qdengine/minigames/adv/FlyObject.cpp
@@ -49,7 +49,7 @@ bool FlyObjectBase::quant(float dt) {
bool FlyQDObject::quant(float dt, QDObject& obj) {
bool ret = FlyObjectBase::quant(dt);
- obj->set_R(runtime->game2world(current, depth));
+ obj->set_R(g_runtime->game2world(current, depth));
return ret;
}
diff --git a/engines/qdengine/minigames/adv/ObjectContainer.cpp b/engines/qdengine/minigames/adv/ObjectContainer.cpp
index 0fda76c9260..9a3f05ca9a1 100644
--- a/engines/qdengine/minigames/adv/ObjectContainer.cpp
+++ b/engines/qdengine/minigames/adv/ObjectContainer.cpp
@@ -33,7 +33,7 @@ ObjectContainer::ObjectContainer() {
void ObjectContainer::release() {
for (auto &it : _objects)
- runtime->release(it);
+ g_runtime->release(it);
_objects.clear();
_current = 0;
@@ -53,7 +53,7 @@ const char *ObjectContainer::name() const {
}
bool ObjectContainer::load(const char* base_name, bool hide) {
- if (!runtime->testObject(base_name)) {
+ if (!g_runtime->testObject(base_name)) {
warning("ObjectContainer::load(): Object '%s' not found", transCyrillic(base_name));
return false;
}
@@ -62,21 +62,21 @@ bool ObjectContainer::load(const char* base_name, bool hide) {
_name = base_name;
#endif
- QDObject obj = runtime->getObject(base_name);
- _coord = runtime->world2game(obj);
+ QDObject obj = g_runtime->getObject(base_name);
+ _coord = g_runtime->world2game(obj);
pushObject(obj);
if (hide)
- runtime->hide(obj);
+ g_runtime->hide(obj);
char name[128];
name[127] = 0;
for (int dubl = 0; ; ++dubl) {
snprintf(name, 127, "%s%04d", base_name, dubl);
- if (runtime->testObject(name)) {
- obj = runtime->getObject(name);
+ if (g_runtime->testObject(name)) {
+ obj = g_runtime->getObject(name);
pushObject(obj);
if (hide)
- runtime->hide(obj);
+ g_runtime->hide(obj);
} else
break;
}
@@ -86,7 +86,7 @@ bool ObjectContainer::load(const char* base_name, bool hide) {
void ObjectContainer::hideAll() {
for (auto &it : _objects)
- runtime->hide(it);
+ g_runtime->hide(it);
}
QDObject ObjectContainer::getObject() {
@@ -103,7 +103,7 @@ void ObjectContainer::releaseObject(QDObject& obj) {
if ((int)Common::distance(_objects.begin(), it) >= _current)
error("ObjectContainer::releaseObject(): Object released more than once in to the pool: %s", transCyrillic(name()));
- runtime->hide(obj);
+ g_runtime->hide(obj);
if (_current > 0)
SWAP(*it, _objects[--_current]);
obj = 0;
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 1441455b0c6..436a024525d 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -340,15 +340,15 @@ public:
runtime = new_runtime;
assert(new_engine && new_scene);
- pre_engine_ = runtime->engine_;
- pre_scene_ = runtime->scene_;
+ pre_engine_ = g_runtime->engine_;
+ pre_scene_ = g_runtime->scene_;
- runtime->engine_ = new_engine;
- runtime->scene_ = new_scene;
+ g_runtime->engine_ = new_engine;
+ g_runtime->scene_ = new_scene;
}
~TempValue() {
- runtime->engine_ = pre_engine_;
- runtime->scene_ = pre_scene_;
+ g_runtime->engine_ = pre_engine_;
+ g_runtime->scene_ = pre_scene_;
runtime = pre_runtime_;
}
@@ -862,7 +862,7 @@ int MinigameManager::rnd(int min, int max) const {
}
int MinigameManager::rnd(const Std::vector<float> &prob) const {
- float rnd = runtime->rnd(0.f, .9999f);
+ float rnd = g_runtime->rnd(0.f, .9999f);
float accum = 0.f;
int idx = 0;
int size = prob.size();
@@ -1001,7 +1001,7 @@ XStream &operator> (XStream& in, GameInfo& info) {
TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
- if (const char *data = runtime->parameter("game_time", false)) {
+ if (const char *data = g_runtime->parameter("game_time", false)) {
if (sscanf(data, "%f", &gameTime_) != 1)
gameTime_ = -1.f;
} else
@@ -1010,23 +1010,23 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
timeCost_ = 0.f;
if (gameTime_ > 0) {
- if (const char *data = runtime->parameter("time_bar"))
- timeBar_ = runtime->getObject(data);
+ if (const char *data = g_runtime->parameter("time_bar"))
+ timeBar_ = g_runtime->getObject(data);
- if (const char *data = runtime->parameter("time_cost"))
+ if (const char *data = g_runtime->parameter("time_cost"))
sscanf(data, "%f", &timeCost_);
}
if (timeBar_) {
TimeManagerData myData;
- myData.crd = runtime->world2game(timeBar_);
+ myData.crd = g_runtime->world2game(timeBar_);
data_.process(myData);
startPos_ = myData.crd;
- size_ = runtime->getSize(timeBar_);
+ size_ = g_runtime->getSize(timeBar_);
- if (const char *data = runtime->parameter("time_bar_direction")) {
+ if (const char *data = g_runtime->parameter("time_bar_direction")) {
int dir;
if (sscanf(data, "%d", &dir) == 1) {
assert(dir >= 0 && dir <= 3);
@@ -1038,7 +1038,7 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
} else
size_ = mgVect2f(-1.f, -1.f);
- assert(runtime->getTime() == 0.f);
+ assert(g_runtime->getTime() == 0.f);
lastEventTime_ = 0;
@@ -1046,13 +1046,13 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data_) {
TimeManager::~TimeManager() {
if (timeBar_)
- runtime->release(timeBar_);
+ g_runtime->release(timeBar_);
}
bool TimeManager::timeIsOut() const {
if (gameTime_ > 0.f)
- return runtime->getTime() > gameTime_;
+ return g_runtime->getTime() > gameTime_;
return false;
}
@@ -1060,33 +1060,33 @@ bool TimeManager::timeIsOut() const {
float TimeManager::leftTime() const {
if (gameTime_ <= 0.f)
return 0;
- return runtime->getTime() > gameTime_ ? 0 : gameTime_ - runtime->getTime();
+ return g_runtime->getTime() > gameTime_ ? 0 : gameTime_ - g_runtime->getTime();
}
void TimeManager::quant(float dt) {
- int seconds = round(runtime->getTime());
+ int seconds = round(g_runtime->getTime());
if (seconds != lastEventTime_) {
lastEventTime_ = seconds;
- runtime->textManager().updateTime(seconds);
+ g_runtime->textManager().updateTime(seconds);
int amountSeconds = round(leftTime());
if (gameTime_ < 0.f || amountSeconds > 10)
if (seconds % 60 == 0)
- runtime->signal(EVENT_TIME_60_SECOND_TICK);
+ g_runtime->signal(EVENT_TIME_60_SECOND_TICK);
else if (seconds % 10 == 0)
- runtime->signal(EVENT_TIME_10_SECOND_TICK);
+ g_runtime->signal(EVENT_TIME_10_SECOND_TICK);
else
- runtime->signal(EVENT_TIME_1_SECOND_TICK);
+ g_runtime->signal(EVENT_TIME_1_SECOND_TICK);
else if (amountSeconds == 10)
- runtime->signal(EVENT_TIME_10_SECOND_LEFT);
+ g_runtime->signal(EVENT_TIME_10_SECOND_LEFT);
else
- runtime->signal(EVENT_TIME_LESS_10_SECOND_LEFT_SECOND_TICK);
+ g_runtime->signal(EVENT_TIME_LESS_10_SECOND_LEFT_SECOND_TICK);
}
if (gameTime_ <= 0.f || !timeBar_)
return;
- float phase = clamp(runtime->getTime() / gameTime_, 0.f, 1.f);
+ float phase = clamp(g_runtime->getTime() / gameTime_, 0.f, 1.f);
mgVect3f pos;
switch (direction_) {
case UP:
@@ -1105,7 +1105,7 @@ void TimeManager::quant(float dt) {
pos += startPos_;
- timeBar_->set_R(runtime->game2world(pos));
+ timeBar_->set_R(g_runtime->game2world(pos));
}
} // namespace QDEngine
diff --git a/engines/qdengine/minigames/adv/TextManager.cpp b/engines/qdengine/minigames/adv/TextManager.cpp
index 307eb7f3f45..0b0006c6aa6 100644
--- a/engines/qdengine/minigames/adv/TextManager.cpp
+++ b/engines/qdengine/minigames/adv/TextManager.cpp
@@ -34,7 +34,7 @@ TextManager::TextManager() {
for (int idx = 0;; ++idx) {
snprintf(str_cache, 127, "register_font_%d", idx);
- if (const char * descr = runtime->parameter(str_cache, false)) {
+ if (const char * descr = g_runtime->parameter(str_cache, false)) {
sscanf(descr, "%255s", str_cache);
Font digit;
if (!digit.pool.load(str_cache))
@@ -43,14 +43,14 @@ TextManager::TextManager() {
debugCN(2, kDebugMinigames, "TextManager(): %d character set \"%s\" loaded, ", idx, str_cache);
snprintf(str_cache, 127, "font_size_%d", idx);
- if ((descr = runtime->parameter(str_cache, false))) {
+ if ((descr = g_runtime->parameter(str_cache, false))) {
int read = sscanf(descr, "%f %f", &digit.size.x, &digit.size.y);
if (read != 2)
warning("TextManager(): incorrect font size definition in [%s]", str_cache);
} else {
QDObject obj = digit.pool.getObject();
obj.setState("0");
- digit.size = runtime->getSize(obj);
+ digit.size = g_runtime->getSize(obj);
digit.pool.releaseObject(obj);
}
debugC(2, kDebugMinigames, "set size to (%5.1f, %5.1f)\n", digit.size.x, digit.size.y);
@@ -61,7 +61,7 @@ TextManager::TextManager() {
for (int idx = 0;; ++idx) {
snprintf(str_cache, 127, "register_particle_escape_%d", idx);
- if (const char * descr = runtime->parameter(str_cache, false)) {
+ if (const char * descr = g_runtime->parameter(str_cache, false)) {
Escape escape;
int read = sscanf(descr, "%d (%f><%f, %f><%f) (%f><%f, %f><%f) %f '%15s",
&escape.depth,
@@ -98,7 +98,7 @@ TextManager::TextManager() {
}
bool TextManager::getStaticPreset(StaticTextPreset& preset, const char* name) const {
- if (const char * descr = runtime->parameter(name, false)) {
+ if (const char * descr = g_runtime->parameter(name, false)) {
int align = 0;
char str[64];
str[63] = 0;
@@ -134,9 +134,9 @@ bool TextManager::getStaticPreset(StaticTextPreset& preset, const char* name) co
break;
}
- if (QDObject obj = runtime->getObject(pos_obj)) {
- preset.pos = runtime->world2game(obj);
- runtime->release(obj);
+ if (QDObject obj = g_runtime->getObject(pos_obj)) {
+ preset.pos = g_runtime->world2game(obj);
+ g_runtime->release(obj);
} else
return false;
} else
@@ -192,10 +192,10 @@ void TextManager::showText(const char* txt, const mgVect2f& pos, int fontID, int
msg._depth = es.depth;
msg._pos = pos;
- msg._vel.x = runtime->rnd(es.vel_min.x, es.vel_max.x);
- msg._vel.y = runtime->rnd(es.vel_min.y, es.vel_max.y);
- msg._accel.x = runtime->rnd(es.accel_min.x, es.accel_max.x);
- msg._accel.y = runtime->rnd(es.accel_min.y, es.accel_max.y);
+ msg._vel.x = g_runtime->rnd(es.vel_min.x, es.vel_max.x);
+ msg._vel.y = g_runtime->rnd(es.vel_min.y, es.vel_max.y);
+ msg._accel.x = g_runtime->rnd(es.accel_min.x, es.accel_max.x);
+ msg._accel.y = g_runtime->rnd(es.accel_min.y, es.accel_max.y);
_flowMsgs.push_back(msg);
}
@@ -292,15 +292,15 @@ void TextManager::StaticMessage::update() {
default:
break;
}
- if (y < -_font->size.y || y > runtime->screenSize().y + _font->size.y
- || x < -2 * width || x > runtime->screenSize().x + 2 * width) {
+ if (y < -_font->size.y || y > g_runtime->screenSize().y + _font->size.y
+ || x < -2 * width || x > g_runtime->screenSize().x + 2 * width) {
release();
return;
}
for (auto &it : _objects) {
if (it)
- it->set_R(runtime->game2world(mgVect2f(x, y), _depth));
+ it->set_R(g_runtime->game2world(mgVect2f(x, y), _depth));
x += _font->size.x;
}
}
@@ -342,7 +342,7 @@ void TextManager::quant(float dt) {
}
if (_show_scores.textID >= 0) {
- if (_scoreUpdateTimer >= 0.f && _scoreUpdateTimer <= runtime->getTime()) {
+ if (_scoreUpdateTimer >= 0.f && _scoreUpdateTimer <= g_runtime->getTime()) {
int sgn = _targetScore - _currentScore < 0 ? -1 : 1;
int mod = abs(_currentScore - _targetScore);
_currentScore += sgn * (mod / 10 + 1);
@@ -352,7 +352,7 @@ void TextManager::quant(float dt) {
snprintf(buf, 15, _show_scores.format, _currentScore);
updateStaticText(_show_scores.textID, buf);
- _scoreUpdateTimer = _currentScore != _targetScore ? runtime->getTime() + _scoreUpdateTime : -1.f;
+ _scoreUpdateTimer = _currentScore != _targetScore ? g_runtime->getTime() + _scoreUpdateTime : -1.f;
}
}
}
@@ -360,7 +360,7 @@ void TextManager::quant(float dt) {
void TextManager::updateScore(int score) {
_targetScore = score;
if (_scoreUpdateTimer < 0.f)
- _scoreUpdateTimer = runtime->getTime();
+ _scoreUpdateTimer = g_runtime->getTime();
}
void TextManager::updateTime(int seconds) {
diff --git a/engines/qdengine/minigames/adv/common.cpp b/engines/qdengine/minigames/adv/common.cpp
index 22acb55fa2f..8635ce9afdf 100644
--- a/engines/qdengine/minigames/adv/common.cpp
+++ b/engines/qdengine/minigames/adv/common.cpp
@@ -39,7 +39,7 @@ bool QDObject::hit(const mgVect2f& point) const {
}
float QDObject::depth() const {
- return runtime->getDepth(_obj);
+ return g_runtime->getDepth(_obj);
}
void QDObject::setState(const char* name) {
@@ -64,7 +64,7 @@ bool getParameter(const char* name, T& out, bool obligatory) {
template<>
float getParameter(const char* name, const float &defValue) {
- if (const char *data = runtime->parameter(name, false)) {
+ if (const char *data = g_runtime->parameter(name, false)) {
float retValue = defValue;
if (sscanf(data, "%f", &retValue) == 1)
return retValue;
@@ -76,7 +76,7 @@ float getParameter(const char* name, const float &defValue) {
template<>
bool getParameter(const char* name, float &out, bool obligatory) {
- if (const char * data = runtime->parameter(name, obligatory)) {
+ if (const char * data = g_runtime->parameter(name, obligatory)) {
float retValue = out;
if (sscanf(data, "%f", &retValue) == 1) {
out = retValue;
@@ -90,7 +90,7 @@ bool getParameter(const char* name, float &out, bool obligatory) {
template<>
mgVect2f getParameter(const char* name, const mgVect2f& defValue) {
- if (const char * data = runtime->parameter(name, false)) {
+ if (const char * data = g_runtime->parameter(name, false)) {
mgVect2f retValue = defValue;
if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2)
return retValue;
@@ -102,7 +102,7 @@ mgVect2f getParameter(const char* name, const mgVect2f& defValue) {
template<>
bool getParameter(const char* name, mgVect2f& out, bool obligatory) {
- if (const char * data = runtime->parameter(name, obligatory)) {
+ if (const char * data = g_runtime->parameter(name, obligatory)) {
mgVect2f retValue = out;
if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2) {
out = retValue;
diff --git a/engines/qdengine/minigames/adv/common.h b/engines/qdengine/minigames/adv/common.h
index 238cd8fa0c9..6a8c8f11d3c 100644
--- a/engines/qdengine/minigames/adv/common.h
+++ b/engines/qdengine/minigames/adv/common.h
@@ -75,7 +75,7 @@ typedef Std::vector<int> Indexes;
typedef Std::vector<mgVect3f> Coords;
class MinigameManager;
-extern MinigameManager *runtime;
+extern MinigameManager *g_runtime;
template<class T>
T getParameter(const char* name, const T& defValue);
diff --git a/engines/qdengine/minigames/adv/m_karaoke.cpp b/engines/qdengine/minigames/adv/m_karaoke.cpp
index 24d39056eb9..c4ce3449b11 100644
--- a/engines/qdengine/minigames/adv/m_karaoke.cpp
+++ b/engines/qdengine/minigames/adv/m_karaoke.cpp
@@ -37,11 +37,11 @@ Karaoke::Node::Node() {
Karaoke::Karaoke() {
- controlName_ = runtime->parameter("control_name", true);
+ controlName_ = g_runtime->parameter("control_name", true);
if (!controlName_ || !*controlName_)
return;
- colorReaded_ = runtime->parameter("color_first", true);
+ colorReaded_ = g_runtime->parameter("color_first", true);
if (!colorReaded_ || !*colorReaded_)
return;
@@ -119,7 +119,7 @@ Karaoke::Karaoke() {
}
};
- const char *fileName = runtime->parameter("text_file", true);
+ const char *fileName = g_runtime->parameter("text_file", true);
if (!fileName)
return;
@@ -188,10 +188,10 @@ void Karaoke::quant(float dt) {
++idx;
}
- if (runtime->mouseRightPressed())
+ if (g_runtime->mouseRightPressed())
debugC(2, kDebugMinigames, "%s", outText.c_str());
- runtime->setText(controlName_, outText.c_str());
+ g_runtime->setText(controlName_, outText.c_str());
}
} // namespace QDEngine
diff --git a/engines/qdengine/minigames/adv/m_puzzle.cpp b/engines/qdengine/minigames/adv/m_puzzle.cpp
index 2cd15352126..4db0531f423 100644
--- a/engines/qdengine/minigames/adv/m_puzzle.cpp
+++ b/engines/qdengine/minigames/adv/m_puzzle.cpp
@@ -74,7 +74,7 @@ Puzzle::Puzzle() {
angles_ = getParameter("angles", 4);
xassert(angles_ > 0 && angles_ < 10);
- if (!(stackBottom_ = runtime->getObject(runtime->parameter("inventory_bottom"))))
+ if (!(stackBottom_ = g_runtime->getObject(g_runtime->parameter("inventory_bottom"))))
return;
if (!getParameter("inventory_size", stackSize_, true))
return;
@@ -85,13 +85,13 @@ Puzzle::Puzzle() {
return;
} else
rotateTimePeriod_ = 86400; // ÑÑÑки
- nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
+ nextRotateTime_ = g_runtime->getTime() + rotateTimePeriod_;
flySpeed_ = getParameter("inventory_drop_speed", 240.f);
xassert(flySpeed_ > 0.f);
returnSpeed_ = getParameter("inventory_return_speed", -1.f);
- const char *name_begin = runtime->parameter("obj_name_begin", "obj_");
+ const char *name_begin = g_runtime->parameter("obj_name_begin", "obj_");
char buf[128];
buf[127] = 0;
@@ -101,14 +101,14 @@ Puzzle::Puzzle() {
_snprintf(buf, 127, "%s%02d", name_begin, idx + 1);
Node node;
- node.obj = runtime->getObject(buf);
+ node.obj = g_runtime->getObject(buf);
- if (runtime->debugMode()) {
+ if (g_runtime->debugMode()) {
node.pos = nodes_.size();
node.angle = 0;
field_[node.pos] = node.pos;
} else
- node.angle = runtime->rnd(0, angles_ - 1);
+ node.angle = g_runtime->rnd(0, angles_ - 1);
node.obj.setState(getStateName(node.angle, false, true));
gameData.write(node.obj->R());
@@ -116,7 +116,7 @@ Puzzle::Puzzle() {
nodes_.push_back(node);
}
- if (!runtime->processGameData(gameData))
+ if (!g_runtime->processGameData(gameData))
return;
for (int idx = 0; idx < gameSize_; ++idx) {
@@ -126,10 +126,10 @@ Puzzle::Puzzle() {
positions_.push_back(crd);
}
- if (runtime->debugMode())
+ if (g_runtime->debugMode())
nodes_[0].angle = angles_ - 1;
- size_ = runtime->getSize(nodes_[0].obj);
+ size_ = g_runtime->getSize(nodes_[0].obj);
debugC(2, kDebugMinigames, "size = (%6.2f,%6.2f)", size_.x, size_.y);
depth_ = nodes_[0].obj.depth();
@@ -142,8 +142,8 @@ Puzzle::Puzzle() {
pickedItem_ = -1;
mouseObjPose_ = stidx(stackSize_ + 1);
- inField_ = runtime->debugMode() ? nodes_.size() : 0;
- nextObjTime_ = runtime->getTime();
+ inField_ = g_runtime->debugMode() ? nodes_.size() : 0;
+ nextObjTime_ = g_runtime->getTime();
setState(MinigameInterface::RUNNING);
}
@@ -151,9 +151,9 @@ Puzzle::Puzzle() {
Puzzle::~Puzzle() {
Nodes::iterator it;
FOR_EACH(nodes_, it)
- runtime->release(it->obj);
+ g_runtime->release(it->obj);
- runtime->release(stackBottom_);
+ g_runtime->release(stackBottom_);
}
void Puzzle::rotate(int item) {
@@ -208,15 +208,15 @@ void Puzzle::put(int where, int what, float flowSpeed) {
flyObj->data = what;
mgVect3f from = isOnMouse(node) ? node.obj->R() : start < -1 ? stackPosition(stidx(start)) : position(start);
- flyObj->current = runtime->world2game(from);
+ flyObj->current = g_runtime->world2game(from);
node.obj->set_R(from);
flyObj->speed = flowSpeed;
}
mgVect3f to = where < -1 ? stackPosition(stidx(where)) : position(where);
- flyObj->target = runtime->world2game(to);
- flyObj->depth = runtime->getDepth(to);
+ flyObj->target = g_runtime->world2game(to);
+ flyObj->depth = g_runtime->getDepth(to);
}
if (where >= 0)
@@ -232,27 +232,27 @@ void Puzzle::putOnStack(int what, float speed) {
void Puzzle::returnToStack() {
xassert(pickedItem_ != -1);
- runtime->event(EVENT_RETURN, runtime->mousePosition());
+ g_runtime->event(EVENT_RETURN, g_runtime->mousePosition());
if (prevPlace_ >= 0)
put(prevPlace_, pickedItem_);
else
putOnStack(pickedItem_, returnSpeed_);
prevPlace_ = -1;
pickedItem_ = -1;
- runtime->event(EVENT_CLICK, runtime->mousePosition());
+ g_runtime->event(EVENT_CLICK, g_runtime->mousePosition());
}
void Puzzle::quant(float dt) {
if (pickedItem_ == -1)
- runtime->setGameHelpVariant(0);
+ g_runtime->setGameHelpVariant(0);
else
- runtime->setGameHelpVariant(1);
+ g_runtime->setGameHelpVariant(1);
- if (runtime->getTime() > nextRotateTime_) {
- runtime->event(EVENT_FIELD_ROTATE, mgVect2f(400, 300));
- nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
+ if (g_runtime->getTime() > nextRotateTime_) {
+ g_runtime->event(EVENT_FIELD_ROTATE, mgVect2f(400, 300));
+ nextRotateTime_ = g_runtime->getTime() + rotateTimePeriod_;
globalAngle_ = (globalAngle_ + 1) % angles_;
- runtime->setCompleteHelpVariant(globalAngle_);
+ g_runtime->setCompleteHelpVariant(globalAngle_);
}
FlyQDObjects::iterator fit = flyObjs_.begin();
@@ -262,10 +262,10 @@ void Puzzle::quant(float dt) {
else
fit = flyObjs_.erase(fit);
- if (inField_ < nodes_.size() && runtime->getTime() > nextObjTime_ &&
+ if (inField_ < nodes_.size() && g_runtime->getTime() > nextObjTime_ &&
(stack_.size() < stackSize_ - 1 || stack_.size() < stackSize_ && pickedItem_ == -1)) { // нÑжно добавиÑÑ Ð² инвенÑоÑи ÑиÑкÑ
// иÑем ÑлÑÑайнÑй не вÑÑÑавленнÑй ÑÑагменÑ
- int freeIdx = round(runtime->rnd(0.f, nodes_.size() - 1));
+ int freeIdx = round(g_runtime->rnd(0.f, nodes_.size() - 1));
Nodes::iterator it = nodes_.begin();
for (;;) {
if (++it == nodes_.end())
@@ -277,7 +277,7 @@ void Puzzle::quant(float dt) {
int idx = distance(nodes_.begin(), it);
++inField_;
- nextObjTime_ = runtime->getTime() + stackPlaceSize_.y / flySpeed_;
+ nextObjTime_ = g_runtime->getTime() + stackPlaceSize_.y / flySpeed_;
it->pos = stidx(stackSize_);
it->obj.setState(getStateName(it->angle, false, true));
@@ -285,7 +285,7 @@ void Puzzle::quant(float dt) {
putOnStack(idx, flySpeed_);
}
- mgVect2f mouse = runtime->mousePosition();
+ mgVect2f mouse = g_runtime->mousePosition();
int hovPlace = -1; // ÐÐ¾Ð¼ÐµÑ Ð¼ÐµÑÑа коÑоÑое ÑейÑÐ°Ñ Ð¿Ð¾Ð´ мÑÑкой
for (int idx = 0; idx < stack_.size(); ++idx)
@@ -296,7 +296,7 @@ void Puzzle::quant(float dt) {
if (hovPlace == -1) {
float radius = 0.5f * size_.x;
for (int idx = 0; idx < gameSize_; ++idx)
- if (dist(runtime->world2game(position(idx)), mouse) < radius) {
+ if (dist(g_runtime->world2game(position(idx)), mouse) < radius) {
hovPlace = idx;
break;
}
@@ -309,23 +309,23 @@ void Puzzle::quant(float dt) {
hovPlace = stidx(stackSize_);
}
- if (runtime->mouseLeftPressed()) {
+ if (g_runtime->mouseLeftPressed()) {
if (hovPlace >= 0) { // клик по полÑ
Indexes::value_type& hovItem = field_[hovPlace];
if (hovItem == -1) // клик по пÑÑÑой ÑÑейке
if (pickedItem_ == -1) // на мÑÑи ниÑего неÑ
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
else { // кладем ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ñ Ð¼ÑÑи
put(hovPlace, pickedItem_);
if (testPlace(pickedItem_)) // положили на Ñвое Ñвое меÑÑо
- runtime->event(EVENT_PUT_RIGHT, mouse);
+ g_runtime->event(EVENT_PUT_RIGHT, mouse);
else // пÑоÑÑо положили
- runtime->event(EVENT_PUT, mouse);
+ g_runtime->event(EVENT_PUT, mouse);
pickedItem_ = -1;
prevPlace_ = -1;
} else { // клик по непÑÑÑой ÑÑейке
if (testPlace(hovPlace)) // клик по пÑавилÑно Ñложенной ÑиÑке
- runtime->event(EVENT_CLICK_RIGHT, mouse);
+ g_runtime->event(EVENT_CLICK_RIGHT, mouse);
else if (pickedItem_ != -1) { // поменÑÑÑ Ñ Ñем ÑÑо на мÑÑе
bool swap = true;
if (prevPlace_ >= 0)
@@ -333,20 +333,20 @@ void Puzzle::quant(float dt) {
else
putOnStack(hovItem, returnSpeed_);
if (testPlace(hovItem)) { // оказалаÑÑ Ð¿Ñи обмене на Ñвоем меÑÑе
- runtime->event(EVENT_PUT_RIGHT, runtime->world2game(position(prevPlace_)));
+ g_runtime->event(EVENT_PUT_RIGHT, g_runtime->world2game(position(prevPlace_)));
swap = false;
}
put(hovPlace, pickedItem_);
if (testPlace(pickedItem_)) { // положили на Ñвое Ñвое меÑÑо
- runtime->event(EVENT_PUT_RIGHT, mouse);
+ g_runtime->event(EVENT_PUT_RIGHT, mouse);
swap = false;
}
if (swap) // пÑоÑÑо обменÑли
- runtime->event(EVENT_SWAP, mouse);
+ g_runtime->event(EVENT_SWAP, mouse);
pickedItem_ = -1;
prevPlace_ = -1;
} else { // взÑÑÑ ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ð½Ð° мÑÑÑ
- runtime->event(EVENT_GET, mouse);
+ g_runtime->event(EVENT_GET, mouse);
prevPlace_ = hovPlace;
pickedItem_ = hovItem;
nodes_[pickedItem_].pos = mouseObjPose_;
@@ -357,7 +357,7 @@ void Puzzle::quant(float dt) {
int hovStack = stidx(hovPlace);
if (pickedItem_ == -1) // на мÑÑи ниÑего неÑ
if (hovStack < stack_.size()) { // взÑÑÑ ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ð¸Ð· ÑÑека на мÑÑÑ
- runtime->event(EVENT_GET, mouse);
+ g_runtime->event(EVENT_GET, mouse);
Indexes::iterator it = stack_.begin() + hovStack;
xassert(*it >= 0);
prevPlace_ = -1;
@@ -367,36 +367,36 @@ void Puzzle::quant(float dt) {
for (int idx = hovStack; idx < stack_.size(); ++idx)
put(stidx(idx), stack_[idx], flySpeed_);
} else // пÑÑÑой клик в облаÑÑи ÑÑека
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
else // веÑнÑÑÑ ÑиÑÐºÑ Ð½Ð° меÑÑо
returnToStack();
} else // пÑÑÑой клик мимо игÑового полÑ
- runtime->event(EVENT_CLICK, mouse);
- } else if (runtime->mouseRightPressed()) {
+ g_runtime->event(EVENT_CLICK, mouse);
+ } else if (g_runtime->mouseRightPressed()) {
if (pickedItem_ == -1) {
if (hovPlace >= 0) { // клик по полÑ
if (testPlace(hovPlace)) // клик по пÑавилÑно Ñложенной ÑиÑке
- runtime->event(EVENT_CLICK_RIGHT, mouse);
+ g_runtime->event(EVENT_CLICK_RIGHT, mouse);
else {
Indexes::value_type& hovItem = field_[hovPlace];
if (hovItem >= 0) {
rotate(hovItem);
if (testPlace(hovItem)) // повеÑнÑли на пÑавилÑнÑй Ñгол
- runtime->event(EVENT_PUT_RIGHT, mouse);
+ g_runtime->event(EVENT_PUT_RIGHT, mouse);
else // пÑоÑÑо положили
- runtime->event(EVENT_ROTATE_IN_FIELD, mouse);
+ g_runtime->event(EVENT_ROTATE_IN_FIELD, mouse);
} else // попÑÑка пÑокÑÑÑиÑÑ Ð¿ÑÑÑое меÑÑо
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
}
} else if (hovPlace < -1) { // клик по ÑÑекÑ
int hovStack = stidx(hovPlace);
if (hovStack < stack_.size()) { // покÑÑÑиÑÑ Ð²Ð½ÑÑÑи ÑÑека
- runtime->event(EVENT_ROTATE_IN_STACK, mouse);
+ g_runtime->event(EVENT_ROTATE_IN_STACK, mouse);
rotate(stack_[hovStack]);
} else // попÑÑка пÑокÑÑÑиÑÑ Ð¿ÑÑÑое меÑÑо
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
} else // пÑÑÑой клик мимо игÑового полÑ
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
} else // веÑнÑÑÑ ÑиÑÐºÑ Ð½Ð° меÑÑо
returnToStack();
}
@@ -414,7 +414,7 @@ void Puzzle::quant(float dt) {
}
} else if (idx == pickedItem_) {
node.obj.setState(getStateName(node.angle, hovPlace >= 0 && !testPlace(hovPlace), false));
- node.obj->set_R(runtime->game2world(mouse, stackBottom_.depth() - 200));
+ node.obj->set_R(g_runtime->game2world(mouse, stackBottom_.depth() - 200));
} else {
node.obj.setState(getStateName(node.angle, node.pos == hovPlace && pickedItem_ == -1, true));
if (!isFlying(idx))
@@ -422,7 +422,7 @@ void Puzzle::quant(float dt) {
}
iWin = iWin && testPlace(idx);
} else {
- runtime->hide(node.obj);
+ g_runtime->hide(node.obj);
iWin = false;
}
}
@@ -452,9 +452,9 @@ const mgVect3f &Puzzle::position(int num) const {
}
mgVect3f Puzzle::stackPosition(int num) const {
- mgVect3f bottom = runtime->world2game(stackBottom_);
+ mgVect3f bottom = g_runtime->world2game(stackBottom_);
bottom.y -= stackPlaceSize_.y * num;
- return runtime->game2world(bottom);
+ return g_runtime->game2world(bottom);
}
} // namespace QDEngine
diff --git a/engines/qdengine/minigames/adv/m_swap.cpp b/engines/qdengine/minigames/adv/m_swap.cpp
index 4602351267c..91117a1737f 100644
--- a/engines/qdengine/minigames/adv/m_swap.cpp
+++ b/engines/qdengine/minigames/adv/m_swap.cpp
@@ -64,9 +64,9 @@ Swap::Swap() {
if ((rotateTimePeriod_ = getParameter("rotate_period", 86400.f)) < 10.f)
return;
- nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
+ nextRotateTime_ = g_runtime->getTime() + rotateTimePeriod_;
- const char *name_begin = runtime->parameter("obj_name_begin", "obj_");
+ const char *name_begin = g_runtime->parameter("obj_name_begin", "obj_");
char buf[128];
buf[127] = 0;
@@ -77,7 +77,7 @@ Swap::Swap() {
_snprintf(buf, 127, "%s%02d", name_begin, idx + 1);
Node node(idx);
- node.obj = runtime->getObject(buf);
+ node.obj = g_runtime->getObject(buf);
node.angle = 0;
node.obj.setState(getStateName(node.angle, false));
nodes_.push_back(node);
@@ -85,28 +85,28 @@ Swap::Swap() {
gameData.write(node.obj->R());
}
- if (!runtime->processGameData(gameData))
+ if (!g_runtime->processGameData(gameData))
return;
positions_.resize(gameSize_);
for (int idx = 0; idx < gameSize_; ++idx)
gameData.read(positions_[idx]);
- size_ = getParameter("element_size", runtime->getSize(nodes_[0].obj));
+ size_ = getParameter("element_size", g_runtime->getSize(nodes_[0].obj));
xassert(size_.x > 0.f && size_.y > 0.f && size_.x < 500.f && size_.y < 500.f);
debugC(2, kDebugMinigames, "element_size = (%6.2f,%6.2f)", size_.x, size_.y);
pickedItem_ = -1;
last1_ = last2_ = -1;
- if (runtime->debugMode()) {
+ if (g_runtime->debugMode()) {
last1_ = 0;
last2_ = 1;
rotate(last1_, last2_, false);
} else
for (int cnt = 0; cnt < 50; ++cnt) {
- rotate(runtime->rnd(0, gameSize_ - 1), runtime->rnd(0, gameSize_ - 1), true, true);
- swap(runtime->rnd(0, gameSize_ - 1), runtime->rnd(0, gameSize_ - 1), true);
+ rotate(g_runtime->rnd(0, gameSize_ - 1), g_runtime->rnd(0, gameSize_ - 1), true, true);
+ swap(g_runtime->rnd(0, gameSize_ - 1), g_runtime->rnd(0, gameSize_ - 1), true);
}
@@ -117,30 +117,30 @@ Swap::Swap() {
Swap::~Swap() {
Nodes::iterator it;
FOR_EACH(nodes_, it)
- runtime->release(it->obj);
+ g_runtime->release(it->obj);
}
void Swap::quant(float dt) {
if (pickedItem_ >= 0)
- runtime->setGameHelpVariant(1);
+ g_runtime->setGameHelpVariant(1);
else if (last1_ >= 0)
- runtime->setGameHelpVariant(2);
+ g_runtime->setGameHelpVariant(2);
else
- runtime->setGameHelpVariant(0);
+ g_runtime->setGameHelpVariant(0);
- if (runtime->getTime() > nextRotateTime_) {
- int item1 = runtime->rnd(0, gameSize_ - 1);
- int item2 = runtime->rnd(0, gameSize_ - 1);
+ if (g_runtime->getTime() > nextRotateTime_) {
+ int item1 = g_runtime->rnd(0, gameSize_ - 1);
+ int item2 = g_runtime->rnd(0, gameSize_ - 1);
if (item1 != last1_ && item1 != last2_ && item1 != pickedItem_ && item2 != last1_ && item2 != last2_ && item2 != pickedItem_) {
- nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
+ nextRotateTime_ = g_runtime->getTime() + rotateTimePeriod_;
rotate(item1, item2, false, true);
- runtime->event(EVENT_AUTO_ROTATE, mgVect2f(400, 300));
+ g_runtime->event(EVENT_AUTO_ROTATE, mgVect2f(400, 300));
return;
}
}
- mgVect2f mouse = runtime->mousePosition();
+ mgVect2f mouse = g_runtime->mousePosition();
int hovPlace = -1; // ÐÐ¾Ð¼ÐµÑ Ð¼ÐµÑÑа коÑоÑое ÑейÑÐ°Ñ Ð¿Ð¾Ð´ мÑÑкой
if (pickedItem_ == -1) {
@@ -154,21 +154,21 @@ void Swap::quant(float dt) {
if (hovPlace == -1)
for (int idx = 0; idx < gameSize_; ++idx) {
Rectf rect(size_ * 0.9f);
- rect.center(runtime->world2game(position(idx)));
+ rect.center(g_runtime->world2game(position(idx)));
if (rect.point_inside(mouse)) {
hovPlace = idx;
break;
}
}
- if (runtime->mouseLeftPressed()) {
+ if (g_runtime->mouseLeftPressed()) {
if (hovPlace >= 0) { // клик по полÑ
if (pickedItem_ == -1) { // мÑÑÑ Ð¿ÑÑÑаÑ, беÑем
deactivate();
- runtime->event(EVENT_GET, mouse);
+ g_runtime->event(EVENT_GET, mouse);
pickedItem_ = hovPlace;
} else if (pickedItem_ == hovPlace) { // веÑнÑÑÑ Ð½Ð° меÑÑо
- runtime->event(EVENT_RETURN, mouse);
+ g_runtime->event(EVENT_RETURN, mouse);
put(pickedItem_, false);
pickedItem_ = -1;
} else { // поменÑÑÑ Ð¼ÐµÑÑами
@@ -179,19 +179,19 @@ void Swap::quant(float dt) {
}
} else { // пÑÑÑой клик мимо игÑового полÑ
deactivate();
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
}
- } else if (runtime->mouseRightPressed()) {
+ } else if (g_runtime->mouseRightPressed()) {
if (pickedItem_ >= 0) // еÑли на мÑÑи ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ð½Ð¸Ñего не делаем
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
else if (hovPlace == last1_ || hovPlace == last2_) // клик по вÑделеннÑм
rotate(last1_, last2_, false);
else // пÑÑÑой клик мимо акÑивного меÑÑа
- runtime->event(EVENT_CLICK, mouse);
+ g_runtime->event(EVENT_CLICK, mouse);
}
if (pickedItem_ >= 0)
- nodes_[pickedItem_].obj->set_R(runtime->game2world(mouse, -5000));
+ nodes_[pickedItem_].obj->set_R(g_runtime->game2world(mouse, -5000));
int idx = 0;
for (; idx < gameSize_; ++idx)
@@ -238,11 +238,11 @@ void Swap::swap(int item1, int item2, bool silent) {
bool res = false;
if (!silent) {
if (testPlace(item1)) { // ÑнÑли Ñо Ñвоего меÑÑа
- runtime->event(EVENT_GET_RIGHT, runtime->world2game(position(item1)));
+ g_runtime->event(EVENT_GET_RIGHT, g_runtime->world2game(position(item1)));
res = true;
}
if (testPlace(item2)) { // ÑнÑли Ñо Ñвоего меÑÑа
- runtime->event(EVENT_GET_RIGHT, runtime->world2game(position(item2)));
+ g_runtime->event(EVENT_GET_RIGHT, g_runtime->world2game(position(item2)));
res = true;
}
}
@@ -253,15 +253,15 @@ void Swap::swap(int item1, int item2, bool silent) {
if (!silent) {
if (testPlace(item1)) { // оказалаÑÑ Ð¿Ñи обмене на Ñвоем меÑÑе
- runtime->event(EVENT_PUT_RIGHT, runtime->world2game(position(item1)));
+ g_runtime->event(EVENT_PUT_RIGHT, g_runtime->world2game(position(item1)));
res = true;
}
if (testPlace(item2)) { // положили на Ñвое Ñвое меÑÑо
- runtime->event(EVENT_PUT_RIGHT, runtime->world2game(position(item2)));
+ g_runtime->event(EVENT_PUT_RIGHT, g_runtime->world2game(position(item2)));
res = true;
}
if (!res) // пÑоÑÑо обменÑли
- runtime->event(EVENT_SWAP, runtime->mousePosition());
+ g_runtime->event(EVENT_SWAP, g_runtime->mousePosition());
}
}
@@ -271,9 +271,9 @@ void Swap::rotate(int item1, int item2, bool silent, bool avto) {
if (!silent) {
if (testPlace(item1)) // ÑнÑли Ñо Ñвоего меÑÑа
- runtime->event(EVENT_GET_RIGHT, runtime->world2game(position(item1)));
+ g_runtime->event(EVENT_GET_RIGHT, g_runtime->world2game(position(item1)));
if (testPlace(item2)) // ÑнÑли Ñо Ñвоего меÑÑа
- runtime->event(EVENT_GET_RIGHT, runtime->world2game(position(item2)));
+ g_runtime->event(EVENT_GET_RIGHT, g_runtime->world2game(position(item2)));
}
nodes_[item1].angle = (nodes_[item1].angle + 1) % angles_;
@@ -283,10 +283,10 @@ void Swap::rotate(int item1, int item2, bool silent, bool avto) {
if (!silent) {
if (testPlace(item1)) // оказалаÑÑ Ð¿Ñи обмене на Ñвоем меÑÑе
- runtime->event(EVENT_PUT_RIGHT, runtime->world2game(position(item1)));
+ g_runtime->event(EVENT_PUT_RIGHT, g_runtime->world2game(position(item1)));
if (testPlace(item2)) // положили на Ñвое Ñвое меÑÑо
- runtime->event(EVENT_PUT_RIGHT, runtime->world2game(position(item2)));
- runtime->event(EVENT_ROTATE, runtime->mousePosition());
+ g_runtime->event(EVENT_PUT_RIGHT, g_runtime->world2game(position(item2)));
+ g_runtime->event(EVENT_ROTATE, g_runtime->mousePosition());
}
}
diff --git a/engines/qdengine/minigames/adv/m_triangles.cpp b/engines/qdengine/minigames/adv/m_triangles.cpp
index 12be98fee82..99ec8b58f37 100644
--- a/engines/qdengine/minigames/adv/m_triangles.cpp
+++ b/engines/qdengine/minigames/adv/m_triangles.cpp
@@ -50,7 +50,7 @@ MinigameTriangle::Node::Node(int number, int rot) {
void MinigameTriangle::Node::release() {
for (auto &it : face_)
- runtime->release(it);
+ g_runtime->release(it);
}
bool MinigameTriangle::Node::hit(const mgVect2f& pos) const {
@@ -103,9 +103,9 @@ MinigameTriangle::MinigameTriangle() {
if (!getParameter("animation_time", animationTime_, true))
return;
- const char *faceNameBegin = runtime->parameter("object_name_begin", "obj_");
- const char *backNameBegin = runtime->parameter("backg_name_begin", "element_back_");
- const char *selectNameBegin = runtime->parameter("select_name_begin", "element_select_");
+ const char *faceNameBegin = g_runtime->parameter("object_name_begin", "obj_");
+ const char *backNameBegin = g_runtime->parameter("backg_name_begin", "element_back_");
+ const char *selectNameBegin = g_runtime->parameter("select_name_begin", "element_select_");
char name[64];
name[63] = 0;
@@ -114,7 +114,7 @@ MinigameTriangle::MinigameTriangle() {
Node& node = nodes_.back();
for (int angle = 1; angle <= 3; ++angle) {
snprintf(name, 63, "%s%02d_%1d", faceNameBegin, num + 1, angle);
- QDObject obj = runtime->getObject(name);
+ QDObject obj = g_runtime->getObject(name);
node.face_.push_back(obj);
positions_.push_back(obj->R());
}
@@ -127,7 +127,7 @@ MinigameTriangle::MinigameTriangle() {
for (auto &it : positions_)
gameData.write(it);
- if (!runtime->processGameData(gameData))
+ if (!g_runtime->processGameData(gameData))
return;
for (auto &it : positions_)
@@ -154,11 +154,11 @@ MinigameTriangle::MinigameTriangle() {
animatedNodes_[0] = animatedNodes_[1] = -1;
animationTimer_ = 0.f;
- if (!runtime->debugMode())
+ if (!g_runtime->debugMode())
for (int i = 0; i < 150; ++i) {
- int pos1 = runtime->rnd(0, nodes_.size() - 1);
+ int pos1 = g_runtime->rnd(0, nodes_.size() - 1);
for (int j = 0; j < 20; ++j) {
- int pos2 = runtime->rnd(pos1 - 10, pos1 + 10);
+ int pos2 = g_runtime->rnd(pos1 - 10, pos1 + 10);
if (compatible(pos1, pos2)) {
swapNodes(pos1, pos2, true);
break;
@@ -222,7 +222,7 @@ void MinigameTriangle::releaseNodeBack(Node& node) {
void MinigameTriangle::updateNode(Node& node, int position, int flip, bool quick) {
for (auto &fit : node.face_)
- runtime->hide(fit);
+ g_runtime->hide(fit);
node.flip = flip;
@@ -287,32 +287,32 @@ void MinigameTriangle::endSwapNodes(int pos1, int pos2) {
if (node1.number_ == pos1) { // поÑÑавили на Ñвое меÑÑо
assert(!node1.isBack_);
counted = true;
- runtime->event(EVENT_PUT_RIGHT, node1.obj()->screen_R());
+ g_runtime->event(EVENT_PUT_RIGHT, node1.obj()->screen_R());
}
if (node2.number_ == pos1) { // ÑнÑли Ñо Ñвоего меÑÑа
assert(node2.isBack_);
counted = true;
- runtime->event(EVENT_GET_RIGHT, node1.obj()->screen_R());
+ g_runtime->event(EVENT_GET_RIGHT, node1.obj()->screen_R());
}
if (node2.number_ == pos2) { // поÑÑавили на Ñвое меÑÑо
assert(!node2.isBack_);
counted = true;
- runtime->event(EVENT_PUT_RIGHT, node2.obj()->screen_R());
+ g_runtime->event(EVENT_PUT_RIGHT, node2.obj()->screen_R());
}
if (node1.number_ == pos2) { // ÑнÑли Ñо Ñвоего меÑÑа
assert(node1.isBack_);
counted = true;
- runtime->event(EVENT_GET_RIGHT, node2.obj()->screen_R());
+ g_runtime->event(EVENT_GET_RIGHT, node2.obj()->screen_R());
}
if (!counted) { // пÑоÑÑо Ñделали Ñ
од
mgVect2i pos = node1.obj()->screen_R();
pos += node2.obj()->screen_R();
pos /= 2;
- runtime->event(EVENT_TURN, pos);
+ g_runtime->event(EVENT_TURN, pos);
}
bool isWin = true;
@@ -438,16 +438,16 @@ void MinigameTriangle::swapNodes(int pos1, int pos2, bool silentQuick) {
void MinigameTriangle::quant(float dt) {
if (selected_ >= 0)
- runtime->setGameHelpVariant(0);
+ g_runtime->setGameHelpVariant(0);
else
- runtime->setGameHelpVariant(1);
+ g_runtime->setGameHelpVariant(1);
if (animate(dt))
return;
int mousePos = -1;
for (int idx = 0; idx < fieldSize_; ++idx)
- if (nodes_[idx].hit(runtime->mousePosition())) {
+ if (nodes_[idx].hit(g_runtime->mousePosition())) {
mousePos = idx;
break;
}
@@ -455,7 +455,7 @@ void MinigameTriangle::quant(float dt) {
int startAnimation = -1;
int lastSelected = selected_;
- if (runtime->mouseLeftPressed()) {
+ if (g_runtime->mouseLeftPressed()) {
if (mousePos < 0) // кликнÑли мимо - Ñнимаем вÑделение
selected_ = -1;
else if (selected_ < 0) // ниÑего вÑделено небÑло, пÑоÑÑо вÑделÑем
@@ -478,7 +478,7 @@ void MinigameTriangle::quant(float dt) {
node.border_.setState(Node::getBorderStateName(idx == selected_));
node.border_->set_R(slotCoord(idx));
node.border_->update_screen_R();
- runtime->setDepth(node.border_, selectDepth_);
+ g_runtime->setDepth(node.border_, selectDepth_);
} else if (node.border_) {
selectBorders_[0].releaseObject(node.border_);
selectBorders_[1].releaseObject(node.border_);
@@ -508,7 +508,7 @@ void MinigameTriangle::quant(float dt) {
swapNodes(startAnimation, mousePos, false);
}
- if (runtime->mouseRightPressed() && mousePos >= 0) {
+ if (g_runtime->mouseRightPressed() && mousePos >= 0) {
debugC(2, kDebugMinigames, "----- DUBUG INFO FOR %d POSITION --------------------", mousePos);
debugC(2, kDebugMinigames, "row = %d, begin = %d, orientation = %d", rowByNum(mousePos), rowBegin(rowByNum(mousePos)), orientation(mousePos));
nodes_[mousePos].debugInfo();
Commit: 665cd7a51b9f84001c3c2c51fc5c97989545bc5e
https://github.com/scummvm/scummvm/commit/665cd7a51b9f84001c3c2c51fc5c97989545bc5e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-19T19:45:31+02:00
Commit Message:
TINSEL: Fixed crash on failed engine run attempt
Changed paths:
engines/tinsel/tinsel.cpp
diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp
index ced7f454eb9..12c87b25553 100644
--- a/engines/tinsel/tinsel.cpp
+++ b/engines/tinsel/tinsel.cpp
@@ -1135,7 +1135,8 @@ Common::Error TinselEngine::run() {
_vm->_config->writeToDisk();
EndScene();
- _bg->ResetBackground();
+ if (_bg)
+ _bg->ResetBackground();
return Common::kNoError;
}
More information about the Scummvm-git-logs
mailing list