[Scummvm-git-logs] scummvm master -> a64b651c7a5f2fc69deee7faacc7a3a43e2d591d

sev- noreply at scummvm.org
Thu Oct 17 20:11:19 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a64b651c7a QDENGINE: Some compilation fixes in minigames/adv


Commit: a64b651c7a5f2fc69deee7faacc7a3a43e2d591d
    https://github.com/scummvm/scummvm/commit/a64b651c7a5f2fc69deee7faacc7a3a43e2d591d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-17T22:10:53+02:00

Commit Message:
QDENGINE: Some compilation fixes in minigames/adv

Changed paths:
    engines/qdengine/minigames/adv/EffectManager.cpp
    engines/qdengine/minigames/adv/EventManager.h
    engines/qdengine/minigames/adv/HoldData.h
    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/qdMath.h
    engines/qdengine/module.mk


diff --git a/engines/qdengine/minigames/adv/EffectManager.cpp b/engines/qdengine/minigames/adv/EffectManager.cpp
index 8a8c745bf61..fa6f79851ac 100644
--- a/engines/qdengine/minigames/adv/EffectManager.cpp
+++ b/engines/qdengine/minigames/adv/EffectManager.cpp
@@ -53,13 +53,13 @@ void EffectManager::quant(float dt) {
 	if (current_ == EFFECT_COUNT)
 		return;
 
-	if (runtime->time() > effectTimer_) {
+	if (runtime->getTime() > effectTimer_) {
 		stop(current_);
 		return;
 	}
 
-	if (runtime->time() > phaseTimer_) {
-		phaseTimer_ = runtime->time() + phaseTime_;
+	if (runtime->getTime() > phaseTimer_) {
+		phaseTimer_ = 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->time() + effectTime_;
+	effectTimer_ = runtime->getTime() + effectTime_;
 	current_ = id;
-	phaseTimer_ = runtime->time();
+	phaseTimer_ = runtime->getTime();
 	effect_->set_screen_scale(mgVect2f(0.02f, 0.02f), mgVect2f(10000.f, 10000.f));
 	effect_->set_R(data_.crd);
 
diff --git a/engines/qdengine/minigames/adv/EventManager.h b/engines/qdengine/minigames/adv/EventManager.h
index a42de3d1391..490a80a8d9a 100644
--- a/engines/qdengine/minigames/adv/EventManager.h
+++ b/engines/qdengine/minigames/adv/EventManager.h
@@ -24,18 +24,6 @@
 
 namespace QDEngine {
 
-enum SystemEvent {
-	EVENT_TIME_1_SECOND_TICK,
-	EVENT_TIME_10_SECOND_TICK,
-	EVENT_TIME_60_SECOND_TICK,
-	EVENT_TIME_10_SECOND_LEFT,
-	EVENT_TIME_LESS_10_SECOND_LEFT_SECOND_TICK,
-	EVENT_TIME_OUT,
-	EVENT_GAME_LOSE,
-	EVENT_GAME_WIN,
-	SYSTEM_EVENTS_SIZE
-};
-
 class EventManager {
 public:
 	EventManager();
diff --git a/engines/qdengine/minigames/adv/HoldData.h b/engines/qdengine/minigames/adv/HoldData.h
index cf250c9dff9..f2bf6d8d70f 100644
--- a/engines/qdengine/minigames/adv/HoldData.h
+++ b/engines/qdengine/minigames/adv/HoldData.h
@@ -45,7 +45,7 @@ public:
 	}
 
 	const T &get() const {
-		xassert(!empty_);
+		assert(!empty_);
 		return data_;
 	}
 };
diff --git a/engines/qdengine/minigames/adv/RunTime.cpp b/engines/qdengine/minigames/adv/RunTime.cpp
index 3556ce88428..c63ed5edf27 100644
--- a/engines/qdengine/minigames/adv/RunTime.cpp
+++ b/engines/qdengine/minigames/adv/RunTime.cpp
@@ -628,7 +628,7 @@ void MinigameManager::gameWin() {
 	if (currentGameIndex_.gameNum_ == 0)
 		return;
 
-	int gameTime = round(time());
+	int gameTime = round(getTime());
 	eventManager_->addScore(round(timeManager_->leftTime() * timeManager_->timeCost()));
 
 	currentGameInfo_->game_.lastTime_ = gameTime;
@@ -968,7 +968,7 @@ TimeManager::TimeManager(HoldData<TimeManagerData> &data) {
 	} else
 		size_ = mgVect2f(-1.f, -1.f);
 
-	xassert(runtime->time() == 0.f);
+	xassert(runtime->getTime() == 0.f);
 
 	lastEventTime_ = 0;
 
@@ -982,7 +982,7 @@ TimeManager::~TimeManager() {
 
 bool TimeManager::timeIsOut() const {
 	if (gameTime_ > 0.f)
-		return runtime->time() > gameTime_;
+		return runtime->getTime() > gameTime_;
 	return false;
 
 }
@@ -990,12 +990,12 @@ bool TimeManager::timeIsOut() const {
 float TimeManager::leftTime() const {
 	if (gameTime_ <= 0.f)
 		return 0;
-	return runtime->time() > gameTime_ ? 0 : gameTime_ - runtime->time();
+	return runtime->getTime() > gameTime_ ? 0 : gameTime_ - runtime->getTime();
 
 }
 
 void TimeManager::quant(float dt) {
-	int seconds = round(runtime->time());
+	int seconds = round(runtime->getTime());
 	if (seconds != lastEventTime_) {
 		lastEventTime_ = seconds;
 		runtime->textManager().updateTime(seconds);
@@ -1016,7 +1016,7 @@ void TimeManager::quant(float dt) {
 	if (gameTime_ <= 0.f || !timeBar_)
 		return;
 
-	float phase = clamp(runtime->time() / gameTime_, 0.f, 1.f);
+	float phase = clamp(runtime->getTime() / gameTime_, 0.f, 1.f);
 	mgVect3f pos;
 	switch (direction_) {
 	case UP:
diff --git a/engines/qdengine/minigames/adv/RunTime.h b/engines/qdengine/minigames/adv/RunTime.h
index 69ffa02410b..37f73f05a3f 100644
--- a/engines/qdengine/minigames/adv/RunTime.h
+++ b/engines/qdengine/minigames/adv/RunTime.h
@@ -22,6 +22,8 @@
 #ifndef QDENGINE_MINIGAMES_ADV_RUNTIME_H
 #define QDENGINE_MINIGAMES_ADV_RUNTIME_H
 
+#include "common/hashmap.h"
+
 namespace QDEngine {
 
 class qdEngineInterface;
@@ -30,7 +32,6 @@ class qdMinigameSceneInterface;
 class MinigameInterface;
 class TextManager;
 class TimeManager;
-enum SystemEvent;
 class EventManager;
 class EffectManager;
 
@@ -103,7 +104,7 @@ public:
 	mgVect2i screenSize() const {
 		return screenSize_;
 	}
-	float time() const {
+	float getTime() const {
 		return gameTime_;
 	}
 
@@ -168,7 +169,7 @@ public:
 	float rnd(float min, float max) const;
 	int rnd(int min, int max) const;
 	// случайный диапазон, из набора вероятностей
-	int rnd(const vector<float> &prob) const;
+	int rnd(const Std::vector<float> &prob) const;
 
 	// файл со списком игр по уровням
 	const char *gameListFileName() const {
@@ -206,13 +207,13 @@ private:
 	QDObject complete_help_;
 	QDObject complete_help_miniature_;
 	// текущее состояние для включения справки
-	string complete_help_state_name_;
+	Common::String complete_help_state_name_;
 	// справка по игре
 	QDObject game_help_;
 	QDObject game_help_trigger_;
 	bool game_help_enabled_;
 	// текущее состояние для включения справки
-	string game_help_state_name_;
+	Common::String game_help_state_name_;
 
 	// интерфейс к движку
 	const qdEngineInterface *engine_;
@@ -230,7 +231,7 @@ private:
 	// имя файла и информацией о минииграх
 	const char *state_container_name_;
 	// количество пройденных игр на каждом уровне
-	typedef map<int, int> Counters;
+	typedef Common::HashMap<int, int> Counters;
 	Counters completeCounters_;
 
 	struct GameInfoIndex {
@@ -242,7 +243,7 @@ private:
 		}
 	};
 	// информация о пройденных играх
-	typedef map<GameInfoIndex, GameInfo> GameInfoMap;
+	typedef Common::HashMap<GameInfoIndex, GameInfo> GameInfoMap;
 	GameInfoMap gameInfos_;
 	// Информация о текущей игре, при выходе запишется
 	GameInfoIndex currentGameIndex_;
diff --git a/engines/qdengine/minigames/adv/TextManager.cpp b/engines/qdengine/minigames/adv/TextManager.cpp
index 1888dcbd378..75ff9f9ebe1 100644
--- a/engines/qdengine/minigames/adv/TextManager.cpp
+++ b/engines/qdengine/minigames/adv/TextManager.cpp
@@ -330,7 +330,7 @@ void TextManager::quant(float dt) {
 	}
 
 	if (show_scores_.textID >= 0) {
-		if (scoreUpdateTimer_ >= 0.f && scoreUpdateTimer_ <= runtime->time()) {
+		if (scoreUpdateTimer_ >= 0.f && scoreUpdateTimer_ <= runtime->getTime()) {
 			int sgn = SIGN(targetScore_ - currentScore_);
 			int mod = abs(currentScore_ - targetScore_);
 			currentScore_ += sgn * (mod / 10 + 1);
@@ -340,7 +340,7 @@ void TextManager::quant(float dt) {
 			_snprintf(buf, 15, show_scores_.format, currentScore_);
 			updateStaticText(show_scores_.textID, buf);
 
-			scoreUpdateTimer_ = currentScore_ != targetScore_ ? runtime->time() + scoreUpdateTime_ : -1.f;
+			scoreUpdateTimer_ = currentScore_ != targetScore_ ? runtime->getTime() + scoreUpdateTime_ : -1.f;
 		}
 	}
 }
@@ -348,7 +348,7 @@ void TextManager::quant(float dt) {
 void TextManager::updateScore(int score) {
 	targetScore_ = score;
 	if (scoreUpdateTimer_ < 0.f)
-		scoreUpdateTimer_ = runtime->time();
+		scoreUpdateTimer_ = runtime->getTime();
 }
 
 void TextManager::updateTime(int seconds) {
diff --git a/engines/qdengine/minigames/adv/common.cpp b/engines/qdengine/minigames/adv/common.cpp
index dc377fd39e2..11f8c8e700d 100644
--- a/engines/qdengine/minigames/adv/common.cpp
+++ b/engines/qdengine/minigames/adv/common.cpp
@@ -64,11 +64,11 @@ 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 = runtime->parameter(name, false)) {
 		float retValue = defValue;
-		if (_snscanf(data, 8, "%f", &retValue) == 1)
+		if (sscanf(data, "%f", &retValue) == 1)
 			return retValue;
-		xxassert(false, (XBuffer() < "В параметре [" < name < "] неверный тип данных. Должно быть число.").c_str());
+		error("The parameter [%s] contains wrong data type. It must be a number", name);
 	}
 	return defValue;
 
@@ -78,11 +78,11 @@ template<>
 bool getParameter(const char* name, float &out, bool obligatory) {
 	if (const char * data = runtime->parameter(name, obligatory)) {
 		float retValue = out;
-		if (_snscanf(data, 8, "%f", &retValue) == 1) {
+		if (sscanf(data, "%f", &retValue) == 1) {
 			out = retValue;
 			return true;
 		}
-		xxassert(false, (XBuffer() < "В параметре [" < name < "] неверный тип данных. Должно быть число.").c_str());
+		error("The parameter [%s] contains wrong data type. It must be a number", name);
 	}
 	return false;
 
@@ -92,9 +92,9 @@ template<>
 mgVect2f getParameter(const char* name, const mgVect2f& defValue) {
 	if (const char * data = runtime->parameter(name, false)) {
 		mgVect2f retValue = defValue;
-		if (_snscanf(data, 16, "%f %f", &retValue.x, &retValue.y) == 2)
+		if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2)
 			return retValue;
-		xxassert(false, (XBuffer() < "В параметре [" < name < "] неверный тип данных. Должна быть пара чисел.").c_str());
+		error("The parameter [%s] contains wrong data type. It must be a pair of numbers", name);
 	}
 	return defValue;
 
@@ -104,11 +104,11 @@ template<>
 bool getParameter(const char* name, mgVect2f& out, bool obligatory) {
 	if (const char * data = runtime->parameter(name, obligatory)) {
 		mgVect2f retValue = out;
-		if (_snscanf(data, 16, "%f %f", &retValue.x, &retValue.y) == 2) {
+		if (sscanf(data, "%f %f", &retValue.x, &retValue.y) == 2) {
 			out = retValue;
 			return true;
 		}
-		xxassert(false, (XBuffer() < "В параметре [" < name < "] неверный тип данных. Должна быть пара чисел.").c_str());
+		error("The parameter [%s] contains wrong data type. It must be a pair of numbers", name);
 	}
 	return false;
 
diff --git a/engines/qdengine/minigames/adv/common.h b/engines/qdengine/minigames/adv/common.h
index b4b01109dc1..3916eb373f9 100644
--- a/engines/qdengine/minigames/adv/common.h
+++ b/engines/qdengine/minigames/adv/common.h
@@ -22,6 +22,7 @@
 #ifndef QDENGINE_MINIGAMES_ADV_COMMON_H
 #define QDENGINE_MINIGAMES_ADV_COMMON_H
 
+#include "qdengine/qd_fwd.h"
 #include "qdengine/qdcore/qd_minigame_interface.h"
 
 namespace QDEngine {
@@ -71,9 +72,9 @@ public:
 
 typedef qdMinigameCounterInterface *QDCounter;
 
-typedef vector<QDObject> QDObjects;
-typedef vector<int> Indexes;
-typedef vector<mgVect3f> Coords;
+typedef Std::vector<QDObject> QDObjects;
+typedef Std::vector<int> Indexes;
+typedef Std::vector<mgVect3f> Coords;
 
 class MinigameManager;
 extern MinigameManager *runtime;
@@ -84,6 +85,18 @@ T getParameter(const char* name, const T& defValue);
 template<class T>
 bool getParameter(const char* name, T& out, bool obligatory);
 
+enum SystemEvent {
+	EVENT_TIME_1_SECOND_TICK,
+	EVENT_TIME_10_SECOND_TICK,
+	EVENT_TIME_60_SECOND_TICK,
+	EVENT_TIME_10_SECOND_LEFT,
+	EVENT_TIME_LESS_10_SECOND_LEFT_SECOND_TICK,
+	EVENT_TIME_OUT,
+	EVENT_GAME_LOSE,
+	EVENT_GAME_WIN,
+	SYSTEM_EVENTS_SIZE
+};
+
 } // namespace QDEngine
 
 #endif // QDENGINE_MINIGAMES_ADV_COMMON_H
diff --git a/engines/qdengine/minigames/adv/m_puzzle.cpp b/engines/qdengine/minigames/adv/m_puzzle.cpp
index 41e818de85d..7b5a6e8a35c 100644
--- a/engines/qdengine/minigames/adv/m_puzzle.cpp
+++ b/engines/qdengine/minigames/adv/m_puzzle.cpp
@@ -85,7 +85,7 @@ Puzzle::Puzzle() {
 			return;
 	} else
 		rotateTimePeriod_ = 86400; // сутки
-	nextRotateTime_ = runtime->time() + rotateTimePeriod_;
+	nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
 
 	flySpeed_ = getParameter("inventory_drop_speed", 240.f);
 	xassert(flySpeed_ > 0.f);
@@ -143,7 +143,7 @@ Puzzle::Puzzle() {
 	mouseObjPose_ = stidx(stackSize_ + 1);
 
 	inField_ = runtime->debugMode() ? nodes_.size() : 0;
-	nextObjTime_ = runtime->time();
+	nextObjTime_ = runtime->getTime();
 
 	setState(MinigameInterface::RUNNING);
 }
@@ -248,9 +248,9 @@ void Puzzle::quant(float dt) {
 	else
 		runtime->setGameHelpVariant(1);
 
-	if (runtime->time() > nextRotateTime_) {
+	if (runtime->getTime() > nextRotateTime_) {
 		runtime->event(EVENT_FIELD_ROTATE, mgVect2f(400, 300));
-		nextRotateTime_ = runtime->time() + rotateTimePeriod_;
+		nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
 		globalAngle_ = (globalAngle_ + 1) % angles_;
 		runtime->setCompleteHelpVariant(globalAngle_);
 	}
@@ -262,7 +262,7 @@ void Puzzle::quant(float dt) {
 		else
 			fit = flyObjs_.erase(fit);
 
-	if (inField_ < nodes_.size() && runtime->time() > nextObjTime_ &&
+	if (inField_ < nodes_.size() && runtime->getTime() > nextObjTime_ &&
 	(stack_.size() < stackSize_ - 1 || stack_.size() < stackSize_ && pickedItem_ == -1)) { // нужно добавить в инвентори фишку
 		// ищем случайный не выставленный фрагмент
 		int freeIdx = round(runtime->rnd(0.f, nodes_.size() - 1));
@@ -277,7 +277,7 @@ void Puzzle::quant(float dt) {
 		int idx = distance(nodes_.begin(), it);
 
 		++inField_;
-		nextObjTime_ = runtime->time() + stackPlaceSize_.y / flySpeed_;
+		nextObjTime_ = runtime->getTime() + stackPlaceSize_.y / flySpeed_;
 
 		it->pos = stidx(stackSize_);
 		it->obj.setState(getStateName(it->angle, false, true));
diff --git a/engines/qdengine/minigames/adv/m_swap.cpp b/engines/qdengine/minigames/adv/m_swap.cpp
index 4f064c7aaa1..8f8ec3e0090 100644
--- a/engines/qdengine/minigames/adv/m_swap.cpp
+++ b/engines/qdengine/minigames/adv/m_swap.cpp
@@ -64,7 +64,7 @@ Swap::Swap() {
 
 	if ((rotateTimePeriod_ = getParameter("rotate_period", 86400.f)) < 10.f)
 		return;
-	nextRotateTime_ = runtime->time() + rotateTimePeriod_;
+	nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
 
 	const char *name_begin = runtime->parameter("obj_name_begin", "obj_");
 
@@ -129,11 +129,11 @@ void Swap::quant(float dt) {
 	else
 		runtime->setGameHelpVariant(0);
 
-	if (runtime->time() > nextRotateTime_) {
+	if (runtime->getTime() > nextRotateTime_) {
 		int item1 = runtime->rnd(0, gameSize_ - 1);
 		int item2 = runtime->rnd(0, gameSize_ - 1);
 		if (item1 != last1_ && item1 != last2_ && item1 != pickedItem_ && item2 != last1_ && item2 != last2_ && item2 != pickedItem_) {
-			nextRotateTime_ = runtime->time() + rotateTimePeriod_;
+			nextRotateTime_ = runtime->getTime() + rotateTimePeriod_;
 			rotate(item1, item2, false, true);
 			runtime->event(EVENT_AUTO_ROTATE, mgVect2f(400, 300));
 			return;
diff --git a/engines/qdengine/minigames/adv/qdMath.h b/engines/qdengine/minigames/adv/qdMath.h
index 8acd888032f..1ea73bfe6ef 100644
--- a/engines/qdengine/minigames/adv/qdMath.h
+++ b/engines/qdengine/minigames/adv/qdMath.h
@@ -31,11 +31,11 @@ const float FLT_INF = 1.e+30f;
 #define SQRT3 1.73205081f
 
 inline float dist(const mgVect2f& v1, const mgVect2f& v2) {
-	return sqrt(sqr(v1.x - v2.x) + sqr(v1.y - v2.y));
+	return sqrt((v1.x - v2.x) * (v1.x - v2.x) + (v1.y - v2.y) * (v1.y - v2.y));
 }
 
 inline float abs(const mgVect2f& v) {
-	return sqrt(sqr(v.x) + sqr(v.y));
+	return sqrt(v.x * v.x + v.y * v.y);
 }
 
 inline void norm(mgVect2f& v) {
diff --git a/engines/qdengine/module.mk b/engines/qdengine/module.mk
index 8e91f66731c..c1696fc67e0 100644
--- a/engines/qdengine/module.mk
+++ b/engines/qdengine/module.mk
@@ -4,6 +4,7 @@ MODULE_OBJS = \
 	qdengine.o \
 	console.o \
 	metaengine.o \
+	minigames/adv/Range.o \
 	parser/qdscr_parser.o \
 	parser/xml_parser.o \
 	parser/xml_tag_buffer.o \




More information about the Scummvm-git-logs mailing list