[Scummvm-git-logs] scummvm master -> a195d067bd0dbd68dd8060d4008baf681b686fa1

aquadran noreply at scummvm.org
Tue Nov 5 22:32:59 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:
a195d067bd WINTERMUTE: Fixed warnings related to initialising non-trivial types


Commit: a195d067bd0dbd68dd8060d4008baf681b686fa1
    https://github.com/scummvm/scummvm/commit/a195d067bd0dbd68dd8060d4008baf681b686fa1
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-11-05T23:32:54+01:00

Commit Message:
WINTERMUTE: Fixed warnings related to initialising non-trivial types

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


diff --git a/engines/wintermute/base/gfx/xskinmesh.cpp b/engines/wintermute/base/gfx/xskinmesh.cpp
index a2b56bcd3d9..18f440c100f 100644
--- a/engines/wintermute/base/gfx/xskinmesh.cpp
+++ b/engines/wintermute/base/gfx/xskinmesh.cpp
@@ -371,7 +371,12 @@ bool DXSkinInfo::create(uint32 vertexCount, uint32 fvf, uint32 boneCount) {
 	if (!_bones) {
 		return false;
 	}
-	memset(_bones, 0, boneCount * sizeof(DXBone));
+	for (uint32 i = 0; i < boneCount; i++) {
+		_bones[i]._name = nullptr;
+		_bones[i]._numInfluences = 0;
+		_bones[i]._vertices = nullptr;
+		_bones[i]._weights = nullptr;
+	}
 	return true;
 }
 
@@ -897,8 +902,10 @@ static bool parseNormals(XFileData &fileData, struct MeshData *meshData) {
 		return false;
 	}
 
-	memcpy(meshData->_normals, normalsObj->_normals, meshData->_numNormals * sizeof(DXVector3));
 	for (i = 0; i < meshData->_numNormals; i++) {
+		meshData->_normals[i]._x = normalsObj->_normals[i]._x;
+		meshData->_normals[i]._y = normalsObj->_normals[i]._y;
+		meshData->_normals[i]._z = normalsObj->_normals[i]._z;
 		DXVec3Normalize(&meshData->_normals[i], &meshData->_normals[i]);
 	}
 
@@ -955,7 +962,11 @@ static bool parseMesh(XFileData *fileData, struct MeshData *meshData) {
 		return false;
 	}
 
-	memcpy(meshData->_vertices, meshObj->_vertices, meshData->_numVertices * sizeof(DXVector3));
+	for (i = 0; i < meshData->_numVertices; i++) {
+		meshData->_vertices[i]._x = meshObj->_vertices[i]._x;
+		meshData->_vertices[i]._y = meshObj->_vertices[i]._y;
+		meshData->_vertices[i]._z = meshObj->_vertices[i]._z;
+	}
 
 	uint32 index = 0;
 	for (i = 0; i < meshData->_numPolyFaces; i++) {
@@ -1059,7 +1070,11 @@ bool DXLoadSkinMesh(XFileData *fileData, DXBuffer &materialsOut, uint32 &numMate
 	uint32 totalVertices = meshData._numVertices;
 	if (meshData._fvf & DXFVF_NORMAL) {
 		meshData._vertexNormals = new DXVector3[meshData._numVertices];
-		memset(meshData._vertexNormals, 0, meshData._numVertices * sizeof(DXVector3));
+		for (i = 0; i < meshData._numVertices; i++) {
+			meshData._vertexNormals[i]._x = 0.0f;
+			meshData._vertexNormals[i]._y = 0.0f;
+			meshData._vertexNormals[i]._z = 0.0f;
+		}
 		uint32 numFaceIndices = meshData._numPolyFaces * 2 + meshData._numTriFaces;
 		for (i = 0; i < numFaceIndices; i++) {
 			uint32 vertexIndex = meshData._indices[i];




More information about the Scummvm-git-logs mailing list