[Scummvm-git-logs] scummvm master -> 04c7c17b76e5ed3307687dd84a97cba7a6ad2f30

mgerhardy noreply at scummvm.org
Sat Jan 6 12:46:39 UTC 2024


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

Summary:
c8b3664446 TWINE: removed newlines from debug and warning calls
401e3eb968 EVENTRECORDER: const for isEventsBufferEmpty()
09c2b1ca80 TWINE: use toSeconds for time conversions
d0a750ef4e TWINE: added new debug level for timers
2472dc2659 TWINE: comment on why this is member var
6770a5ba5e TWINE: comment for Renderer::rot
04c7c17b76 TWINE: Fixed glitches from using the holomap #14808


Commit: c8b366444687033e9f7c01b9e4e77468433e08c7
    https://github.com/scummvm/scummvm/commit/c8b366444687033e9f7c01b9e4e77468433e08c7
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:19+01:00

Commit Message:
TWINE: removed newlines from debug and warning calls

Changed paths:
    engines/twine/twine.cpp


diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 9b07266e74d..3fdd99cf155 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -131,7 +131,7 @@ void TwineScreen::update() {
 		const Common::Rect& destRect = zoomWorkVideoBuffer.getBounds();
 		zoomWorkVideoBuffer.blitFrom(*this, srcRect, destRect);
 		blitFrom(zoomWorkVideoBuffer);
-		// TODO: we need to redraw everything
+		// TODO: we need to redraw everything because we just modified the screen buffer itself
 		_engine->_redraw->_firstTime = true;
 	}
 	Super::update();
