[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