[Scummvm-git-logs] scummvm master -> 61f9a69add7fa80a54b94358410666922a678a97

aquadran noreply at scummvm.org
Sun Oct 27 16:09:25 UTC 2024


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:
61f9a69add WINTERMUTE: Small sync with original code


Commit: 61f9a69add7fa80a54b94358410666922a678a97
    https://github.com/scummvm/scummvm/commit/61f9a69add7fa80a54b94358410666922a678a97
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-10-27T17:09:20+01:00

Commit Message:
WINTERMUTE: Small sync with original code

Changed paths:
    engines/wintermute/ad/ad_game.cpp
    engines/wintermute/ad/ad_game.h
    engines/wintermute/ad/ad_object_3d.cpp
    engines/wintermute/ad/ad_path3d.h
    engines/wintermute/ad/ad_scene.cpp
    engines/wintermute/ad/ad_scene_geometry.cpp
    engines/wintermute/base/gfx/3dcamera.cpp
    engines/wintermute/base/gfx/3dcamera.h
    engines/wintermute/base/gfx/3dlight.cpp
    engines/wintermute/base/gfx/3dmesh.h
    engines/wintermute/base/gfx/xmodel.cpp


diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp
index 790cfe0d976..5ec70c45d24 100644
--- a/engines/wintermute/ad/ad_game.cpp
+++ b/engines/wintermute/ad/ad_game.cpp
@@ -2529,15 +2529,17 @@ bool AdGame::getLayerSize(int *layerWidth, int *layerHeight, Rect32 *viewport, b
 			// WME pre-1.7 expects the camera to only view the top-left part of the scene
 			*layerWidth = _gameRef->_renderer->getWidth();
 			*layerHeight = _gameRef->_renderer->getHeight();
-			if (_gameRef->_editorResolutionWidth > 0)
-				*layerWidth = _gameRef->_editorResolutionWidth;
-			if (_gameRef->_editorResolutionHeight > 0)
-				*layerHeight = _gameRef->_editorResolutionHeight;
 		} else
 #endif
 		{
 			*layerWidth = _scene->_mainLayer->_width;
 			*layerHeight = _scene->_mainLayer->_height;
+#ifdef ENABLE_WME3D
+			if (_gameRef->_editorResolutionWidth > 0)
+				*layerWidth = _gameRef->_editorResolutionWidth;
+			if (_gameRef->_editorResolutionHeight > 0)
+				*layerHeight = _gameRef->_editorResolutionHeight;
+#endif
 		}
 		return true;
 	} else
diff --git a/engines/wintermute/ad/ad_game.h b/engines/wintermute/ad/ad_game.h
index 65d186e640e..42a367c8a69 100644
--- a/engines/wintermute/ad/ad_game.h
+++ b/engines/wintermute/ad/ad_game.h
@@ -56,7 +56,17 @@ public:
 
 	bool displayDebugInfo() override;
 
+	virtual bool getLayerSize(int *layerWidth, int *layerHeight, Rect32 *viewport, bool *customViewport) override;
+
+#ifdef ENABLE_WME3D
+	uint32 getAmbientLightColor() override;
+
+	bool getFogParams(bool *fogEnabled, uint32 *fogColor, float *start, float *end) override;
+
 	virtual bool renderShadowGeometry() override;
+	TShadowType getMaxShadowType(BaseObject *object) override;
+#endif
+
 
 	bool addSpeechDir(const char *dir);
 	bool removeSpeechDir(const char *dir);
@@ -98,15 +108,6 @@ public:
 	TTalkSkipButton _talkSkipButton;
 	TVideoSkipButton _videoSkipButton;
 
-	virtual bool getLayerSize(int *layerWidth, int *layerHeight, Rect32 *viewport, bool *customViewport) override;
-#ifdef ENABLE_WME3D
-	uint32 getAmbientLightColor() override;
-
-	TShadowType getMaxShadowType(BaseObject *object) override;
-
-	bool getFogParams(bool *fogEnabled, uint32 *fogColor, float *start, float *end) override;
-#endif
-
 	bool getVersion(byte *verMajor, byte *verMinor, byte *extMajor, byte *extMinor) const override;
 	bool scheduleChangeScene(const char *filename, bool fadeIn);
 	void setPrevSceneName(const char *name);
@@ -120,7 +121,6 @@ public:
 	bool showCursor() override;
 
 	TGameStateEx _stateEx;
