[Scummvm-git-logs] scummvm master -> 15bbb4dbe49364c6c0db1102866e9e3fda765a26

aquadran noreply at scummvm.org
Sat Jun 25 21:49:38 UTC 2022


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:
15bbb4dbe4 WINTERMUTE: WME3D: Rearrange constructors initialisation to match original code.


Commit: 15bbb4dbe49364c6c0db1102866e9e3fda765a26
    https://github.com/scummvm/scummvm/commit/15bbb4dbe49364c6c0db1102866e9e3fda765a26
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2022-06-25T23:49:31+02:00

Commit Message:
WINTERMUTE: WME3D: Rearrange constructors initialisation to match original code.

Changed paths:
    engines/wintermute/ad/ad_actor_3dx.cpp
    engines/wintermute/ad/ad_attach_3dx.cpp
    engines/wintermute/ad/ad_object_3d.cpp
    engines/wintermute/ad/ad_path3d.cpp
    engines/wintermute/ad/ad_path_point3d.cpp
    engines/wintermute/ad/ad_scene.cpp
    engines/wintermute/ad/ad_waypoint_group3d.cpp
    engines/wintermute/base/base_active_rect.cpp
    engines/wintermute/base/base_game.cpp
    engines/wintermute/base/base_object.cpp
    engines/wintermute/base/gfx/3ds/camera3d.cpp
    engines/wintermute/base/gfx/3ds/light3d.cpp
    engines/wintermute/base/gfx/x/active_animation.cpp
    engines/wintermute/base/gfx/x/animation.cpp
    engines/wintermute/base/gfx/x/animation_channel.cpp
    engines/wintermute/base/gfx/x/animation_set.cpp
    engines/wintermute/base/gfx/x/material.cpp
    engines/wintermute/base/gfx/x/meshx.cpp
    engines/wintermute/base/gfx/x/modelx.cpp


diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index bf6b2828ea9..bc8d2dfbc77 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -60,29 +60,42 @@ namespace Wintermute {
 IMPLEMENT_PERSISTENT(AdActor3DX, false)
 
 //////////////////////////////////////////////////////////////////////////
-AdActor3DX::AdActor3DX(BaseGame *inGame) : AdObject3D(inGame),
-										   _partOffset(0.0f, 0.0f, 0.0f),
-										   _stateAnimChannel(-1),
-										   _defaultTransTime(200),
-										   _defaultStopTransTime(200),
-										   _afterWalkAngle(-1.0f),
-										   _talkAnimName("talk"),
-										   _idleAnimName("idle"),
-										   _walkAnimName("walk"),
-										   _turnLeftAnimName("turnleft"),
-										   _turnRightAnimName("turnright"),
-										   _talkAnimChannel(0),
-										   _directWalkMode(DIRECT_WALK_NONE),
-										   _directTurnMode(DIRECT_TURN_NONE),
-										   _directWalkVelocity(0.0f),
-										   _directTurnVelocity(0.0f),
-										   _goToTolerance(2),
-										   _targetPoint3D(0.0f, 0.0f, 0.0f),
-										   _targetPoint2D(new BasePoint),
-										   _targetAngle(0.0f),
-										   _path3D(new AdPath3D(inGame)),
-										   _path2D(new AdPath(inGame)) {
+AdActor3DX::AdActor3DX(BaseGame *inGame) : AdObject3D(inGame) {
+	_targetPoint3D = Math::Vector3d(0.0f, 0.0f, 0.0f);
+	_targetPoint2D = new BasePoint;
+
+	_targetAngle = 0.0f;
+	_afterWalkAngle = -1.0f;
+
+	_path3D = new AdPath3D(inGame);
+	_path2D = new AdPath(inGame);
+
+	_talkAnimName = Common::String("talk");
+
+	_idleAnimName = Common::String("idle");
+
+	_walkAnimName = Common::String("walk");
+
+	_turnLeftAnimName = Common::String("turnleft");
+
+	_turnRightAnimName = Common::String("turnright");
+
+	_talkAnimChannel = 0;
+
 	_gameRef->_renderer3D->enableShadows();
+
+	_directWalkMode = DIRECT_WALK_NONE;
+	_directTurnMode = DIRECT_TURN_NONE;
+	_directWalkVelocity = 0.0f;
+	_directTurnVelocity = 0.0f;
+
+	_defaultTransTime = 200;
+	_defaultStopTransTime = 200;
+	_stateAnimChannel = -1;
+
+	_goToTolerance = 2;
+
+	_partOffset = Math::Vector3d(0.0f, 0.0f, 0.0f);
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/ad/ad_attach_3dx.cpp b/engines/wintermute/ad/ad_attach_3dx.cpp
index 73d45e153a6..4e271fb137c 100644
--- a/engines/wintermute/ad/ad_attach_3dx.cpp
+++ b/engines/wintermute/ad/ad_attach_3dx.cpp
@@ -40,7 +40,8 @@ namespace Wintermute {
 IMPLEMENT_PERSISTENT(AdAttach3DX, false)
 
 //////////////////////////////////////////////////////////////////////////
-AdAttach3DX::AdAttach3DX(BaseGame *inGame, BaseObject *owner) : AdObject3D(inGame), _owner(owner) {
+AdAttach3DX::AdAttach3DX(BaseGame *inGame, BaseObject *owner) : AdObject3D(inGame) {
+	_owner = owner;
 	_dropToFloor = false;
 }
 
diff --git a/engines/wintermute/ad/ad_object_3d.cpp b/engines/wintermute/ad/ad_object_3d.cpp
index 2ad4047daa1..0107bd37f51 100644
--- a/engines/wintermute/ad/ad_object_3d.cpp
+++ b/engines/wintermute/ad/ad_object_3d.cpp
@@ -43,18 +43,24 @@ namespace Wintermute {
 IMPLEMENT_PERSISTENT(AdObject3D, false)
 
 //////////////////////////////////////////////////////////////////////////
-AdObject3D::AdObject3D(BaseGame *inGame) : AdObject(inGame),
-										   _tempSkelAnim(nullptr),
-										   _lastPosVector(0.0f, 0.0f, 0.0f),
-										   _dropToFloor(true),
-										   _velocity(1.0f),
-										   _angVelocity(1.0f),
-										   _ambientLightColor(0x00000000),
-										   _hasAmbientLightColor(false),
-										   _shadowVolume(nullptr) {
+AdObject3D::AdObject3D(BaseGame *inGame) : AdObject(inGame) {
 	_is3D = true;
+
+	_velocity = 1.0f;
+	_angVelocity = 1.0f;
+	_lastPosVector = Math::Vector3d(0.0f, 0.0f, 0.0f);
+
 	_state = _nextState = STATE_READY;
+
+	_dropToFloor = true;
 	_shadowType = SHADOW_STENCIL;
+
+	_tempSkelAnim = nullptr;
+
+	_shadowVolume = nullptr;
+
+	_ambientLightColor = 0x00000000;
+	_hasAmbientLightColor = false;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/ad/ad_path3d.cpp b/engines/wintermute/ad/ad_path3d.cpp
index 5c47916ee6d..dfa0d9d9eee 100644
--- a/engines/wintermute/ad/ad_path3d.cpp
+++ b/engines/wintermute/ad/ad_path3d.cpp
@@ -33,7 +33,9 @@ namespace Wintermute {
 IMPLEMENT_PERSISTENT(AdPath3D, false)
 
 //////////////////////////////////////////////////////////////////////////
-AdPath3D::AdPath3D(BaseGame *inGame) : BaseClass(inGame), _ready(false), _currIndex(-1) {
+AdPath3D::AdPath3D(BaseGame *inGame) : BaseClass(inGame) {
+	_currIndex = -1;
+	_ready = false;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/ad/ad_path_point3d.cpp b/engines/wintermute/ad/ad_path_point3d.cpp
index 2ddffe14950..279d30d12eb 100644
--- a/engines/wintermute/ad/ad_path_point3d.cpp
+++ b/engines/wintermute/ad/ad_path_point3d.cpp
@@ -33,9 +33,12 @@ namespace Wintermute {
 IMPLEMENT_PERSISTENT(AdPathPoint3D, false)
 
 //////////////////////////////////////////////////////////////////////////
-AdPathPoint3D::AdPathPoint3D() : BaseClass(),
-								 _origin(nullptr), _marked(false),
-								 _distance(0.0f), _pos(0.0f, 0.0f, 0.0f) {
+AdPathPoint3D::AdPathPoint3D() : BaseClass() {
+	_pos = Math::Vector3d(0.0f, 0.0f, 0.0f);
+	_distance = 0.0f;
+
+	_marked = false;
+	_origin = nullptr;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index fce302ae31b..e5a77d6b960 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -96,23 +96,7 @@ void AdScene::setDefaults() {
 	_mainLayer = nullptr;
 #ifdef ENABLE_WME3D
 	_sceneGeometry = nullptr;
-	_showGeometry = false;
-
-	_fov = -1.0f;
-	_nearPlane = -1.0f;
-	_farPlane = -1.0f;
-
-	_maxShadowType = SHADOW_FLAT;
-	_ambientLightColor = 0x00000000;
-
-	_fogParameters._enabled = false;
-	_fogParameters._color = 0x00FFFFFF;
-	_fogParameters._start = 0.0f;
-	_fogParameters._end = 0.0f;
-
-	_2DPathfinding = false;
 #endif
-
 	_pfPointsNum = 0;
 	_persistentState = false;
 	_persistentStateSprites = true;
@@ -129,6 +113,10 @@ void AdScene::setDefaults() {
 
 	_paralaxScrolling = true;
 
+#ifdef ENABLE_WME3D
+	_showGeometry = false;
+#endif
+
 	// editor settings
 	_editorMarginH = _editorMarginV = 100;
 
@@ -156,7 +144,23 @@ void AdScene::setDefaults() {
 	_fader = new BaseFader(_gameRef);
 	_gameRef->registerObject(_fader);
 
+#ifdef ENABLE_WME3D
+	_fov = -1.0f;
+#endif
 	_viewport = nullptr;
+
+	_nearPlane = -1.0f;
+	_farPlane = -1.0f;
+
+	_2DPathfinding = false;
+	_maxShadowType = SHADOW_FLAT;
+
+	_ambientLightColor = 0x00000000;
+
+	_fogParameters._enabled = false;
+	_fogParameters._color = 0x00FFFFFF;
+	_fogParameters._start = 0.0f;
+	_fogParameters._end = 0.0f;
 }
 
 
diff --git a/engines/wintermute/ad/ad_waypoint_group3d.cpp b/engines/wintermute/ad/ad_waypoint_group3d.cpp
index 1825f5db127..96f53220320 100644
--- a/engines/wintermute/ad/ad_waypoint_group3d.cpp
+++ b/engines/wintermute/ad/ad_waypoint_group3d.cpp
@@ -34,7 +34,8 @@ namespace Wintermute {
 //IMPLEMENT_PERSISTENT(AdWaypointGroup3D, false);
 
 //////////////////////////////////////////////////////////////////////////
-AdWaypointGroup3D::AdWaypointGroup3D(BaseGame *inGame) : BaseClass(inGame), _active(true) {
+AdWaypointGroup3D::AdWaypointGroup3D(BaseGame *inGame) : BaseClass(inGame) {
+	_active = true;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/base_active_rect.cpp b/engines/wintermute/base/base_active_rect.cpp
index 84c921f1e53..173a7565663 100644
--- a/engines/wintermute/base/base_active_rect.cpp
+++ b/engines/wintermute/base/base_active_rect.cpp
@@ -39,15 +39,14 @@ BaseActiveRect::BaseActiveRect(BaseGame *inGame) : BaseClass(inGame) {
 	_rect.setEmpty();
 	_owner = nullptr;
 	_frame = nullptr;
+#ifdef ENABLE_WME3D
+	_modelX = nullptr;
+#endif
 	_region = nullptr;
 	_zoomX = 100;
 	_zoomY = 100;
 	_offsetX = _offsetY = 0;
 	clipRect();
-
-#ifdef ENABLE_WME3D
-	_modelX = nullptr;
-#endif
 }
 
 
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index fb13200e986..e8328866398 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -111,6 +111,9 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
 	_surfaceStorage = nullptr;
 	_fontStorage = nullptr;
 	_renderer = nullptr;
+#ifdef ENABLE_WME3D
+	_renderer3D = nullptr;
+#endif
 	_soundMgr = nullptr;
 	_transMgr = nullptr;
 	_scEngine = nullptr;
@@ -153,11 +156,7 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
 
 #ifdef ENABLE_WME3D
 	_useD3D = true;
-	_renderer3D = nullptr;
 	_playing3DGame = false;
-
-	_supportsRealTimeShadows = false;
-	_maxShadowType = SHADOW_STENCIL;
 #else
 	_useD3D = false;
 #endif
@@ -201,6 +200,11 @@ BaseGame::BaseGame(const Common::String &targetName) : BaseObject(this), _target
 	_thumbnailWidth = kThumbnailWidth;
 	_thumbnailHeight = kThumbnailHeight2;
 
+#ifdef ENABLE_WME3D
+	_maxShadowType = SHADOW_STENCIL;
+	_supportsRealTimeShadows = false;
+#endif
+
 	_localSaveDir = "saves";
 
 	_saveDirChecked = false;
diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp
index 8f511315c41..f06ba42a877 100644
--- a/engines/wintermute/base/base_object.cpp
+++ b/engines/wintermute/base/base_object.cpp
@@ -95,14 +95,6 @@ BaseObject::BaseObject(BaseGame *inGame) : BaseScriptHolder(inGame) {
 	}
 	_saveState = true;
 
-	_nonIntMouseEvents = false;
-
-	// sound FX
-	_sFXType = SFX_NONE;
-	_sFXParam1 = _sFXParam2 = _sFXParam3 = _sFXParam4 = 0;
-
-	_blendMode = Graphics::BLEND_NORMAL;
-
 #ifdef ENABLE_WME3D
 	_modelX = nullptr;
 	_shadowModel = nullptr;
@@ -114,11 +106,18 @@ BaseObject::BaseObject(BaseGame *inGame) : BaseScriptHolder(inGame) {
 	_shadowImage = nullptr;
 	_shadowSize = 10.0f;
 	_shadowType = SHADOW_NONE;
-	// argb value
 	_shadowColor = 0x80000000;
 	_shadowLightPos = Math::Vector3d(-40.0f, 200.0f, -40.0f);
 	_drawBackfaces = true;
 #endif
+
+	_nonIntMouseEvents = false;
+
+	// sound FX
+	_sFXType = SFX_NONE;
+	_sFXParam1 = _sFXParam2 = _sFXParam3 = _sFXParam4 = 0;
+
+	_blendMode = Graphics::BLEND_NORMAL;
 }
 
 
diff --git a/engines/wintermute/base/gfx/3ds/camera3d.cpp b/engines/wintermute/base/gfx/3ds/camera3d.cpp
index 27c9aa66f4f..e4cdd971f49 100644
--- a/engines/wintermute/base/gfx/3ds/camera3d.cpp
+++ b/engines/wintermute/base/gfx/3ds/camera3d.cpp
@@ -40,10 +40,12 @@ namespace Wintermute {
 //////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////
-Camera3D::Camera3D(BaseGame *inGame) : BaseNamedObject(inGame),
-                                       _position(0.0f, 0.0f, 0.0f), _target(0.0f, 0.0f, 0.0f), _bank(0.0f),
-                                       _fov(Math::Angle(45.0f).getRadians()), _originalFOV(Math::Angle(45.0f).getRadians()),
-                                       _nearClipPlane(-1.0f), _farClipPlane(-1.0f) {
+Camera3D::Camera3D(BaseGame *inGame) : BaseNamedObject(inGame) {
+	_position = Math::Vector3d(0.0f, 0.0f, 0.0f);
+	_target = Math::Vector3d(0.0f, 0.0f, 0.0f);
+	_bank = 0.0f;
+	_fov = _originalFOV = Math::Angle(45.0f).getRadians();
+	_nearClipPlane = _farClipPlane = -1.0f;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/3ds/light3d.cpp b/engines/wintermute/base/gfx/3ds/light3d.cpp
index 933b60d3004..099510cdd6f 100644
--- a/engines/wintermute/base/gfx/3ds/light3d.cpp
+++ b/engines/wintermute/base/gfx/3ds/light3d.cpp
@@ -37,10 +37,16 @@
 namespace Wintermute {
 
 //////////////////////////////////////////////////////////////////////////
-Light3D::Light3D(BaseGame *inGame) : BaseScriptable(inGame, false, false),
-                                     _diffuseColor(BYTETORGBA(255, 255, 255, 255)),
-                                     _position(0, 0, 0), _target(0, 0, 0), _isSpotlight(false),
-                                     _active(true), _falloff(0), _distance(0.0f), _isAvailable(false) {
+Light3D::Light3D(BaseGame *inGame) : BaseScriptable(inGame, false, false) {
+	_diffuseColor = BYTETORGBA(255, 255, 255, 255);
+	_position = Math::Vector3d(0, 0, 0);
+	_target = Math::Vector3d(0, 0, 0);
+	_isSpotlight = false;
+	_falloff = 0;
+	_active = true;
+
+	_distance = 0.0f;
+	_isAvailable = false;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/x/active_animation.cpp b/engines/wintermute/base/gfx/x/active_animation.cpp
index d008feae996..1d4f7b7e78f 100644
--- a/engines/wintermute/base/gfx/x/active_animation.cpp
+++ b/engines/wintermute/base/gfx/x/active_animation.cpp
@@ -33,11 +33,17 @@
 namespace Wintermute {
 
 //////////////////////////////////////////////////////////////////////////
-ActiveAnimation::ActiveAnimation(BaseGame *inGame, ModelX *model) : BaseClass(inGame),
-	_model(model), _currentFrame(-1),
-	_startTime(0), _looping(false),
-	_finished(true), _lastLocalTime(0),
-	_animation(nullptr) {
+ActiveAnimation::ActiveAnimation(BaseGame *inGame, ModelX *model) : BaseClass(inGame) {
+	_model = model;
+
+	_animation = nullptr;
+
+	_looping = false;
+	_finished = true;
+	_startTime = 0;
+	_lastLocalTime = 0;
+
+	_currentFrame = -1;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/x/animation.cpp b/engines/wintermute/base/gfx/x/animation.cpp
index 77516f4ca0f..218166d7612 100644
--- a/engines/wintermute/base/gfx/x/animation.cpp
+++ b/engines/wintermute/base/gfx/x/animation.cpp
@@ -36,7 +36,8 @@
 namespace Wintermute {
 
 //////////////////////////////////////////////////////////////////////////
-Animation::Animation(BaseGame *inGame) : BaseClass(inGame), _targetFrame(nullptr) {
+Animation::Animation(BaseGame *inGame) : BaseClass(inGame) {
+	_targetFrame = nullptr;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/x/animation_channel.cpp b/engines/wintermute/base/gfx/x/animation_channel.cpp
index d2cffa23b51..997e1119244 100644
--- a/engines/wintermute/base/gfx/x/animation_channel.cpp
+++ b/engines/wintermute/base/gfx/x/animation_channel.cpp
@@ -32,11 +32,14 @@
 namespace Wintermute {
 
 //////////////////////////////////////////////////////////////////////////
-AnimationChannel::AnimationChannel(BaseGame *inGame, ModelX *model) : BaseClass(inGame),
-	_model(model), _transitioning(false),
-	_transitionStart(0), _transtitionTime(0),
-	_stopTransitionTime(0) {
+AnimationChannel::AnimationChannel(BaseGame *inGame, ModelX *model) : BaseClass(inGame) {
 	_anim[0] = _anim[1] = nullptr;
+
+	_transitioning = false;
+	_transitionStart = _transtitionTime = 0,
+	_stopTransitionTime = 0;
+
+	_model = model;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/x/animation_set.cpp b/engines/wintermute/base/gfx/x/animation_set.cpp
index 7dd38f749eb..ef49916eb5d 100644
--- a/engines/wintermute/base/gfx/x/animation_set.cpp
+++ b/engines/wintermute/base/gfx/x/animation_set.cpp
@@ -34,8 +34,11 @@
 namespace Wintermute {
 
 //////////////////////////////////////////////////////////////////////////
-AnimationSet::AnimationSet(BaseGame *inGame, ModelX *model) : BaseNamedObject(inGame),
-	_looping(false), _frameTime(-1), _totalTime(0), _model(model) {
+AnimationSet::AnimationSet(BaseGame *inGame, ModelX *model) : BaseNamedObject(inGame) {
+	_frameTime = -1;
+	_totalTime = 0;
+	_looping = false;
+	_model = model;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/x/material.cpp b/engines/wintermute/base/gfx/x/material.cpp
index 2fbfe277bf7..17df7ce5717 100644
--- a/engines/wintermute/base/gfx/x/material.cpp
+++ b/engines/wintermute/base/gfx/x/material.cpp
@@ -42,9 +42,11 @@ namespace Wintermute {
 //////////////////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////////////////////
-Material::Material(BaseGame *inGame) : BaseNamedObject(inGame),
-									   _surface(nullptr), _ownedSurface(false),
-									   _sprite(nullptr), _theora(nullptr) {
+Material::Material(BaseGame *inGame) : BaseNamedObject(inGame) {
+	_surface = nullptr;
+	_ownedSurface = false;
+	_sprite = nullptr;
+	_theora = nullptr;
 }
 
 //////////////////////////////////////////////////////////////////////////
diff --git a/engines/wintermute/base/gfx/x/meshx.cpp b/engines/wintermute/base/gfx/x/meshx.cpp
index bf7a5961b81..634510b628f 100644
--- a/engines/wintermute/base/gfx/x/meshx.cpp
+++ b/engines/wintermute/base/gfx/x/meshx.cpp
@@ -38,10 +38,17 @@ namespace Wintermute {
 // define constant to make it available to the linker
 const uint32 MeshX::kNullIndex;
 
-MeshX::MeshX(Wintermute::BaseGame *inGame) : BaseNamedObject(inGame),
-	_BBoxStart(0.0f, 0.0f, 0.0f), _BBoxEnd(0.0f, 0.0f, 0.0f),
-	_vertexData(nullptr), _vertexPositionData(nullptr), _vertexNormalData(nullptr),
-	_vertexCount(0), _numAttrs(0), _skinnedMesh(false) {
+MeshX::MeshX(Wintermute::BaseGame *inGame) : BaseNamedObject(inGame) {
+	_numAttrs = 0;
+	_skinnedMesh = false;
+
+	_BBoxStart = Math::Vector3d(0.0f, 0.0f, 0.0f);
+	_BBoxEnd = Math::Vector3d(0.0f, 0.0f, 0.0f);
+
+	_vertexData = nullptr;
+	_vertexPositionData = nullptr;
+	_vertexNormalData = nullptr;
+	_vertexCount = 0;
 }
 
 MeshX::~MeshX() {
diff --git a/engines/wintermute/base/gfx/x/modelx.cpp b/engines/wintermute/base/gfx/x/modelx.cpp
index 3f346467762..78ef9852c10 100644
--- a/engines/wintermute/base/gfx/x/modelx.cpp
+++ b/engines/wintermute/base/gfx/x/modelx.cpp
@@ -149,14 +149,19 @@ static XFileLexer createXFileLexer(byte *&buffer, uint32 fileSize) {
 IMPLEMENT_PERSISTENT(ModelX, false)
 
 //////////////////////////////////////////////////////////////////////////
-ModelX::ModelX(BaseGame *inGame, BaseObject *owner) : BaseObject(inGame),
-	                                              _owner(owner), _lastOffsetX(0), _lastOffsetY(0),
-	                                              _BBoxStart(0.0f, 0.0f, 0.0f), _BBoxEnd(0.0f, 0.0f, 0.0f),
-	                                              _rootFrame(nullptr) {
+ModelX::ModelX(BaseGame *inGame, BaseObject *owner) : BaseObject(inGame) {
+	_owner = owner;
+
+	_rootFrame = nullptr;
+
 	_drawingViewport.setEmpty();
 	_lastWorldMat.setToIdentity();
 	_lastViewMat.setToIdentity();
 	_lastProjMat.setToIdentity();
+	_lastOffsetX = _lastOffsetY = 0;
+
+	_BBoxStart = Math::Vector3d(0.0f, 0.0f, 0.0f);
+	_BBoxEnd = Math::Vector3d(0.0f, 0.0f, 0.0f);
 	_boundingRect.setEmpty();
 
 	for (int i = 0; i < X_NUM_ANIMATION_CHANNELS; i++) {




More information about the Scummvm-git-logs mailing list