[Scummvm-git-logs] scummvm master -> bcdc92833b1fe5b5196b0777955ededa763eb1a7
aquadran
noreply at scummvm.org
Mon Sep 1 13:39:05 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:
bcdc92833b WINTERMUTE: Initialize variables after resume from save game
Commit: bcdc92833b1fe5b5196b0777955ededa763eb1a7
https://github.com/scummvm/scummvm/commit/bcdc92833b1fe5b5196b0777955ededa763eb1a7
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-09-01T15:38:59+02:00
Commit Message:
WINTERMUTE: Initialize variables after resume from save game
Changed paths:
engines/wintermute/ad/ad_game.cpp
engines/wintermute/ad/ad_scene_geometry.cpp
engines/wintermute/ad/ad_talk_node.cpp
engines/wintermute/base/base_region.cpp
engines/wintermute/base/base_sub_frame.cpp
engines/wintermute/base/font/base_font_truetype.cpp
engines/wintermute/base/gfx/3dloader_3ds.cpp
engines/wintermute/base/particles/part_particle.cpp
engines/wintermute/base/scriptables/script_engine.cpp
diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index ac8b4ff58f3..05da76078e4 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -1559,6 +1559,11 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferCharPtr(TMEMBER(_startupScene));
+ // TODO: update at next save version bump
+ //persistMgr->transferSint32(TMEMBER_INT(_videoSkipButton));
+ if (!persistMgr->getIsSaving()) {
+ _videoSkipButton = VIDEO_SKIP_LEFT;
+ }
return STATUS_OK;
}
diff --git a/engines/wintermute/ad/ad_scene_geometry.cpp b/engines/wintermute/ad/ad_scene_geometry.cpp
index 41f4bdf6c5f..787c2f06797 100644
--- a/engines/wintermute/ad/ad_scene_geometry.cpp
+++ b/engines/wintermute/ad/ad_scene_geometry.cpp
@@ -1375,6 +1375,20 @@ bool AdSceneGeometry::persist(BasePersistenceManager *persistMgr) {
_maxLightsWarning = false;
}
+ // initialise to defaults
+ if (!persistMgr->getIsSaving()) {
+ memset(&_drawingViewport, 0, sizeof(DXViewport));
+
+ DXMatrixIdentity(&_lastWorldMat);
+ DXMatrixIdentity(&_lastViewMat);
+ DXMatrixIdentity(&_lastProjMat);
+
+ _lastOffsetX = _lastOffsetY = 0;
+ _lastScrollX = _lastScrollY = 0;
+
+ _PFAlternateDist = FLT_MAX; // this is not stored in original, lets restore to default
+ }
+
return true;
}
diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp
index 281a26f5182..5d07ebfe6e5 100644
--- a/engines/wintermute/ad/ad_talk_node.cpp
+++ b/engines/wintermute/ad/ad_talk_node.cpp
@@ -200,6 +200,11 @@ bool AdTalkNode::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferPtr(TMEMBER_PTR(_spriteSet));
persistMgr->transferCharPtr(TMEMBER(_spriteSetFilename));
+ // initialise to default
+ if (!persistMgr->getIsSaving()) {
+ _preCache = false;
+ }
+
return STATUS_OK;
}
diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp
index 6f122e93512..1e67474a9e7 100644
--- a/engines/wintermute/base/base_region.cpp
+++ b/engines/wintermute/base/base_region.cpp
@@ -439,6 +439,11 @@ bool BaseRegion::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferSint32(TMEMBER(_lastMimicY));
_points.persist(persistMgr);
+ // initialise to default
+ if (!persistMgr->getIsSaving()) {
+ BasePlatform::setRectEmpty(&_rect);
+ }
+
return STATUS_OK;
}
diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp
index 0a133f09e40..e1911bf7652 100644
--- a/engines/wintermute/base/base_sub_frame.cpp
+++ b/engines/wintermute/base/base_sub_frame.cpp
@@ -400,6 +400,11 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferBool(TMEMBER(_mirrorY));
persistMgr->transferUint32(TMEMBER(_transparent));
+ // initialise to default
+ if (!persistMgr->getIsSaving()) {
+ _surface = nullptr;
+ }
+
return STATUS_OK;
}
diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp
index 80af9b9c301..80254f31c42 100644
--- a/engines/wintermute/base/font/base_font_truetype.cpp
+++ b/engines/wintermute/base/font/base_font_truetype.cpp
@@ -522,7 +522,13 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) {
for (int i = 0; i < NUM_CACHED_TEXTS; i++) {
_cachedTexts[i] = nullptr;
}
+ }
+
+ // initialise to defaults
+ if (!persistMgr->getIsSaving()) {
_fallbackFont = _font = _deletableFont = nullptr;
+ _lineHeight = 0;
+ _maxCharWidth = _maxCharHeight = 0;
}
return STATUS_OK;
diff --git a/engines/wintermute/base/gfx/3dloader_3ds.cpp b/engines/wintermute/base/gfx/3dloader_3ds.cpp
index fe72215c75c..03a34218b03 100644
--- a/engines/wintermute/base/gfx/3dloader_3ds.cpp
+++ b/engines/wintermute/base/gfx/3dloader_3ds.cpp
@@ -84,10 +84,13 @@ Loader3DS::FileObject3DS::FileObject3DS() {
_lightColor = 0;
_lightHotspot = false;
_lightFalloff = false;
+ _lightTarget._x = _lightTarget._y = _lightTarget._z = 0.0f;
+ _lightPos._x = _lightPos._y = _lightPos._z = 0.0f;
_cameraBank = 0;
_cameraLens = 0;
_cameraFOV = 0;
+ _cameraPos._x = _cameraPos._y = _cameraPos._z = 0.0f;
_hidden = false;
}
diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp
index 04f9b8477de..4eac02e1532 100644
--- a/engines/wintermute/base/particles/part_particle.cpp
+++ b/engines/wintermute/base/particles/part_particle.cpp
@@ -265,6 +265,11 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) {
filename = nullptr;
}
+ // initialise to default
+ if (!persistMgr->getIsSaving()) {
+ _fadeStartAlpha = 0;
+ }
+
return STATUS_OK;
}
diff --git a/engines/wintermute/base/scriptables/script_engine.cpp b/engines/wintermute/base/scriptables/script_engine.cpp
index 59950c28e0c..0ec291036ed 100644
--- a/engines/wintermute/base/scriptables/script_engine.cpp
+++ b/engines/wintermute/base/scriptables/script_engine.cpp
@@ -527,6 +527,12 @@ bool ScEngine::persist(BasePersistenceManager *persistMgr) {
persistMgr->transferPtr(TMEMBER_PTR(_globals));
_scripts.persist(persistMgr);
+ // initialise to defaults
+ if (!persistMgr->getIsSaving()) {
+ _isProfiling = false;
+ _profilingStartTime = 0;
+ }
+
return STATUS_OK;
}
More information about the Scummvm-git-logs
mailing list