-
 	bool displaySentences(bool frozen);
 	void addSentence(AdSentence *sentence);
 	bool changeScene(const char *filename, bool fadeIn);
diff --git a/engines/wintermute/ad/ad_object_3d.cpp b/engines/wintermute/ad/ad_object_3d.cpp
index eb4ae83637d..05ca4ca89ba 100644
--- a/engines/wintermute/ad/ad_object_3d.cpp
+++ b/engines/wintermute/ad/ad_object_3d.cpp
@@ -96,6 +96,7 @@ bool AdObject3D::addIgnoredLight(char *lightName) {
 bool AdObject3D::removeIgnoredLight(char *lightName) {
 	for (uint32 i = 0; i < _ignoredLights.size(); i++) {
 		if (scumm_stricmp(_ignoredLights[i], lightName) == 0) {
+			delete[] _ignoredLights[i];
 			_ignoredLights.remove_at(i);
 			return true;
 		}
diff --git a/engines/wintermute/ad/ad_path3d.h b/engines/wintermute/ad/ad_path3d.h
index 61fb4f22fab..3b98a9a0008 100644
--- a/engines/wintermute/ad/ad_path3d.h
+++ b/engines/wintermute/ad/ad_path3d.h
@@ -38,6 +38,7 @@ namespace Wintermute {
 
 class AdPath3D : public BaseClass {
 public:
+	DECLARE_PERSISTENT(AdPath3D, BaseClass)
 	DXVector3 *getCurrent();
 	DXVector3 *getNext();
 	DXVector3 *getFirst();
@@ -50,8 +51,6 @@ public:
 	bool _ready;
 	BaseArray<DXVector3 *> _points;
 	int32 _currIndex;
-
-	DECLARE_PERSISTENT(AdPath3D, BaseClass)
 };
 
 } // namespace Wintermute
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 6617bf3ff43..a57d035031c 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -217,6 +217,7 @@ void AdScene::cleanup() {
 		_gameRef->unregisterObject(_objects[i]);
 	}
 	_objects.clear();
+
 #ifdef ENABLE_WME3D
 	delete _geom;
 	_geom = nullptr;
@@ -1267,6 +1268,7 @@ bool AdScene::traverseNodes(bool doUpdate) {
 				}
 			}
 			break;
+
 			default:
 				error("AdScene::TraverseNodes - Unhandled enum");
 				break;
@@ -2017,8 +2019,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		const char *nodeName = stack->pop()->getString();
 
 		if (_geom) {
-			bool ret = _geom->isNodeEnabled(nodeName);
-			stack->pushBool(ret);
+			stack->pushBool(_geom->isNodeEnabled(nodeName));
 		} else {
 			stack->pushBool(false);
 		}
@@ -2073,8 +2074,7 @@ bool AdScene::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack,
 		const char *lightName = stack->pop()->getString();
 
 		if (_geom) {
-			bool res = _geom->isLightEnabled(lightName);
-			stack->pushBool(res);
+			stack->pushBool(_geom->isLightEnabled(lightName));
 		} else {
 			stack->pushBool(false);
 		}
@@ -3667,6 +3667,7 @@ bool AdScene::getSceneObjects(BaseArray<AdObject *> &objects, bool interactiveOn
 				//if (regionObj.size() > 0) Objects.Append(RegionObj);
 			}
 			break;
+
 			default:
 				debugC(kWintermuteDebugGeneral, "AdScene::GetSceneObjects - Unhandled enum");
 				break;
diff --git a/engines/wintermute/ad/ad_scene_geometry.cpp b/engines/wintermute/ad/ad_scene_geometry.cpp
index 1a2e9f159de..39fa3760641 100644
--- a/engines/wintermute/ad/ad_scene_geometry.cpp
+++ b/engines/wintermute/ad/ad_scene_geometry.cpp
@@ -217,7 +217,7 @@ bool AdSceneGeometry::loadFile(const char *filename) {
 					return false;
 				} else {
 					plane->_mesh->computeNormals();
-					plane->_mesh->fillVertexBuffer(0xD00000FF); // original 0x700000FF
+					plane->_mesh->fillVertexBuffer(0x700000FF);
 					plane->_receiveShadows = extNode->_receiveShadows;
 					_planes.add(plane);
 				}
@@ -236,7 +236,7 @@ bool AdSceneGeometry::loadFile(const char *filename) {
 					return false;
 				} else {
 					block->_mesh->computeNormals();
-					block->_mesh->fillVertexBuffer(0xD0FF0000); // original 0x70FF0000
+					block->_mesh->fillVertexBuffer(0x70FF0000);
 					block->_receiveShadows = extNode->_receiveShadows;
 					_blocks.add(block);
 				}
@@ -272,7 +272,7 @@ bool AdSceneGeometry::loadFile(const char *filename) {
 					return false;
 				} else {
 					generic->_mesh->computeNormals();
-					generic->_mesh->fillVertexBuffer(0xD000FF00); // original 0x7000FF00
+					generic->_mesh->fillVertexBuffer(0x7000FF00);
 					generic->_receiveShadows = extNode->_receiveShadows;
 					_generics.add(generic);
 				}
@@ -987,7 +987,7 @@ bool AdSceneGeometry::enableLights(DXVector3 point, BaseArray<char *> &ignoreLig
 		if (_lights[i]->_isAvailable) {
 			if (_lights[i]->_active) {
 				_gameRef->_renderer3D->lightEnable(i, _lights[i]->_active);
-				++numActiveLights;
+				numActiveLights++;
 			}
 		}
 	}
diff --git a/engines/wintermute/base/gfx/3dcamera.cpp b/engines/wintermute/base/gfx/3dcamera.cpp
index 3e6540333f2..35ab9deccf3 100644
--- a/engines/wintermute/base/gfx/3dcamera.cpp
+++ b/engines/wintermute/base/gfx/3dcamera.cpp
@@ -41,7 +41,7 @@ namespace Wintermute {
 
 //////////////////////////////////////////////////////////////////////////
 Camera3D::Camera3D(BaseGame *inGame) : BaseNamedObject(inGame) {
-	_pos = DXVector3(0.0f, 0.0f, 0.0f);
+	_position = DXVector3(0.0f, 0.0f, 0.0f);
 	_target = DXVector3(0.0f, 0.0f, 0.0f);
 	_bank = 0.0f;
 	_fov = _origFov = degToRad(45.0f);
@@ -62,14 +62,14 @@ bool Camera3D::getViewMatrix(DXMatrix *viewMatrix) {
 		DXVec3TransformCoord(&up, &up, &rot);
 	}
 
-	DXMatrixLookAtLH(viewMatrix, &_pos, &_target, &up);
+	DXMatrixLookAtLH(viewMatrix, &_position, &_target, &up);
 
 	return true;
 }
 
 //////////////////////////////////////////////////////////////////////////
 void Camera3D::setupPos(DXVector3 pos, DXVector3 target, float bank) {
-	_pos = pos;
+	_position = pos;
 	_target = target;
 	_bank = bank;
 }
@@ -79,23 +79,23 @@ void Camera3D::rotateView(float x, float y, float z) {
 	DXVector3 vVector; // Vector for the position/view.
 
 	// Get our view vector (The direciton we are facing)
-	vVector = _target - _pos; // This gets the direction of the view
+	vVector = _target - _position; // This gets the direction of the view
 
 	// Rotate the view along the desired axis
 	if (x) {
 		// Rotate the view vector up or down, then add it to our position
-		_target._z = (float)(_pos._z + sin(x) * vVector._y + cos(x) * vVector._z);
-		_target._y = (float)(_pos._y + cos(x) * vVector._y - sin(x) * vVector._z);
+		_target._z = (float)(_position._z + sin(x) * vVector._y + cos(x) * vVector._z);
+		_target._y = (float)(_position._y + cos(x) * vVector._y - sin(x) * vVector._z);
 	}
 	if (y) {
 		// Rotate the view vector right or left, then add it to our position
-		_target._z = (float)(_pos._z + sin(y) * vVector._x + cos(y) * vVector._z);
-		_target._x = (float)(_pos._x + cos(y) * vVector._x - sin(y) * vVector._z);
+		_target._z = (float)(_position._z + sin(y) * vVector._x + cos(y) * vVector._z);
+		_target._x = (float)(_position._x + cos(y) * vVector._x - sin(y) * vVector._z);
 	}
 	if (z) {
 		// Rotate the view vector diagnally right or diagnally down, then add it to our position
-		_target._x = (float)(_pos._x + sin(z) * vVector._y + cos(z) * vVector._x);
-		_target._y = (float)(_pos._y + cos(z) * vVector._y - sin(z) * vVector._x);
+		_target._x = (float)(_position._x + sin(z) * vVector._y + cos(z) * vVector._x);
+		_target._y = (float)(_position._y + cos(z) * vVector._y - sin(z) * vVector._x);
 	}
 }
 
@@ -104,10 +104,10 @@ void Camera3D::move(float speed) {
 	DXVector3 vector; // Init a vector for our view
 
 	// Get our view vector (The direciton we are facing)
-	vector = _target - _pos; // This gets the direction of the view
+	vector = _target - _position; // This gets the direction of the view
 
-	_pos._x += vector._x * speed; // Add our acceleration to our position's X
-	_pos._z += vector._z * speed; // Add our acceleration to our position's Z
+	_position._x += vector._x * speed; // Add our acceleration to our position's X
+	_position._z += vector._z * speed; // Add our acceleration to our position's Z
 	_target._x += vector._x * speed;   // Add our acceleration to our view's X
 	_target._z += vector._z * speed;   // Add our acceleration to our view's Z
 }
diff --git a/engines/wintermute/base/gfx/3dcamera.h b/engines/wintermute/base/gfx/3dcamera.h
index ccc11e2e906..142d02f98d1 100644
--- a/engines/wintermute/base/gfx/3dcamera.h
+++ b/engines/wintermute/base/gfx/3dcamera.h
@@ -44,7 +44,7 @@ public:
 	Camera3D(BaseGame *inGame);
 	virtual ~Camera3D();
 
-	DXVector3 _pos;
+	DXVector3 _position;
 	DXVector3 _target;
 	float _bank;
 	float _fov;
diff --git a/engines/wintermute/base/gfx/3dlight.cpp b/engines/wintermute/base/gfx/3dlight.cpp
index 7dbb5dd23aa..c0f395e4770 100644
--- a/engines/wintermute/base/gfx/3dlight.cpp
+++ b/engines/wintermute/base/gfx/3dlight.cpp
@@ -81,8 +81,8 @@ bool Light3D::getViewMatrix(DXMatrix *viewMatrix) {
 
 //////////////////////////////////////////////////////////////////////////
 bool Light3D::persist(BasePersistenceManager *persistMgr) {
-	persistMgr->transferBool("_active", &_active);
-	persistMgr->transferUint32("_diffuseColor", &_diffuseColor);
+	persistMgr->transferBool(TMEMBER(_active));
+	persistMgr->transferUint32(TMEMBER(_diffuseColor));
 	return true;
 }
 
diff --git a/engines/wintermute/base/gfx/3dmesh.h b/engines/wintermute/base/gfx/3dmesh.h
index e9810d3903a..3e3dc1eff31 100644
--- a/engines/wintermute/base/gfx/3dmesh.h
+++ b/engines/wintermute/base/gfx/3dmesh.h
@@ -60,8 +60,8 @@ public:
 	void cleanup();
 	Mesh3DS(BaseGame *inGame);
 	virtual ~Mesh3DS();
-	bool fillVertexBuffer(uint32 color);
 	virtual void fillVertexBuffer() = 0;
+	bool fillVertexBuffer(uint32 color);
 	virtual void render() = 0;
 
 	Face3D *_faces;
diff --git a/engines/wintermute/base/gfx/xmodel.cpp b/engines/wintermute/base/gfx/xmodel.cpp
index 151ff0449d3..29acad2c3de 100644
--- a/engines/wintermute/base/gfx/xmodel.cpp
+++ b/engines/wintermute/base/gfx/xmodel.cpp
@@ -232,6 +232,7 @@ bool XModel::mergeFromFile(const Common::String &filename) {
 bool XModel::loadAnimationSet(const Common::String &filename, XFileData *xobj) {
 	bool res = true;
 
+	// create the animation set object
 	AnimationSet *animSet = new AnimationSet(_gameRef, this);
 	res = loadName(animSet, xobj);
 	if (!res) {
@@ -746,8 +747,8 @@ bool XModel::parseAnim(byte *buffer) {
 //////////////////////////////////////////////////////////////////////////
 bool XModel::parseEvent(AnimationSet *anim, byte *buffer) {
 	TOKEN_TABLE_START(commands)
-	TOKEN_TABLE(NAME)
-	TOKEN_TABLE(FRAME)
+		TOKEN_TABLE(NAME)
+		TOKEN_TABLE(FRAME)
 	TOKEN_TABLE_END
 
 	byte *params;




More information about the Scummvm-git-logs mailing list