[Scummvm-git-logs] scummvm master -> 6715d944b332df03df9a3af9dd3c9f956924f554

aquadran noreply at scummvm.org
Fri Oct 11 21:16:17 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:
6715d944b3 WINTERMUTE: Moved face vertex order to mesh loader


Commit: 6715d944b332df03df9a3af9dd3c9f956924f554
    https://github.com/scummvm/scummvm/commit/6715d944b332df03df9a3af9dd3c9f956924f554
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-10-11T23:16:12+02:00

Commit Message:
WINTERMUTE: Moved face vertex order to mesh loader

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


diff --git a/engines/wintermute/base/gfx/xskinmesh.cpp b/engines/wintermute/base/gfx/xskinmesh.cpp
index 5dded3d19a1..a02fc7074be 100644
--- a/engines/wintermute/base/gfx/xskinmesh.cpp
+++ b/engines/wintermute/base/gfx/xskinmesh.cpp
@@ -1082,17 +1082,17 @@ bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &adjacencyOut, DXBuffer &mater
 	for (i = 0; i < meshData._numPolyFaces; i++) {
 		uint32 count = meshData._numTriPerFace[i];
 		uint32 firstIndex = *indexInPtr++;
-		// 1 -> 1
-		// 2 -> 2
-		// 3 -> 3
-		// 1 -> 4
-		// 3 -> 5
-		// 4 -> 6
+		// 1 -> 1 -> 3
+		// 2 -> 2 -> 2
+		// 3 -> 3 -> 1
+		// 1 -> 4 -> 6
+		// 3 -> 5 -> 5
+		// 4 -> 6 -> 4
 		while (count--) {
-			*indices++ = firstIndex;
-			*indices++ = *indexInPtr;
-			indexInPtr++;
-			*indices++ = *indexInPtr;
+			indices[2] = firstIndex;
+			indices[1] = *indexInPtr++;
+			indices[0] = *indexInPtr;
+			indices += 3;
 		}
 		indexInPtr++;
 	}
diff --git a/engines/wintermute/base/gfx/xskinmesh_loader.cpp b/engines/wintermute/base/gfx/xskinmesh_loader.cpp
index 42574986fef..801504d036b 100644
--- a/engines/wintermute/base/gfx/xskinmesh_loader.cpp
+++ b/engines/wintermute/base/gfx/xskinmesh_loader.cpp
@@ -113,32 +113,8 @@ void XSkinMeshLoader::loadMesh(const Common::String &filename, XFileData *xobj)
 
 
 	uint32 *indexPtr = (uint32 *)_dxmesh->getIndexBuffer().ptr();
-	uint numFaces = _meshObject->_numFaces;
-	for (uint i = 0; i < numFaces; ++i) {
-		XMeshFace *face = &_meshObject->_faces[i];
-		int indexCount = face->_numFaceVertexIndices;
-		uint16 index1, index2, index3, index4, index5, index6;
-		if (indexCount == 3) {
-			index1 = *indexPtr++;
-			index2 = *indexPtr++;
-			index3 = *indexPtr++;
-			_indexData.push_back(index3);
-			_indexData.push_back(index2);
-			_indexData.push_back(index1);
-		} else {
-			index1 = *indexPtr++;
-			index2 = *indexPtr++;
-			index3 = *indexPtr++;
-			index4 = *indexPtr++;
-			index5 = *indexPtr++;
-			index6 = *indexPtr++;
-			_indexData.push_back(index3);
-			_indexData.push_back(index2);
-			_indexData.push_back(index1);
-			_indexData.push_back(index6);
-			_indexData.push_back(index5);
-			_indexData.push_back(index4);
-		}
+	for (uint i = 0; i < _dxmesh->getIndexBuffer().size() / sizeof(uint32); ++i) {
+		_indexData.push_back(indexPtr[i]);
 	}
 }
 




More information about the Scummvm-git-logs mailing list