@@ -315,9 +315,9 @@ Common::Error TwinEEngine::run() {
 	if (ConfMan.hasKey("boot_param")) {
 		const int sceneIndex = ConfMan.getInt("boot_param");
 		if (sceneIndex < 0 || sceneIndex >= LBA1SceneId::SceneIdMax) {
-			warning("Scene index out of bounds\n");
+			warning("Scene index out of bounds");
 		} else {
-			debug("Boot parameter: %i\n", sceneIndex);
+			debug("Boot parameter: %i", sceneIndex);
 			_gameState->initEngineVars();
 			_text->normalWinDial();
 			_text->_drawTextBoxBackground = true;


Commit: 401e3eb968f8010b8a20bae88525abaa7fc7ce78
    https://github.com/scummvm/scummvm/commit/401e3eb968f8010b8a20bae88525abaa7fc7ce78
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:19+01:00

Commit Message:
EVENTRECORDER: const for isEventsBufferEmpty()

Changed paths:
    common/recorderfile.cpp
    common/recorderfile.h


diff --git a/common/recorderfile.cpp b/common/recorderfile.cpp
index 0cfbea85387..bbd2c360fe5 100644
--- a/common/recorderfile.cpp
+++ b/common/recorderfile.cpp
@@ -368,7 +368,7 @@ RecorderEvent PlaybackFile::getNextEvent() {
 	return result;
 }
 
-bool PlaybackFile::isEventsBufferEmpty() {
+bool PlaybackFile::isEventsBufferEmpty() const {
 	return (uint32)_tmpPlaybackFile.pos() == _eventsSize;
 }
 
diff --git a/common/recorderfile.h b/common/recorderfile.h
index d8ec85b9a43..b9f36036409 100644
--- a/common/recorderfile.h
+++ b/common/recorderfile.h
@@ -153,7 +153,7 @@ public:
 	Graphics::Surface *getScreenShot(int number);
 	int getScreensCount();
 
-	bool isEventsBufferEmpty();
+	bool isEventsBufferEmpty() const;
 	PlaybackFileHeader &getHeader() {return _header;}
 	void updateHeader();
 	void addSaveFile(const String &fileName, InSaveFile *saveStream);


Commit: 09c2b1ca80d2a166f2537811570833e139c858a3
    https://github.com/scummvm/scummvm/commit/09c2b1ca80d2a166f2537811570833e139c858a3
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:19+01:00

Commit Message:
TWINE: use toSeconds for time conversions

Changed paths:
    engines/twine/renderer/redraw.cpp


diff --git a/engines/twine/renderer/redraw.cpp b/engines/twine/renderer/redraw.cpp
index ccbf5400e28..4bfadabffc4 100644
--- a/engines/twine/renderer/redraw.cpp
+++ b/engines/twine/renderer/redraw.cpp
@@ -706,7 +706,7 @@ void Redraw::renderOverlays() {
 				break;
 			}
 			case OverlayType::koNumberRange: {
-				const int32 range = _engine->_collision->boundRuleThree(overlay->info1, overlay->info0, 100, overlay->lifeTime - _engine->timerRef - 50);
+				const int32 range = _engine->_collision->boundRuleThree(overlay->info1, overlay->info0, 100, overlay->lifeTime - _engine->timerRef - _engine->toSeconds(1));
 
 				char text[10];
 				Common::sprintf_s(text, "%d", range);


Commit: d0a750ef4e476017c5db10051c12360562b0b9e6
    https://github.com/scummvm/scummvm/commit/d0a750ef4e476017c5db10051c12360562b0b9e6
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:19+01:00

Commit Message:
TWINE: added new debug level for timers

Changed paths:
    engines/twine/detection.cpp
    engines/twine/holomap.cpp
    engines/twine/menu/menu.cpp
    engines/twine/scene/gamestate.cpp
    engines/twine/shared.h
    engines/twine/twine.cpp


diff --git a/engines/twine/detection.cpp b/engines/twine/detection.cpp
index cffef0aa498..fc5a4d075b7 100644
--- a/engines/twine/detection.cpp
+++ b/engines/twine/detection.cpp
@@ -36,6 +36,7 @@ static const PlainGameDescriptor twineGames[] = {
 
 static const DebugChannelDef debugFlagList[] = {
 	{TwinE::kDebugScripts, "Scripts", "Scripts debugging"},
+	{TwinE::kDebugTime, "Time", "Time debugging"},
 	DEBUG_CHANNEL_END
 };
 
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index bbe3d3cc60b..2b74361477b 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -416,6 +416,7 @@ void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
 			//_engine->_screens->fadeToPal(_engine->_screens->_paletteRGBACustom);
 		}
 		++_engine->timerRef;
+		debugC(3, kDebugLevels::kDebugTime, "Holomap time: %i", _engine->timerRef);
 	}
 
 	_engine->_screens->clearScreen();
@@ -658,6 +659,7 @@ void Holomap::holoMap() {
 		}
 
 		++_engine->timerRef;
+		debugC(3, kDebugLevels::kDebugTime, "Holomap time: %i", _engine->timerRef);
 
 		if (flagpal) {
 			flagpal = false;
diff --git a/engines/twine/menu/menu.cpp b/engines/twine/menu/menu.cpp
index 03b9c271cba..9d180129c3c 100644
--- a/engines/twine/menu/menu.cpp
+++ b/engines/twine/menu/menu.cpp
@@ -1253,7 +1253,9 @@ void Menu::processBehaviourMenu(bool behaviourMenu) {
 
 			drawBehaviour(left, top, _engine->_actor->_heroBehaviour, -1, true);
 
+			// increase the timer to play the animations
 			_engine->timerRef++;
+			debugC(3, kDebugLevels::kDebugTime, "Behaviour time: %i", _engine->timerRef);
 		}
 
 		_engine->timerRef = tmpTime;
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index 26f4800d731..24ce9d03b42 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -444,7 +444,9 @@ void GameState::doFoundObj(InventoryItems item) {
 
 		_engine->_text->playVoxSimple(_engine->_text->_currDialTextEntry);
 
+		// advance the timer to play animations
 		_engine->timerRef++;
+		debugC(3, kDebugLevels::kDebugTime, "FoundObj time: %i", _engine->timerRef);
 	}
 
 	while (_engine->_text->playVoxSimple(_engine->_text->_currDialTextEntry)) {
@@ -536,6 +538,7 @@ void GameState::processGameoverAnimation() {
 		_engine->_renderer->affObjetIso(0, 0, 0, LBAAngles::ANGLE_0, LBAAngles::ANGLE_0, LBAAngles::ANGLE_0, gameOverPtr, dummy);
 
 		_engine->timerRef++;
+		debugC(3, kDebugLevels::kDebugTime, "GameOver time: %i", _engine->timerRef);
 	}
 
 	_engine->_sound->playSample(Samples::Explode);
diff --git a/engines/twine/shared.h b/engines/twine/shared.h
index 32ac74445fa..d7665677006 100644
--- a/engines/twine/shared.h
+++ b/engines/twine/shared.h
@@ -749,7 +749,8 @@ inline constexpr T bits(T value, uint8 offset, uint8 bits) {
 #define COLOR_158 158
 
 enum kDebugLevels {
-	kDebugScripts =   1 << 0
+	kDebugScripts =   1 << 0,
+	kDebugTime    =   1 << 1
 };
 
 }
diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index 3fdd99cf155..b1efeff74c4 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -663,16 +663,20 @@ int TwinEEngine::getRandomNumber(uint max) {
 void TwinEEngine::freezeTime(bool pause) {
 	if (_isTimeFreezed == 0) {
 		_saveFreezedTime = timerRef;
+		debugC(3, kDebugLevels::kDebugTime, "freezeTime: timer %i", timerRef);
 		if (pause)
 			_pauseToken = pauseEngine();
 	}
 	_isTimeFreezed++;
+	debugC(3, kDebugLevels::kDebugTime, "freezeTime: %i", _isTimeFreezed);
 }
 
 void TwinEEngine::unfreezeTime() {
 	--_isTimeFreezed;
+	debugC(3, kDebugLevels::kDebugTime, "unfreezeTime: %i", _isTimeFreezed);
 	if (_isTimeFreezed == 0) {
 		timerRef = _saveFreezedTime;
+		debugC(3, kDebugLevels::kDebugTime, "unfreezeTime: time %i", timerRef);
 		if (_pauseToken.isActive()) {
 			_pauseToken.clear();
 		}


Commit: 2472dc265930d2288b7e0522097212f69ece543e
    https://github.com/scummvm/scummvm/commit/2472dc265930d2288b7e0522097212f69ece543e
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:20+01:00

Commit Message:
TWINE: comment on why this is member var

Changed paths:
    engines/twine/renderer/renderer.h


diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index a3f97b3462f..8e66a3b7839 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -147,6 +147,7 @@ private:
 		int16 normalTable[500]{0};
 	};
 
+	// this is a member var, because 10k on the stack is not supported by every platform
 	ModelData _modelData;
 
 	// AnimNuage


Commit: 6770a5ba5e43a68f64ced533acb05e0404c8037c
    https://github.com/scummvm/scummvm/commit/6770a5ba5e43a68f64ced533acb05e0404c8037c
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:20+01:00

Commit Message:
TWINE: comment for Renderer::rot

Changed paths:
    engines/twine/renderer/renderer.h


diff --git a/engines/twine/renderer/renderer.h b/engines/twine/renderer/renderer.h
index 8e66a3b7839..71ced898d06 100644
--- a/engines/twine/renderer/renderer.h
+++ b/engines/twine/renderer/renderer.h
@@ -163,6 +163,9 @@ private:
 	void processRotatedElement(IMatrix3x3 *targetMatrix, const Common::Array<BodyVertex>& vertices, int32 rotX, int32 rotY, int32 rotZ, const BodyBone &bone, ModelData *modelData);
 	void transRotList(const Common::Array<BodyVertex>& vertices, int32 firstPoint, int32 numPoints, I16Vec3 *destPoints, const IMatrix3x3 *translationMatrix, const IVec3 &angleVec, const IVec3 &destPos);
 	void translateGroup(IMatrix3x3 *targetMatrix, const Common::Array<BodyVertex>& vertices, int32 rotX, int32 rotY, int32 rotZ, const BodyBone &bone, ModelData *modelData);
+	/**
+	 * @brief Rotate the given coordinates by the given rotation matrix
+	 */
 	IVec3 rot(const IMatrix3x3 &matrix, int32 x, int32 y, int32 z);
 
 	IVec3 _cameraPos;


Commit: 04c7c17b76e5ed3307687dd84a97cba7a6ad2f30
    https://github.com/scummvm/scummvm/commit/04c7c17b76e5ed3307687dd84a97cba7a6ad2f30
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2024-01-06T13:46:20+01:00

Commit Message:
TWINE: Fixed glitches from using the holomap #14808

https://bugs.scummvm.org/ticket/14808

Changed paths:
    engines/twine/twine.cpp


diff --git a/engines/twine/twine.cpp b/engines/twine/twine.cpp
index b1efeff74c4..1e0ca33d603 100644
--- a/engines/twine/twine.cpp
+++ b/engines/twine/twine.cpp
@@ -951,9 +951,12 @@ bool TwinEEngine::runGameEngine() { // mainLoopInteration
 
 		// Draw holomap
 		if (_input->toggleActionIfActive(TwinEActionType::OpenHolomap) && _gameState->hasItem(InventoryItems::kiHolomap) && !_gameState->inventoryDisabled()) {
-			ScopedEngineFreeze freeze(this);
 			testRestoreModeSVGA(true);
+			freezeTime(false);
 			_holomap->holoMap();
+			// unfreeze here - the redrawEngineActions is also doing a freeze
+			// see https://bugs.scummvm.org/ticket/14808
+			unfreezeTime();
 			_screens->_fadePalette = true;
 			_redraw->redrawEngineActions(true);
 		}




More information about the Scummvm-git-logs mailing list