[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