[Scummvm-git-logs] scummvm master -> 87166527a1ad54bd2b0769f5fb22dbe24358fef3

aquadran noreply at scummvm.org
Sat Oct 12 07:30:16 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:
87166527a1 WINTERMUTE: Improved _skinnedMesh usage


Commit: 87166527a1ad54bd2b0769f5fb22dbe24358fef3
    https://github.com/scummvm/scummvm/commit/87166527a1ad54bd2b0769f5fb22dbe24358fef3
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-10-12T09:30:11+02:00

Commit Message:
WINTERMUTE: Improved _skinnedMesh usage

Changed paths:
    engines/wintermute/base/gfx/xmesh.cpp
    engines/wintermute/base/gfx/xskinmesh.cpp


diff --git a/engines/wintermute/base/gfx/xmesh.cpp b/engines/wintermute/base/gfx/xmesh.cpp
index 7d450ed5386..5ba75ceab01 100644
--- a/engines/wintermute/base/gfx/xmesh.cpp
+++ b/engines/wintermute/base/gfx/xmesh.cpp
@@ -65,7 +65,7 @@ bool XMesh::loadFromXData(const Common::String &filename, XFileData *xobj) {
 	// load mesh
 	DXBuffer bufMaterials;
 	//DXBuffer bufBoneOffset;
-	//uint32 numFaces;
+	uint32 numFaces;
 	uint32 numMaterials;
 	DXMesh *mesh;
 	DXSkinInfo *skinInfo = nullptr;
@@ -81,6 +81,9 @@ bool XMesh::loadFromXData(const Common::String &filename, XFileData *xobj) {
 
 	_skinMesh = new SkinMeshHelper(meshLoader, mesh, skinInfo);
 
+	numFaces = _skinMesh->getNumFaces();
+
+	uint32 numBones = _skinMesh->getNumBones();
 
 	// check for materials
 	if ((bufMaterials.ptr() == nullptr) || (numMaterials == 0)) {
@@ -106,11 +109,9 @@ bool XMesh::loadFromXData(const Common::String &filename, XFileData *xobj) {
 		}
 	}
 
-	_skinnedMesh = false;
-
-	if (skinInfo) {
-		_skinnedMesh = skinInfo->getNumBones() > 0;
-		for (uint index = 0; index < skinInfo->getNumBones(); index++) {
+	_skinnedMesh = numBones > 0;
+	if (_skinnedMesh) {
+		for (uint index = 0; index < numBones; index++) {
 			SkinWeights currSkinWeights;
 			DXBone *bone = skinInfo->getBone(index);
 			currSkinWeights._boneName = bone->_name;
diff --git a/engines/wintermute/base/gfx/xskinmesh.cpp b/engines/wintermute/base/gfx/xskinmesh.cpp
index dfc46c0eb23..3d61c34f395 100644
--- a/engines/wintermute/base/gfx/xskinmesh.cpp
+++ b/engines/wintermute/base/gfx/xskinmesh.cpp
@@ -1066,9 +1066,9 @@ static bool parseMesh(XFileData *fileData, struct MeshData *meshData) {
 	}
 
 	if (!meshData->_skinInfo) {
-		/*result = createSkinInfo(meshData->_numVertices, meshData->_boneCount, &meshData->_skinInfo);
+		result = createSkinInfo(meshData->_numVertices, meshData->_boneCount, &meshData->_skinInfo);
 		if (!result)
-			return false;*/
+			return false;
 	}
 
 	return true;




More information about the Scummvm-git-logs mailing list