[Scummvm-git-logs] scummvm master -> 182ad508abd7cc6b6cdb2f59d2a6a1b022277a0b
sev-
noreply at scummvm.org
Sun Dec 1 20:38:53 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:
b41178f68b QDENGINE: Remove move g_runtime usage in adv minigames
182ad508ab QDENGINE: Eliminated global constructor
Commit: b41178f68b5cc9e5049ce44e9719a84bc85e371b
https://github.com/scummvm/scummvm/commit/b41178f68b5cc9e5049ce44e9719a84bc85e371b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-12-01T21:36:28+01:00
Commit Message:
QDENGINE: Remove move g_runtime usage in adv minigames
Changed paths:
engines/qdengine/minigames/adv/EffectManager.cpp
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/RunTime.h
engines/qdengine/minigames/adv/TextManager.cpp
engines/qdengine/minigames/adv/common.cpp
engines/qdengine/minigames/adv/common.h
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 8bbb9997e0c..58f82660182 100644
--- a/engines/qdengine/minigames/adv/EffectManager.cpp
+++ b/engines/qdengine/minigames/adv/EffectManager.cpp
@@ -37,9 +37,9 @@ EffectManager::EffectManager(HoldData<EffectManagerData> &data, MinigameManager
data.process(_data);
- _effectTime = clamp(getParameter("effect_time", 3.f), 0.5f, 10.f);
- _phaseTime = clamp(getParameter("effect_phase_time", _effectTime / 20.f), 0.03f, 1.f);
- _phaseSpeed = clamp(getParameter("effect_phase_speed", 1.5f), 1.05f, 10.f);
+ _effectTime = clamp(_runtime->getParameter("effect_time", 3.f), 0.5f, 10.f);
+ _phaseTime = clamp(_runtime->getParameter("effect_phase_time", _effectTime / 20.f), 0.03f, 1.f);
+ _phaseSpeed = clamp(_runtime->getParameter("effect_phase_speed", 1.5f), 1.05f, 10.f);
_current = EFFECT_COUNT;
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 4874aca0a20..a48d11f2aeb 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -1013,6 +1013,82 @@ void MinigameManager::GameInfoIndex::read(Common::ReadStream &in) {
_gameLevel = in.readUint32LE();
}
+int MinigameManager::getParameter(const char* name, const int& defValue) {
+ return round(getParameter(name, (float)defValue));
+}
+
+bool MinigameManager::getParameter(const char* name, int& out, bool obligatory) {
+ float retValue = out;
+ if (getParameter(name, retValue, obligatory)) {
+ out = round(retValue);
+ return true;
+ }
+ return false;
+}
+
+float MinigameManager::getParameter(const char* name, const float &defValue) {
+ if (const char *data = parameter(name, false)) {
+ float retValue = defValue;
+ if (sscanf(data, "%f", &retValue) == 1)
+ return retValue;
+ error("The parameter [%s] contains wrong data type. It must be a number", name);
+ }
+ return defValue;
+
+}
+
+bool MinigameManager::getParameter(const char* name, float &out, bool obligatory) {
+ if (const char * data = parameter(name, obligatory)) {
+ float retValue = out;
+ if (sscanf(data, "%f", &retValue) == 1) {
+ out = retValue;
+ return true;
+ }
+ error("The parameter [%s] contains wrong data type. It must be a number", name);
+ }
+ return false;
+
+}
+
+mgVect2f MinigameManager::getParameter(const char* name, const mgVect2f& defValue) {
+ if (const char * data = parameter(name, false)) {
+ mgVect2f retValue = defValue;
+ if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2)
+ return retValue;
+ error("The parameter [%s] contains wrong data type. It must be a pair of numbers", name);
+ }
+ return defValue;
+
+}
+
+bool MinigameManager::getParameter(const char* name, mgVect2f& out, bool obligatory) {
+ if (const char * data = parameter(name, obligatory)) {
+ mgVect2f retValue = out;
+ if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2) {
+ out = retValue;
+ return true;
+ }
+ error("The parameter [%s] contains wrong data type. It must be a pair of numbers", name);
+ }
+ return false;
+
+}
+
+mgVect2i MinigameManager::getParameter(const char* name, const mgVect2i& defValue) {
+ mgVect2f retValue = getParameter(name, mgVect2f(defValue.x, defValue.y));
+ return mgVect2i(round(retValue.x), round(retValue.y));
+
+}
+
+bool MinigameManager::getParameter(const char* name, mgVect2i& out, bool obligatory) {
+ mgVect2f retValue = mgVect2f(out.x, out.y);
+ if (getParameter(name, retValue, obligatory)) {
+ out = mgVect2i(round(retValue.x), round(retValue.y));
+ return true;
+ }
+ return false;
+}
+
//========================================================================================================================
diff --git a/engines/qdengine/minigames/adv/RunTime.h b/engines/qdengine/minigames/adv/RunTime.h
index e6b74bfb949..aff341c2fe9 100644
--- a/engines/qdengine/minigames/adv/RunTime.h
+++ b/engines/qdengine/minigames/adv/RunTime.h
@@ -192,6 +192,15 @@ public:
return "resource/minigames.lst";
}
+ int getParameter(const char* name, const int& defValue);
+ bool getParameter(const char* name, int& out, bool obligatory);
+ float getParameter(const char* name, const float &defValue);
+ bool getParameter(const char* name, float &out, bool obligatory);
+ mgVect2f getParameter(const char* name, const mgVect2f& defValue);
+ bool getParameter(const char* name, mgVect2f& out, bool obligatory);
+ mgVect2i getParameter(const char* name, const mgVect2i& defValue);
+ bool getParameter(const char* name, mgVect2i& out, bool obligatory);
+
private:
MinigameInterface *_game;
diff --git a/engines/qdengine/minigames/adv/TextManager.cpp b/engines/qdengine/minigames/adv/TextManager.cpp
index 7260ba17eae..185620798e2 100644
--- a/engines/qdengine/minigames/adv/TextManager.cpp
+++ b/engines/qdengine/minigames/adv/TextManager.cpp
@@ -95,7 +95,7 @@ TextManager::TextManager(MinigameManager *runtime) {
_currentScore = 0;
_scoreUpdateTimer = 0.f;
- _scoreUpdateTime = getParameter("score_update_time", 0.1f);
+ _scoreUpdateTime = _runtime->getParameter("score_update_time", 0.1f);
}
bool TextManager::getStaticPreset(StaticTextPreset& preset, const char *name) const {
diff --git a/engines/qdengine/minigames/adv/common.cpp b/engines/qdengine/minigames/adv/common.cpp
index 524500b9c71..7eaab5b8832 100644
--- a/engines/qdengine/minigames/adv/common.cpp
+++ b/engines/qdengine/minigames/adv/common.cpp
@@ -38,8 +38,8 @@ bool QDObject::hit(const mgVect2f& point) const {
return _obj->hit_test(mgVect2i(round(point.x), round(point.y)));
}
-float QDObject::depth() const {
- return g_runtime->getDepth(_obj);
+float QDObject::depth(MinigameManager *runtime) const {
+ return runtime->getDepth(_obj);
}
void QDObject::setState(const char* name) {
@@ -47,80 +47,4 @@ void QDObject::setState(const char* name) {
_obj->set_state(name);
}
-int getParameter(const char* name, const int& defValue) {
- return round(getParameter(name, (float)defValue));
-}
-
-bool getParameter(const char* name, int& out, bool obligatory) {
- float retValue = out;
- if (getParameter(name, retValue, obligatory)) {
- out = round(retValue);
- return true;
- }
- return false;
-}
-
-float getParameter(const char* name, const float &defValue) {
- if (const char *data = g_runtime->parameter(name, false)) {
- float retValue = defValue;
- if (sscanf(data, "%f", &retValue) == 1)
- return retValue;
- error("The parameter [%s] contains wrong data type. It must be a number", name);
- }
- return defValue;
-
-}
-
-bool getParameter(const char* name, float &out, bool obligatory) {
- if (const char * data = g_runtime->parameter(name, obligatory)) {
- float retValue = out;
- if (sscanf(data, "%f", &retValue) == 1) {
- out = retValue;
- return true;
- }
- error("The parameter [%s] contains wrong data type. It must be a number", name);
- }
- return false;
-
-}
-
-mgVect2f getParameter(const char* name, const mgVect2f& defValue) {
- if (const char * data = g_runtime->parameter(name, false)) {
- mgVect2f retValue = defValue;
- if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2)
- return retValue;
- error("The parameter [%s] contains wrong data type. It must be a pair of numbers", name);
- }
- return defValue;
-
-}
-
-bool getParameter(const char* name, mgVect2f& out, bool 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;
- return true;
- }
- error("The parameter [%s] contains wrong data type. It must be a pair of numbers", name);
- }
- return false;
-
-}
-
-mgVect2i getParameter(const char* name, const mgVect2i& defValue) {
- mgVect2f retValue = getParameter(name, mgVect2f(defValue.x, defValue.y));
- return mgVect2i(round(retValue.x), round(retValue.y));
-
-}
-
-bool getParameter(const char* name, mgVect2i& out, bool obligatory) {
- mgVect2f retValue = mgVect2f(out.x, out.y);
- if (getParameter(name, retValue, obligatory)) {
- out = mgVect2i(round(retValue.x), round(retValue.y));
- return true;
- }
- return false;
-}
-
} // namespace QDEngine
diff --git a/engines/qdengine/minigames/adv/common.h b/engines/qdengine/minigames/adv/common.h
index c1f4892d39b..d047c75cb57 100644
--- a/engines/qdengine/minigames/adv/common.h
+++ b/engines/qdengine/minigames/adv/common.h
@@ -27,9 +27,9 @@
namespace QDEngine {
-typedef mgVect3<int> mgVect3i;
+class MinigameManager;
-using namespace std;
+typedef mgVect3<int> mgVect3i;
class QDObject {
qdMinigameObjectInterface *_obj;
@@ -49,7 +49,7 @@ public:
const char *getName() const; // DEBUG ONLY
bool hit(const mgVect2f& point) const;
- float depth() const;
+ float depth(MinigameManager *runtime) const;
void setState(const char* name);
@@ -77,16 +77,6 @@ typedef Std::vector<mgVect3f> Coords;
class MinigameManager;
extern MinigameManager *g_runtime;
-int getParameter(const char* name, const int& defValue);
-bool getParameter(const char* name, int& out, bool obligatory);
-float getParameter(const char* name, const float &defValue);
-bool getParameter(const char* name, float &out, bool obligatory);
-mgVect2f getParameter(const char* name, const mgVect2f& defValue);
-bool getParameter(const char* name, mgVect2f& out, bool obligatory);
-mgVect2i getParameter(const char* name, const mgVect2i& defValue);
-bool getParameter(const char* name, mgVect2i& out, bool obligatory);
-
-
enum SystemEvent {
EVENT_TIME_1_SECOND_TICK,
EVENT_TIME_10_SECOND_TICK,
diff --git a/engines/qdengine/minigames/adv/m_puzzle.cpp b/engines/qdengine/minigames/adv/m_puzzle.cpp
index c9ecef03d2c..b6885a5abfe 100644
--- a/engines/qdengine/minigames/adv/m_puzzle.cpp
+++ b/engines/qdengine/minigames/adv/m_puzzle.cpp
@@ -67,24 +67,24 @@ const char *Puzzle::getStateName(int angle, bool selected, bool small) const {
Puzzle::Puzzle(MinigameManager *runtime) {
_runtime = runtime;
- if (!getParameter("game_size", gameSize_, true))
+ if (!_runtime->getParameter("game_size", gameSize_, true))
return;
assert(gameSize_ > 0 && gameSize_ < 100);
field_.resize(gameSize_, -1);
globalAngle_ = 0;
- singleSize_ = getParameter("small_objects", false);
+ singleSize_ = _runtime->getParameter("small_objects", false);
- angles_ = getParameter("angles", 4);
+ angles_ = _runtime->getParameter("angles", 4);
assert(angles_ > 0 && angles_ < 10);
if (!(stackBottom_ = _runtime->getObject(_runtime->parameter("inventory_bottom"))))
return;
- if (!getParameter("inventory_size", stackSize_, true))
+ if (!_runtime->getParameter("inventory_size", stackSize_, true))
return;
- if (getParameter("rotate_period", rotateTimePeriod_, false)) {
+ if (_runtime->getParameter("rotate_period", rotateTimePeriod_, false)) {
assert(sqr(sqrt((float)gameSize_)) == gameSize_);
if (sqr(sqrt((float)gameSize_)) != gameSize_)
return;
@@ -92,9 +92,9 @@ Puzzle::Puzzle(MinigameManager *runtime) {
rotateTimePeriod_ = 86400; // ÑÑÑки
nextRotateTime_ = _runtime->getTime() + rotateTimePeriod_;
- flySpeed_ = getParameter("inventory_drop_speed", 240.f);
+ flySpeed_ = _runtime->getParameter("inventory_drop_speed", 240.f);
assert(flySpeed_ > 0.f);
- returnSpeed_ = getParameter("inventory_return_speed", -1.f);
+ returnSpeed_ = _runtime->getParameter("inventory_return_speed", -1.f);
warning("STUB: Puzzle::Puzzle()");
@@ -140,9 +140,9 @@ Puzzle::Puzzle(MinigameManager *runtime) {
size_ = _runtime->getSize(nodes_[0].obj);
debugC(2, kDebugMinigames, "size = (%6.2f,%6.2f)", size_.x, size_.y);
- depth_ = nodes_[0].obj.depth();
+ depth_ = nodes_[0].obj.depth(runtime);
- stackPlaceSize_ = getParameter("inventory_place_size", size_ * 1.2f);
+ stackPlaceSize_ = _runtime->getParameter("inventory_place_size", size_ * 1.2f);
assert(stackPlaceSize_.x > 0.f && stackPlaceSize_.x < 500.f && stackPlaceSize_.y > 0.f && stackPlaceSize_.y < 500.f);
debugC(2, kDebugMinigames, "stackPlaceSize = (%5.1f, %5.1f)", stackPlaceSize_.x, stackPlaceSize_.y);
@@ -420,7 +420,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(_runtime->game2world(mouse, stackBottom_.depth(_runtime) - 200));
} else {
node.obj.setState(getStateName(node.angle, node.pos == hovPlace && pickedItem_ == -1, true));
if (!isFlying(idx))
diff --git a/engines/qdengine/minigames/adv/m_swap.cpp b/engines/qdengine/minigames/adv/m_swap.cpp
index 6a2e366b73f..f5ea853e9eb 100644
--- a/engines/qdengine/minigames/adv/m_swap.cpp
+++ b/engines/qdengine/minigames/adv/m_swap.cpp
@@ -61,13 +61,13 @@ const char *Swap::getStateName(int angle, bool selected) const {
Swap::Swap(MinigameManager *runtime) {
_runtime = runtime;
- if (!getParameter("game_size", _gameSize, true) || _gameSize < 2)
+ if (!_runtime->getParameter("game_size", _gameSize, true) || _gameSize < 2)
return;
- if ((_angles = getParameter("angles", 4)) < 1)
+ if ((_angles = _runtime->getParameter("angles", 4)) < 1)
return;
- if ((_rotateTimePeriod = getParameter("rotate_period", 86400.f)) < 10.f)
+ if ((_rotateTimePeriod = _runtime->getParameter("rotate_period", 86400.f)) < 10.f)
return;
_nextRotateTime = _runtime->getTime() + _rotateTimePeriod;
@@ -97,7 +97,7 @@ Swap::Swap(MinigameManager *runtime) {
gameData.read(_positions[idx]);
#endif
- _size = getParameter("element_size", _runtime->getSize(_nodes[0].obj));
+ _size = _runtime->getParameter("element_size", _runtime->getSize(_nodes[0].obj));
assert(_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);
diff --git a/engines/qdengine/minigames/adv/m_triangles.cpp b/engines/qdengine/minigames/adv/m_triangles.cpp
index 2874c56f1e2..e904331cbd8 100644
--- a/engines/qdengine/minigames/adv/m_triangles.cpp
+++ b/engines/qdengine/minigames/adv/m_triangles.cpp
@@ -62,7 +62,7 @@ MinigameTriangle::MinigameTriangle(MinigameManager *runtime) {
_runtime = runtime;
int type = 0;
- if (!getParameter("game_type", type, true))
+ if (!_runtime->getParameter("game_type", type, true))
return;
switch (type) {
@@ -78,13 +78,13 @@ MinigameTriangle::MinigameTriangle(MinigameManager *runtime) {
_fieldLines = _fieldWidth = 0;
- if (!getParameter("size", _fieldLines, true))
+ if (!_runtime->getParameter("size", _fieldLines, true))
return;
if (_fieldLines < 2)
return;
if (_gameType == RECTANGLE) {
- if (!getParameter("width", _fieldWidth, true))
+ if (!_runtime->getParameter("width", _fieldWidth, true))
return;
if (_fieldWidth < 2)
return;
@@ -105,7 +105,7 @@ MinigameTriangle::MinigameTriangle(MinigameManager *runtime) {
break;
}
- if (!getParameter("animation_time", _animationTime, true))
+ if (!_runtime->getParameter("animation_time", _animationTime, true))
return;
const char *faceNameBegin = _runtime->parameter("object_name_begin", "obj_");
@@ -147,7 +147,7 @@ MinigameTriangle::MinigameTriangle(MinigameManager *runtime) {
return;
}
- _selectDepth = _nodes[0]._face[0].depth() - 1000;
+ _selectDepth = _nodes[0]._face[0].depth(_runtime) - 1000;
_selected = -1;
_hovered = -1;
Commit: 182ad508abd7cc6b6cdb2f59d2a6a1b022277a0b
https://github.com/scummvm/scummvm/commit/182ad508abd7cc6b6cdb2f59d2a6a1b022277a0b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-12-01T21:38:27+01:00
Commit Message:
QDENGINE: Eliminated global constructor
Changed paths:
engines/qdengine/minigames/adv/RunTime.cpp
engines/qdengine/minigames/adv/common.cpp
engines/qdengine/minigames/adv/common.h
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index a48d11f2aeb..090e23fc5bc 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -798,7 +798,7 @@ float MinigameManager::getDepth(const mgVect3f& pos) const {
QDObject MinigameManager::getObject(const char *name) const {
if (!name || !*name) {
warning("MinigameManager::getObject(): null name");
- return QDObject::ZERO;
+ return QDObject(0, "ZERO OBJECT");
}
qdMinigameObjectInterface *obj = _scene->object_interface(name);
@@ -807,7 +807,7 @@ QDObject MinigameManager::getObject(const char *name) const {
if (obj)
return QDObject(obj, name);
- return QDObject::ZERO;
+ return QDObject(0, "ZERO OBJECT");
}
bool MinigameManager::testObject(const char *name) const {
diff --git a/engines/qdengine/minigames/adv/common.cpp b/engines/qdengine/minigames/adv/common.cpp
index 7eaab5b8832..bf01ad05853 100644
--- a/engines/qdengine/minigames/adv/common.cpp
+++ b/engines/qdengine/minigames/adv/common.cpp
@@ -24,8 +24,6 @@
namespace QDEngine {
-QDObject QDObject::ZERO(0, "ZERO OBJECT");
-
const char *QDObject::getName() const {
#ifdef _DEBUG
return name_.c_str();
diff --git a/engines/qdengine/minigames/adv/common.h b/engines/qdengine/minigames/adv/common.h
index d047c75cb57..9e5fbe6e313 100644
--- a/engines/qdengine/minigames/adv/common.h
+++ b/engines/qdengine/minigames/adv/common.h
@@ -39,8 +39,6 @@ class QDObject {
#endif
public:
- static QDObject ZERO;
-
QDObject(qdMinigameObjectInterface* obj = 0, const char* name = "") : _obj(obj) {
#ifdef _DEBUG
name_ = name;
More information about the Scummvm-git-logs
mailing list