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

mgerhardy noreply at scummvm.org
Sun Apr 13 18:12:02 UTC 2025


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

Summary:
f655ae5daa TWINE: the holomap rotation is slow and location interaction is weird


Commit: f655ae5daa3708b7ced24e30a26f9f8e672ec8aa
    https://github.com/scummvm/scummvm/commit/f655ae5daa3708b7ced24e30a26f9f8e672ec8aa
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2025-04-13T19:11:36+01:00

Commit Message:
TWINE: the holomap rotation is slow and location interaction is weird

See issue https://bugs.scummvm.org/ticket/15409 and https://bugs.scummvm.org/ticket/12074

Changed paths:
    engines/twine/holomap_v1.cpp
    engines/twine/holomap_v1.h
    engines/twine/text.h


diff --git a/engines/twine/holomap_v1.cpp b/engines/twine/holomap_v1.cpp
index 6daef4931ae..84ab8b9def6 100644
--- a/engines/twine/holomap_v1.cpp
+++ b/engines/twine/holomap_v1.cpp
@@ -690,10 +690,24 @@ void HolomapV1::holoMap() {
 		}
 
 		if (_dialstat) {
-			_engine->_text->drawHolomapLocation(_listHoloPos[_current].mess);
+			_engine->_text->normalWinDial();
+			_engine->_text->setFontCrossColor(COLOR_WHITE);
+			_engine->_interface->box(_engine->_text->_dialTextBox, COLOR_BLACK);
+			_engine->saveFrontBuffer();
+			_engine->_text->commonOpenDial(_listHoloPos[_current].mess);
+			_engine->_text->initDialWindow();
+			_textState = ProgressiveTextState::ContinueRunning;
 			_dialstat = false;
 		}
 
+		if (_textState == ProgressiveTextState::ContinueRunning) {
+			_textState = _engine->_text->nextDialChar();
+			if (_textState != ProgressiveTextState::ContinueRunning) {
+				_engine->_text->fadeInRemainingChars();
+				_engine->_text->closeDial();
+			}
+		}
+
 		++_engine->timerRef;
 		debugC(3, kDebugLevels::kDebugTimers, "Holomap time: %i", _engine->timerRef);
 
diff --git a/engines/twine/holomap_v1.h b/engines/twine/holomap_v1.h
index 6c3f1671897..e003c6e59f8 100644
--- a/engines/twine/holomap_v1.h
+++ b/engines/twine/holomap_v1.h
@@ -24,6 +24,7 @@
 
 #include "twine/holomap.h"
 #include "twine/shared.h"
+#include "twine/text.h"
 
 #define NUM_HOLOMAPCOLORS 32
 #define HOLOMAP_PALETTE_INDEX (12*16)
@@ -111,6 +112,7 @@ public:
 	bool _flagredraw = false;
 	bool _dialstat = false;
 	bool _flagpal = false;
+	ProgressiveTextState _textState = ProgressiveTextState::End;
 
 	/**
 	 * Set Holomap location position
diff --git a/engines/twine/text.h b/engines/twine/text.h
index 576ad826500..958efc69a2c 100644
--- a/engines/twine/text.h
+++ b/engines/twine/text.h
@@ -143,20 +143,20 @@ private:
 	/** Dialogue text buffer size for cross coloring dialogues */
 	int32 _nbDegrade = 0;
 
-	// Dial_X1, Dial_Y1
-	Common::Rect _dialTextBox { 0, 0, 0, 0};
-
 	int32 _maxLineDial = 0;
 	int32 _dialMaxSize = 0;
 
 	bool _isShiftJIS = false;
 	bool _isVisualRTL = false;
 
-	bool displayText(TextId index, bool showText, bool playVox, bool loop); // MyDial
 public:
 	Text(TwinEEngine *engine);
 	~Text();
 
+	// Dial_X1, Dial_Y1
+	Common::Rect _dialTextBox { 0, 0, 0, 0};
+	bool displayText(TextId index, bool showText, bool playVox, bool loop); // MyDial
+
 	static const int32 lineHeight = INTER_LINE;
 
 	bool _flagRunningDial = false;




More information about the Scummvm-git-logs mailing list