[Scummvm-git-logs] scummvm master -> 3f4de6760e0d30b614349c0a2675dc917ff3d2c8

bluegr noreply at scummvm.org
Sun Feb 15 20:41:32 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
3f4de6760e JANITORIAL: HPL1: use ARRAYSIZE macro


Commit: 3f4de6760e0d30b614349c0a2675dc917ff3d2c8
    https://github.com/scummvm/scummvm/commit/3f4de6760e0d30b614349c0a2675dc917ff3d2c8
Author: Michael Kuerbis (michael_kuerbis at web.de)
Date: 2026-02-15T22:41:29+02:00

Commit Message:
JANITORIAL: HPL1: use ARRAYSIZE macro

Changed paths:
    engines/hpl1/engine/libraries/newton/core/dgAABBPolygonSoup.cpp
    engines/hpl1/engine/libraries/newton/core/dgPolyhedra.cpp
    engines/hpl1/engine/libraries/newton/physics/dgBroadPhaseCollision.cpp
    engines/hpl1/engine/libraries/newton/physics/dgCollision.h
    engines/hpl1/engine/libraries/newton/physics/dgCollisionBVH.cpp
    engines/hpl1/engine/libraries/newton/physics/dgCollisionCompoundBreakable.cpp
    engines/hpl1/engine/libraries/newton/physics/dgCollisionConvex.cpp
    engines/hpl1/engine/libraries/newton/physics/dgCollisionConvexHull.cpp
    engines/hpl1/engine/libraries/newton/physics/dgCollisionMesh.cpp
    engines/hpl1/engine/libraries/newton/physics/dgConstraint.h
    engines/hpl1/engine/libraries/newton/physics/dgMeshEffect.cpp
    engines/hpl1/engine/libraries/newton/physics/dgMeshEffect2.cpp
    engines/hpl1/engine/libraries/newton/physics/dgMeshEffectSolidTree.cpp
    engines/hpl1/engine/libraries/newton/physics/dgMinkowskiConv.cpp


diff --git a/engines/hpl1/engine/libraries/newton/core/dgAABBPolygonSoup.cpp b/engines/hpl1/engine/libraries/newton/core/dgAABBPolygonSoup.cpp
index 39b20cfb2c5..7ff4320ee27 100644
--- a/engines/hpl1/engine/libraries/newton/core/dgAABBPolygonSoup.cpp
+++ b/engines/hpl1/engine/libraries/newton/core/dgAABBPolygonSoup.cpp
@@ -1510,7 +1510,7 @@ dgIntersectStatus dgAABBPolygonSoup::CalculateAllFaceEdgeNormals(void *context,
 		adjacentFaces.m_normal = dgPlane(n, -(n % p));
 	}
 
-	NEWTON_ASSERT(indexCount < dgInt32(sizeof(adjacentFaces.m_edgeMap) / sizeof(adjacentFaces.m_edgeMap[0])));
+	NEWTON_ASSERT(indexCount < dgInt32(ARRAYSIZE(adjacentFaces.m_edgeMap)));
 
 	dgInt32 edgeIndex = indexCount - 1;
 	dgInt32 i0 = indexArray[indexCount - 1];
diff --git a/engines/hpl1/engine/libraries/newton/core/dgPolyhedra.cpp b/engines/hpl1/engine/libraries/newton/core/dgPolyhedra.cpp
index a61ae4869d8..6278f382638 100644
--- a/engines/hpl1/engine/libraries/newton/core/dgPolyhedra.cpp
+++ b/engines/hpl1/engine/libraries/newton/core/dgPolyhedra.cpp
@@ -2096,7 +2096,7 @@ bool dgPolyhedra::GetConectedSurface(dgPolyhedra &polyhedra) const {
 			faceIndex[count] = ptr->m_incidentVertex;
 			faceDataIndex[count] = dgInt64(ptr->m_userData);
 			count++;
-			NEWTON_ASSERT(count < dgInt32(sizeof(faceIndex) / sizeof(faceIndex[0])));
+			NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(faceIndex)));
 
 			if ((ptr->m_twin->m_incidentFace > 0) && (ptr->m_twin->m_mark != mark)) {
 				stack[index] = ptr->m_twin;
@@ -2889,11 +2889,11 @@ dgEdge *dgPolyhedra::TriangulateFace(dgEdge *face, const dgFloat64 *const pool,
 	do {
 		perimeter[perimeterCount] = ptr;
 		perimeterCount++;
-		NEWTON_ASSERT(perimeterCount < dgInt32(sizeof(perimeter) / sizeof(perimeter[0])));
+		NEWTON_ASSERT(perimeterCount < dgInt32(ARRAYSIZE(perimeter)));
 		ptr = ptr->m_next;
 	} while (ptr != face);
 	perimeter[perimeterCount] = face;
-	NEWTON_ASSERT((perimeterCount + 1) < dgInt32(sizeof(perimeter) / sizeof(perimeter[0])));
+	NEWTON_ASSERT((perimeterCount + 1) < dgInt32(ARRAYSIZE(perimeter)));
 #endif
 
 	dgBigVector normal(
@@ -2995,7 +2995,7 @@ void dgPolyhedra::MarkAdjacentCoplanarFaces(dgPolyhedra &polyhedraOut,
 				ptr->m_mark = faceMark;
 				faceIndex[faceIndexCount] = ptr->m_incidentVertex;
 				faceIndexCount++;
-				NEWTON_ASSERT(faceIndexCount < dgInt32(sizeof(faceIndex) / sizeof(faceIndex[0])));
+				NEWTON_ASSERT(faceIndexCount < dgInt32(ARRAYSIZE(faceIndex)));
 				ptr = ptr->m_next;
 			} while (ptr != face);
 		}
@@ -3009,7 +3009,7 @@ void dgPolyhedra::MarkAdjacentCoplanarFaces(dgPolyhedra &polyhedraOut,
 			dgEdge *const stackFace = stack[index];
 			deleteEdge[deleteCount] = stackFace;
 			deleteCount++;
-			NEWTON_ASSERT(deleteCount < dgInt32(sizeof(deleteEdge) / sizeof(deleteEdge[0])));
+			NEWTON_ASSERT(deleteCount < dgInt32(ARRAYSIZE(deleteEdge)));
 			NEWTON_ASSERT(stackFace->m_next->m_next->m_next == stackFace);
 
 			dgEdge *edge = stackFace;
@@ -3023,7 +3023,7 @@ void dgPolyhedra::MarkAdjacentCoplanarFaces(dgPolyhedra &polyhedraOut,
 							ptr1->m_mark = faceMark;
 							faceIndex[faceIndexCount] = ptr1->m_incidentVertex;
 							NEWTON_ASSERT(
-							    faceIndexCount < dgInt32(sizeof(faceIndex) / sizeof(faceIndex[0])));
+							    faceIndexCount < dgInt32(ARRAYSIZE(faceIndex)));
 							faceIndexCount++;
 							ptr1 = ptr1->m_next;
 						} while (ptr1 != ptr);
@@ -3034,7 +3034,7 @@ void dgPolyhedra::MarkAdjacentCoplanarFaces(dgPolyhedra &polyhedraOut,
 							deleteEdge[deleteCount] = ptr;
 							deleteCount++;
 							NEWTON_ASSERT(
-							    deleteCount < dgInt32(sizeof(deleteEdge) / sizeof(deleteEdge[0])));
+							    deleteCount < dgInt32(ARRAYSIZE(deleteEdge)));
 						} else {
 							//normal1 = normal1.Scale (dgFloat64 (1.0f) / sqrt (dot));
 							dgBigVector testNormal(
@@ -3060,7 +3060,7 @@ void dgPolyhedra::MarkAdjacentCoplanarFaces(dgPolyhedra &polyhedraOut,
 									;
 									stack[index] = ptr;
 									index++;
-									NEWTON_ASSERT(index < dgInt32(sizeof(stack) / sizeof(stack[0])));
+									NEWTON_ASSERT(index < dgInt32(ARRAYSIZE(stack)));
 								}
 							}
 						}
@@ -3240,14 +3240,14 @@ void dgPolyhedra::RefineTriangulation(const dgFloat64 *const vertex,
 			do {
 				edgePerimeters[perimeterCount] = ptr->m_twin;
 				perimeterCount++;
-				NEWTON_ASSERT(perimeterCount < dgInt32(sizeof(edgePerimeters) / sizeof(edgePerimeters[0])));
+				NEWTON_ASSERT(perimeterCount < dgInt32(ARRAYSIZE(edgePerimeters)));
 				ptr = ptr->m_prev;
 			} while (ptr != edge);
 			break;
 		}
 	}
 	NEWTON_ASSERT(perimeterCount);
-	NEWTON_ASSERT(perimeterCount < dgInt32(sizeof(edgePerimeters) / sizeof(edgePerimeters[0])));
+	NEWTON_ASSERT(perimeterCount < dgInt32(ARRAYSIZE(edgePerimeters)));
 	edgePerimeters[perimeterCount] = edgePerimeters[0];
 
 	dgBigVector normal(FaceNormal(edgePerimeters[0], vertex, dgInt32(stride * sizeof(dgFloat64))));
@@ -3293,7 +3293,7 @@ void dgPolyhedra::OptimizeTriangulation(const dgFloat64 *const vertex,
 							do {
 								polygon[vertexCount] = ptr->m_incidentVertex;
 								vertexCount++;
-								NEWTON_ASSERT(vertexCount < dgInt32(sizeof(polygon) / sizeof(polygon[0])));
+								NEWTON_ASSERT(vertexCount < dgInt32(ARRAYSIZE(polygon)));
 								ptr->m_mark = mark;
 								ptr = ptr->m_next;
 							} while (ptr != edgeFF);
@@ -3417,7 +3417,7 @@ static void RemoveColinearVertices(dgPolyhedra &flatFace,
 			} while (ptr != edge);
 			edgePerimeters[perimeterCount] = edge;
 			perimeterCount++;
-			NEWTON_ASSERT(perimeterCount < dgInt32(sizeof(edgePerimeters) / sizeof(edgePerimeters[0])));
+			NEWTON_ASSERT(perimeterCount < dgInt32(ARRAYSIZE(edgePerimeters)));
 		}
 	}
 
@@ -3578,7 +3578,7 @@ void dgPolyhedra::ConvexPartition(const dgFloat64 *const vertex,
 						flatFace.RefineTriangulation(vertex, stride);
 						RemoveColinearVertices(flatFace, vertex, stride);
 
-						dgInt32 diagonalCount = GetInteriorDiagonals(flatFace, diagonalsPool, sizeof(diagonalsPool) / sizeof(diagonalsPool[0]));
+						dgInt32 diagonalCount = GetInteriorDiagonals(flatFace, diagonalsPool, ARRAYSIZE(diagonalsPool));
 						if (diagonalCount) {
 							edge = &flatFace.GetRoot()->GetInfo();
 							if (edge->m_incidentFace < 0) {
@@ -3645,7 +3645,7 @@ void dgPolyhedra::ConvexPartition(const dgFloat64 *const vertex,
 									do {
 										polygon[count] = ptr->m_incidentVertex;
 										count++;
-										NEWTON_ASSERT(count < dgInt32(sizeof(polygon) / sizeof(polygon[0])));
+										NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(polygon)));
 										ptr = ptr->m_next;
 									} while (ptr != edge);
 
@@ -3689,7 +3689,7 @@ void dgPolyhedra::ConvexPartition(const dgFloat64 *const vertex,
 									do {
 										polygon[diagonalCountTemp] = ptr->m_incidentVertex;
 										diagonalCountTemp++;
-										NEWTON_ASSERT(diagonalCountTemp < dgInt32(sizeof(polygon) / sizeof(polygon[0])));
+										NEWTON_ASSERT(diagonalCountTemp < dgInt32(ARRAYSIZE(polygon)));
 										ptr->m_mark = mark;
 										ptr = ptr->m_next;
 									} while (ptr != edgeFLF);
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgBroadPhaseCollision.cpp b/engines/hpl1/engine/libraries/newton/physics/dgBroadPhaseCollision.cpp
index 84b0b16ddcf..03f6c4cb51c 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgBroadPhaseCollision.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgBroadPhaseCollision.cpp
@@ -1323,7 +1323,7 @@ dgUnsigned32 dgBroadPhaseCollision::UpdateContactsBroadPhaseBegin(
 						cellArray[cellsPairsCount].m_cell_A = cell1;
 						cellArray[cellsPairsCount].m_cell_B = cell0;
 						cellsPairsCount++;
-						if (cellsPairsCount >= dgInt32(sizeof(cellArray) / sizeof(cellArray[0]))) {
+						if (cellsPairsCount >= dgInt32(ARRAYSIZE(cellArray))) {
 							if (threadCounts > 1) {
 								me->m_threadsManager.CalculateChunkSizes(cellsPairsCount,
 								        chunkSizes);
@@ -1366,7 +1366,7 @@ dgUnsigned32 dgBroadPhaseCollision::UpdateContactsBroadPhaseBegin(
 				cellArray[cellsPairsCount].m_cell_A = &cell;
 				cellArray[cellsPairsCount].m_cell_B = NULL;
 				cellsPairsCount++;
-				if (cellsPairsCount >= dgInt32(sizeof(cellArray) / sizeof(cellArray[0]))) {
+				if (cellsPairsCount >= dgInt32(ARRAYSIZE(cellArray))) {
 
 					if (threadCounts > 1) {
 						me->m_threadsManager.CalculateChunkSizes(cellsPairsCount,
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgCollision.h b/engines/hpl1/engine/libraries/newton/physics/dgCollision.h
index e0696524e56..088d54831ac 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgCollision.h
+++ b/engines/hpl1/engine/libraries/newton/physics/dgCollision.h
@@ -168,7 +168,7 @@ typedef void(dgApi *OnDebugCollisionMeshCallback)(void *userData, int vertexCoun
 class dgCollisionBoundPlaneCache {
 public:
 	dgCollisionBoundPlaneCache() {
-		for (unsigned i = 0; i < sizeof(m_planes) / sizeof(m_planes[0]); i++)
+		for (unsigned i = 0; i < ARRAYSIZE(m_planes); i++)
 			m_planes[i] = dgPlane(0.0, 0.0, 0.0, 0.0);
 	}
 	dgPlane m_planes[2];
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgCollisionBVH.cpp b/engines/hpl1/engine/libraries/newton/physics/dgCollisionBVH.cpp
index e9d4cb1cd20..cf96ce2f4a8 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgCollisionBVH.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgCollisionBVH.cpp
@@ -67,7 +67,7 @@ void dgCollisionBVH::AddFace(dgInt32 vertexCount,
 	dgInt32 indexList[256];
 
 	faceArray = vertexCount;
-	NEWTON_ASSERT(vertexCount < dgInt32(sizeof(indexList) / sizeof(indexList[0])));
+	NEWTON_ASSERT(vertexCount < dgInt32(ARRAYSIZE(indexList)));
 	for (dgInt32 i = 0; i < vertexCount; i++) {
 		indexList[i] = i;
 	}
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgCollisionCompoundBreakable.cpp b/engines/hpl1/engine/libraries/newton/physics/dgCollisionCompoundBreakable.cpp
index 34ed4f5911f..7a91a10335e 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgCollisionCompoundBreakable.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgCollisionCompoundBreakable.cpp
@@ -1293,7 +1293,7 @@ void dgCollisionCompoundBreakable::SetAnchoredParts(dgInt32 count,
 
 			rootNode = queue[trealingIndex];
 			trealingIndex++;
-			if (trealingIndex >= dgInt32(sizeof(queue) / sizeof(queue[0]))) {
+			if (trealingIndex >= dgInt32(ARRAYSIZE(queue))) {
 				trealingIndex = 0;
 			}
 
@@ -1309,7 +1309,7 @@ void dgCollisionCompoundBreakable::SetAnchoredParts(dgInt32 count,
 					    cost;
 					queue[leadingIndex] = childNode;
 					leadingIndex++;
-					if (leadingIndex >= dgInt32(sizeof(queue) / sizeof(queue[0]))) {
+					if (leadingIndex >= dgInt32(ARRAYSIZE(queue))) {
 						leadingIndex = 0;
 					}
 					NEWTON_ASSERT(leadingIndex != trealingIndex);
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvex.cpp b/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvex.cpp
index 0b73f800446..94df586ed8c 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvex.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvex.cpp
@@ -99,8 +99,7 @@ dgCollisionConvex::dgCollisionConvex(dgMemoryAllocator *const allocator,
 	m_boxMaxRadius = dgFloat32(0.0f);
 	m_isTriggerVolume = false;
 
-	for (dgUnsigned32 i = 0;
-	        i < sizeof(m_supportVertexStarCuadrant) / sizeof(m_supportVertexStarCuadrant[0]); i++) {
+	for (dgUnsigned32 i = 0; i < ARRAYSIZE(m_supportVertexStarCuadrant); i++) {
 		m_supportVertexStarCuadrant[i] = NULL;
 	}
 }
@@ -127,8 +126,7 @@ dgCollisionConvex::dgCollisionConvex(dgWorld *const world,
 	deserialization(userData, &isTrigger, sizeof(dgInt32));
 	m_isTriggerVolume = dgUnsigned32(isTrigger ? true : false);
 
-	for (dgUnsigned32 i = 0;
-	        i < sizeof(m_supportVertexStarCuadrant) / sizeof(m_supportVertexStarCuadrant[0]); i++) {
+	for (dgUnsigned32 i = 0; i < ARRAYSIZE(m_supportVertexStarCuadrant); i++) {
 		m_supportVertexStarCuadrant[i] = NULL;
 	}
 }
@@ -175,7 +173,7 @@ void dgCollisionConvex::SetVolumeAndCG() {
 				edgeMarks[dgInt32(edge - m_simplex)] = '1';
 				faceVertex[count] = m_vertex[edge->m_vertex];
 				count++;
-				NEWTON_ASSERT(count < dgInt32(sizeof(faceVertex) / sizeof(faceVertex[0])));
+				NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(faceVertex)));
 				edge = edge->m_next;
 			} while (edge != face);
 
@@ -192,7 +190,7 @@ void dgCollisionConvex::SetVolumeAndCG() {
 	m_simplexVolume = m_volume.m_w;
 
 	// set the table for quick calculation of support vertex
-	dgInt32 count = sizeof(m_supportVertexStarCuadrant) / sizeof(m_supportVertexStarCuadrant[0]);
+	dgInt32 count = ARRAYSIZE(m_supportVertexStarCuadrant);
 	for (dgInt32 i = 0; i < count; i++) {
 		m_supportVertexStarCuadrant[i] = GetSupportEdge(m_multiResDir[i]);
 	}
@@ -770,7 +768,7 @@ dgVector dgCollisionConvex::CalculateVolumeIntegral(const dgPlane &plane) const
 					    m_vertex[edge->m_vertex] - m_vertex[edge->m_prev->m_vertex]);
 					faceVertex[count] = m_vertex[edge->m_prev->m_vertex] - dp.Scale(size0 / (plane % dp));
 					count++;
-					NEWTON_ASSERT(count < dgInt32(sizeof(faceVertex) / sizeof(faceVertex[0])));
+					NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(faceVertex)));
 				}
 
 				if (!capEdge) {
@@ -858,13 +856,13 @@ dgVector dgCollisionConvex::SupportVertex(const dgVector &direction) const {
 	index = edge->m_vertex;
 	side0 = m_vertex[index] % dir;
 
-	cache[index & (sizeof(cache) / sizeof(cache[0]) - 1)] = dgInt16(index);
+	cache[index & (ARRAYSIZE(cache) - 1)] = dgInt16(index);
 	dgConvexSimplexEdge *ptr = edge;
 	dgInt32 maxCount = 128;
 	do {
 		dgInt32 index1 = ptr->m_twin->m_vertex;
-		if (cache[index1 & (sizeof(cache) / sizeof(cache[0]) - 1)] != index1) {
-			cache[index1 & (sizeof(cache) / sizeof(cache[0]) - 1)] = dgInt16(index1);
+		if (cache[index1 & (ARRAYSIZE(cache) - 1)] != index1) {
+			cache[index1 & (ARRAYSIZE(cache) - 1)] = dgInt16(index1);
 			dgFloat32 side1 = m_vertex[index1] % dir;
 			if (side1 > side0) {
 				index = index1;
@@ -916,14 +914,14 @@ dgVector dgCollisionConvex::SupportVertexSimd(const dgVector &direction) const {
 
 	dgInt16 cache[16];
 	memset(cache, -1, sizeof(cache));
-	cache[index & (sizeof(cache) / sizeof(cache[0]) - 1)] = dgInt16(index);
+	cache[index & (ARRAYSIZE(cache) - 1)] = dgInt16(index);
 
 	dgConvexSimplexEdge *ptr = edge;
 	dgInt32 maxCount = 128;
 	do {
 		dgInt32 index1 = ptr->m_twin->m_vertex;
-		if (cache[index1 & (sizeof(cache) / sizeof(cache[0]) - 1)] != index1) {
-			cache[index1 & (sizeof(cache) / sizeof(cache[0]) - 1)] = dgInt16(index1);
+		if (cache[index1 & (ARRAYSIZE(cache) - 1)] != index1) {
+			cache[index1 & (ARRAYSIZE(cache) - 1)] = dgInt16(index1);
 			NEWTON_ASSERT(m_vertex[index1].m_w == dgFloat32(1.0f));
 			simd_type side1 = simd_mul_v(*(simd_type *)&m_vertex[index1], dir);
 			side1 = simd_add_s(simd_add_v(side1, simd_move_hl_v(side1, side1)), simd_permut_v(side1, side1, PURMUT_MASK(3, 3, 3, 1)));
@@ -1001,7 +999,7 @@ dgInt32 dgCollisionConvex::SimplifyClipPolygon(dgInt32 count,
 	dgInt8 buffer[8 * DG_MAX_VERTEX_CLIP_FACE * (sizeof(dgInt32) + sizeof(dgFloat32))];
 	for (uint i = 0; i < ARRAYSIZE(buffer); i++) buffer[i] = 0;
 
-	NEWTON_ASSERT(count < dgInt32(sizeof(mark) / sizeof(mark[0])));
+	NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(mark)));
 	dgUpHeap<dgInt32, dgFloat32> sortHeap(buffer, sizeof(buffer));
 
 	while (count > DG_MAX_VERTEX_CLIP_FACE) {
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvexHull.cpp b/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvexHull.cpp
index 801b9b5d0eb..11166c0efc7 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvexHull.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgCollisionConvexHull.cpp
@@ -95,7 +95,7 @@ dgCollisionConvexHull::dgCollisionConvexHull(dgMemoryAllocator *const allocator,
 				planesArray[planeCount].m_index = i;
 				planesArray[planeCount].m_face = face;
 				planeCount++;
-				NEWTON_ASSERT(planeCount < dgInt32(sizeof(planesArray) / sizeof(planesArray[0])));
+				NEWTON_ASSERT(planeCount < dgInt32(ARRAYSIZE(planesArray)));
 			}
 		}
 	}
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgCollisionMesh.cpp b/engines/hpl1/engine/libraries/newton/physics/dgCollisionMesh.cpp
index 6a5a31f769a..3cafc2ab7b7 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgCollisionMesh.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgCollisionMesh.cpp
@@ -42,7 +42,7 @@ dgCollisionMesh::dgCollisionConvexPolygon::dgCollisionConvexPolygon(dgMemoryAllo
 	m_isEdgeIntersection = false;
 
 	m_rtti |= dgCollisionConvexPolygon_RTTI;
-	for (unsigned i = 0; i < (sizeof(m_localPoly) / sizeof(m_localPoly[0])); i++)
+	for (unsigned i = 0; i < (ARRAYSIZE(m_localPoly)); i++)
 		m_localPoly[i] = dgVector(dgFloat32(0.0f), dgFloat32(0.0f), dgFloat32(0.0f), dgFloat32(0.0f));
 	m_normal = dgVector(dgFloat32(0.0f), dgFloat32(0.0f), dgFloat32(0.0f), dgFloat32(0.0f));
 	//  m_aabbP0 = dgVector (dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (0.0f));
@@ -248,7 +248,7 @@ dgInt32 dgCollisionMesh::dgCollisionConvexPolygon::QuickTestContinue(const dgCol
 	dgInt32 ret;
 	dgFloat32 val1;
 
-	NEWTON_ASSERT(m_count < dgInt32(sizeof(m_localPoly) / sizeof(m_localPoly[0])));
+	NEWTON_ASSERT(m_count < dgInt32(ARRAYSIZE(m_localPoly)));
 	m_localPoly[0] = dgVector(&m_vertex[m_index[0] * m_stride]);
 	m_localPoly[1] = dgVector(&m_vertex[m_index[1] * m_stride]);
 	m_localPoly[2] = dgVector(&m_vertex[m_index[2] * m_stride]);
@@ -278,7 +278,7 @@ dgInt32 dgCollisionMesh::dgCollisionConvexPolygon::QuickTestSimd(const dgCollisi
 	simd_type normal1;
 	dgVector rotatedNormal;
 
-	NEWTON_ASSERT(m_count < dgInt32(sizeof(m_localPoly) / sizeof(m_localPoly[0])));
+	NEWTON_ASSERT(m_count < dgInt32(ARRAYSIZE(m_localPoly)));
 
 	m_localPoly[0] = dgVector(&m_vertex[m_index[0] * m_stride]);
 	m_localPoly[1] = dgVector(&m_vertex[m_index[1] * m_stride]);
@@ -328,7 +328,7 @@ dgInt32 dgCollisionMesh::dgCollisionConvexPolygon::QuickTestSimd(const dgCollisi
 }
 
 dgInt32 dgCollisionMesh::dgCollisionConvexPolygon::QuickTest(const dgCollisionConvex *const hull, const dgMatrix &matrix) {
-	NEWTON_ASSERT(m_count < dgInt32(sizeof(m_localPoly) / sizeof(m_localPoly[0])));
+	NEWTON_ASSERT(m_count < dgInt32(ARRAYSIZE(m_localPoly)));
 
 	m_localPoly[0] = dgVector(&m_vertex[m_index[0] * m_stride]);
 	m_localPoly[1] = dgVector(&m_vertex[m_index[1] * m_stride]);
@@ -458,8 +458,8 @@ void dgCollisionMesh::dgCollisionConvexPolygon::BeamClippingSimd(const dgCollisi
 
 void dgCollisionMesh::dgCollisionConvexPolygon::BeamClipping(const dgCollisionConvex *const hull, const dgMatrix &matrix, dgFloat32 dist) {
 	dgPlane planes[4];
-	dgVector points[sizeof(m_localPoly) / sizeof(m_localPoly[0]) + 8];
-	DG_CLIPPED_FACE_EDGE clippedFace[sizeof(m_localPoly) / sizeof(m_localPoly[0]) + 8];
+	dgVector points[ARRAYSIZE(m_localPoly) + 8];
+	DG_CLIPPED_FACE_EDGE clippedFace[ARRAYSIZE(m_localPoly) + 8];
 
 	dgVector origin(matrix.UnrotateVector(matrix.m_posit.Scale(dgFloat32(-1.0f))));
 	dgVector dir(m_localPoly[1] - m_localPoly[0]);
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgConstraint.h b/engines/hpl1/engine/libraries/newton/physics/dgConstraint.h
index 6ba5752a106..3b50de16094 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgConstraint.h
+++ b/engines/hpl1/engine/libraries/newton/physics/dgConstraint.h
@@ -22,7 +22,7 @@
 #if !defined(AFX_DGCONSTRAINT_H__F9EC24E0_6E0F_4CD5_909E_A5F5E1AC7C0B__INCLUDED_)
 #define AFX_DGCONSTRAINT_H__F9EC24E0_6E0F_4CD5_909E_A5F5E1AC7C0B__INCLUDED_
 
-#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0])))
+#include "common/util.h"
 
 #include "dgBodyMasterList.h"
 
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect.cpp b/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect.cpp
index f852cfca46e..17900644faf 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect.cpp
@@ -1148,7 +1148,7 @@ void dgMeshEffect::AddPolygon(dgInt32 count, const dgFloat64 *const vertexList,
 	if (count > 3) {
 		dgPolyhedra polygon(GetAllocator());
 		dgInt32 indexList[256];
-		NEWTON_ASSERT(count < dgInt32(sizeof(indexList) / sizeof(indexList[0])));
+		NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(indexList)));
 		for (dgInt32 i = 0; i < count; i++) {
 			indexList[i] = i;
 		}
@@ -1222,7 +1222,7 @@ void dgMeshEffect::AddPolygon(dgInt32 count, const dgFloat64 *const vertexList,
 void dgMeshEffect::AddPolygon(dgInt32 count, const dgFloat32 *const vertexList,
                               dgInt32 strideIndBytes, dgInt32 material) {
 	dgVertexAtribute points[256];
-	NEWTON_ASSERT(count < dgInt32(sizeof(points) / sizeof(points[0])));
+	NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(points)));
 
 	dgInt32 stride = strideIndBytes / sizeof(dgFloat32);
 	for (dgInt32 i = 0; i < count; i++) {
@@ -1405,7 +1405,7 @@ void dgMeshEffect::BuildFromVertexListIndexList(
 		dgInt32 index[256];
 		dgInt64 userdata[256];
 		dgInt32 count = faceIndexCount[j];
-		NEWTON_ASSERT(count < dgInt32(sizeof(index) / sizeof(index[0])));
+		NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(index)));
 		for (dgInt32 i = 0; i < count; i++) {
 			index[i] = vertexIndex[totalIndexCount + i];
 			// dgTrace (("%d ", index[i]));
@@ -1580,7 +1580,7 @@ void dgMeshEffect::BuildFromVertexListIndexList(
 	dgInt64 userdata[256];
 
 	int indexCount = faceIndexCount[j];
-	NEWTON_ASSERT(indexCount < dgInt32 (sizeof (index) / sizeof (index[0])));
+	NEWTON_ASSERT(indexCount < dgInt32 (ARRAYSIZE(index)));
 
 	if (faceMark[j])
 	{
@@ -2764,7 +2764,7 @@ void dgMeshEffect::MergeFaces(const dgMeshEffect *const source) {
 				ptr->m_mark = mark;
 				face[count] = source->m_attib[ptr->m_userData];
 				count++;
-				NEWTON_ASSERT(count < dgInt32(sizeof(face) / sizeof(face[0])));
+				NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(face)));
 				ptr = ptr->m_next;
 			} while (ptr != edge);
 			AddPolygon(count, &face[0].m_vertex.m_x, sizeof(dgVertexAtribute),
@@ -2790,7 +2790,7 @@ void dgMeshEffect::ReverseMergeFaces(dgMeshEffect *const source) {
 				face[count].m_normal_y *= dgFloat32(-1.0f);
 				face[count].m_normal_z *= dgFloat32(-1.0f);
 				count++;
-				NEWTON_ASSERT(count < dgInt32(sizeof(face) / sizeof(face[0])));
+				NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(face)));
 				ptr = ptr->m_prev;
 			} while (ptr != edge);
 			AddPolygon(count, &face[0].m_vertex.m_x, sizeof(dgVertexAtribute),
@@ -3205,7 +3205,7 @@ bool dgMeshEffect::CheckIntersection(
 	 stackPool[stack] = root->m_front;
 	 faceOnStack[stack] = frontFace;
 	 stack ++;
-	 NEWTON_ASSERT (stack < sizeof (stackPool) / sizeof (stackPool[0]));
+	 NEWTON_ASSERT (stack < ARRAYSIZE(stackPool));
 	 } else {
 	 frontFace->Release();
 	 frontCount ++;
@@ -3218,7 +3218,7 @@ bool dgMeshEffect::CheckIntersection(
 	 stackPool[stack] = root->m_back;
 	 faceOnStack[stack] = backFace;
 	 stack ++;
-	 NEWTON_ASSERT (stack < sizeof (stackPool) / sizeof (stackPool[0]));
+	 NEWTON_ASSERT (stack < ARRAYSIZE(stackPool));
 	 } else {
 	 backFace->Release();
 	 backCount ++;
@@ -3796,7 +3796,7 @@ dgMeshEffect *dgMeshEffect::GetNextLayer(dgInt32 mark) const {
 					faceIndex[count] = ptr->m_incidentVertex;
 					faceDataIndex[count] = ptr->m_userData;
 					count++;
-					NEWTON_ASSERT(count < dgInt32(sizeof(faceIndex) / sizeof(faceIndex[0])));
+					NEWTON_ASSERT(count < dgInt32(ARRAYSIZE(faceIndex)));
 					ptr = ptr->m_next;
 				} while (ptr != edgeI);
 				polyhedra.AddFace(count, &faceIndex[0], &faceDataIndex[0]);
@@ -3888,14 +3888,14 @@ void dgMeshEffect::ClipMesh(const dgMeshEffectSolidTree *const clipper,
 					 stackPool[stack] = root->m_front;
 					 faceOnStack[stack] = face;
 					 stack ++;
-					 NEWTON_ASSERT (stack < sizeof (stackPool) / sizeof (stackPool[0]));
+					 NEWTON_ASSERT (stack < ARRAYSIZE(stackPool));
 					 } else {
 					 //if (root->m_back) {
 					 NEWTON_ASSERT (root->m_back->m_planeType == dgMeshEffectSolidTree::m_divider);
 					 stackPool[stack] = root->m_back;
 					 faceOnStack[stack] = face;
 					 stack ++;
-					 NEWTON_ASSERT (stack < sizeof (stackPool) / sizeof (stackPool[0]));
+					 NEWTON_ASSERT (stack < ARRAYSIZE(stackPool));
 					 }
 					 }
 					 */
@@ -3905,7 +3905,7 @@ void dgMeshEffect::ClipMesh(const dgMeshEffectSolidTree *const clipper,
 							stackPool[stack] = root->m_front;
 							faceOnStack[stack] = frontFace;
 							stack++;
-							NEWTON_ASSERT(stack < dgInt32(sizeof(stackPool) / sizeof(stackPool[0])));
+							NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(stackPool)));
 						} else {
 
 							// if (xxx == 485){
@@ -3925,7 +3925,7 @@ void dgMeshEffect::ClipMesh(const dgMeshEffectSolidTree *const clipper,
 							stackPool[stack] = root->m_back;
 							faceOnStack[stack] = backFace;
 							stack++;
-							NEWTON_ASSERT(stack < dgInt32(sizeof(stackPool) / sizeof(stackPool[0])));
+							NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(stackPool)));
 						} else {
 
 							// if (xxx == 485){
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect2.cpp b/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect2.cpp
index 4c311ea3741..b7c3e63280e 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect2.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgMeshEffect2.cpp
@@ -211,14 +211,14 @@ dgMeshEffect *dgMeshEffect::CreateVoronoiPartition(dgInt32 pointsCount,
 						pointArray[countI] = voronoiPoints[i] + normal.Scale(perimeterConvexBound);
 
 						countI++;
-						NEWTON_ASSERT(countI < dgInt32(sizeof(pointArray) / sizeof(pointArray[0])));
+						NEWTON_ASSERT(countI < dgInt32(ARRAYSIZE(pointArray)));
 					}
 				}
 			}
 
 			pointArray[countI] = voronoiPoints[i];
 			countI++;
-			NEWTON_ASSERT(countI < dgInt32(sizeof(pointArray) / sizeof(pointArray[0])));
+			NEWTON_ASSERT(countI < dgInt32(ARRAYSIZE(pointArray)));
 		}
 
 		dgMeshEffect *const convexMesh = MakeDelanayIntersection(tree,
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgMeshEffectSolidTree.cpp b/engines/hpl1/engine/libraries/newton/physics/dgMeshEffectSolidTree.cpp
index 4d59177881a..c22ac7bd5f7 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgMeshEffectSolidTree.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgMeshEffectSolidTree.cpp
@@ -366,8 +366,8 @@ void dgMeshTreeCSGFace::Clip(const dgHugeVector &plane,
 				leftFace[leftCount] = p1;
 				leftCount++;
 			}
-			NEWTON_ASSERT(leftCount < dgInt32((sizeof(leftFace) / sizeof(leftFace[0])) - 1));
-			NEWTON_ASSERT(rightCount < dgInt32((sizeof(rightFace) / sizeof(rightFace[0])) - 1));
+			NEWTON_ASSERT(leftCount < dgInt32((ARRAYSIZE(leftFace)) - 1));
+			NEWTON_ASSERT(rightCount < dgInt32((ARRAYSIZE(rightFace)) - 1));
 
 			i0 = i1;
 			i1++;
@@ -494,7 +494,7 @@ void dgMeshEffectSolidTree::AddFace(const dgMeshEffect &mesh,
 						faces[stack] = backOut;
 						pool[stack] = root->m_back;
 						stack++;
-						NEWTON_ASSERT(stack < dgInt32(sizeof(pool) / sizeof(pool[0])));
+						NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(pool)));
 					}
 				}
 
@@ -508,7 +508,7 @@ void dgMeshEffectSolidTree::AddFace(const dgMeshEffect &mesh,
 						faces[stack] = frontOut;
 						pool[stack] = root->m_front;
 						stack++;
-						NEWTON_ASSERT(stack < dgInt32(sizeof(pool) / sizeof(pool[0])));
+						NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(pool)));
 					}
 				}
 			}
diff --git a/engines/hpl1/engine/libraries/newton/physics/dgMinkowskiConv.cpp b/engines/hpl1/engine/libraries/newton/physics/dgMinkowskiConv.cpp
index 6de151dbb8b..200b073fa4f 100644
--- a/engines/hpl1/engine/libraries/newton/physics/dgMinkowskiConv.cpp
+++ b/engines/hpl1/engine/libraries/newton/physics/dgMinkowskiConv.cpp
@@ -903,7 +903,7 @@ class dgContactSolver {
 
 					output += 2;
 					edgeIndex++;
-					NEWTON_ASSERT(edgeIndex < dgInt32(sizeof(subdivision) / sizeof(subdivision[0])));
+					NEWTON_ASSERT(edgeIndex < dgInt32(ARRAYSIZE(subdivision)));
 					//NEWTON_ASSERT (CheckNormal (poly, shapeNormal));
 				}
 			}
@@ -1081,7 +1081,7 @@ class dgContactSolver {
 
 					output += 2;
 					edgeIndex++;
-					NEWTON_ASSERT(edgeIndex < dgInt32(sizeof(subdivision) / sizeof(subdivision[0])));
+					NEWTON_ASSERT(edgeIndex < dgInt32(ARRAYSIZE(subdivision)));
 					//NEWTON_ASSERT (CheckNormal (poly, shapeNormal));
 				}
 			}
@@ -1887,7 +1887,7 @@ class dgContactSolver {
 					dgInt32 best = 0;
 					dgFloat32 maxErr = dgFloat32(0.0f);
 					dgInt32 j = 0;
-					for (; j < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); j++) {
+					for (; j < dgInt32(ARRAYSIZE(m_dir)); j++) {
 						// dgFloat32 error2;
 						CalcSupportVertex(m_dir[j], 1);
 						dgVector e(m_hullVertex[1] - m_hullVertex[0]);
@@ -1901,7 +1901,7 @@ class dgContactSolver {
 						}
 					}
 
-					if (j == dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+					if (j == dgInt32(ARRAYSIZE(m_dir))) {
 						NEWTON_ASSERT(maxErr > dgFloat32(0.0f));
 						CalcSupportVertex(m_dir[best], 1);
 					}
@@ -1915,7 +1915,7 @@ class dgContactSolver {
 					dgFloat32 maxErr = dgFloat32(0.0f);
 					dgVector e0(m_hullVertex[1] - m_hullVertex[0]);
 					dgInt32 j = 0;
-					for (; j < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); j++) {
+					for (; j < dgInt32(ARRAYSIZE(m_dir)); j++) {
 						CalcSupportVertex(m_dir[j], 2);
 						dgVector e1(m_hullVertex[2] - m_hullVertex[0]);
 						dgVector n(e0 * e1);
@@ -1929,7 +1929,7 @@ class dgContactSolver {
 						}
 					}
 
-					if (j == dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+					if (j == dgInt32(ARRAYSIZE(m_dir))) {
 						NEWTON_ASSERT(maxErr > dgFloat32(0.0f));
 						CalcSupportVertex(m_dir[best], 2);
 					}
@@ -2252,7 +2252,7 @@ class dgContactSolver {
 					dgInt32 best = 0;
 					dgFloat64 maxErr = dgFloat64(0.0f);
 					dgInt32 j = 0;
-					for (; j < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); j++) {
+					for (; j < dgInt32(ARRAYSIZE(m_dir)); j++) {
 						dgFloat64 error2;
 						CalcSupportVertexLarge(m_dir[j], 1);
 						dgBigVector e(m_hullVertexLarge[1] - m_hullVertexLarge[0]);
@@ -2266,7 +2266,7 @@ class dgContactSolver {
 						}
 					}
 
-					if (j == dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+					if (j == dgInt32(ARRAYSIZE(m_dir))) {
 						NEWTON_ASSERT(maxErr > dgFloat64(0.0f));
 						CalcSupportVertexLarge(m_dir[best], 1);
 					}
@@ -2280,7 +2280,7 @@ class dgContactSolver {
 					dgFloat64 maxErr = dgFloat64(0.0f);
 					dgBigVector e0(m_hullVertexLarge[1] - m_hullVertexLarge[0]);
 					dgInt32 j = 0;
-					for (; j < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); j++) {
+					for (; j < dgInt32(ARRAYSIZE(m_dir)); j++) {
 						dgFloat64 error2;
 						CalcSupportVertexLarge(m_dir[j], 2);
 						dgBigVector e1(m_hullVertexLarge[2] - m_hullVertexLarge[0]);
@@ -2295,7 +2295,7 @@ class dgContactSolver {
 						}
 					}
 
-					if (j == dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+					if (j == dgInt32(ARRAYSIZE(m_dir))) {
 						NEWTON_ASSERT(maxErr > dgFloat64(0.0f));
 						CalcSupportVertexLarge(m_dir[best], 2);
 					}
@@ -3166,7 +3166,7 @@ class dgContactSolver {
 		CalcSupportVertexSimd(m_dir[0], 0);
 
 		dgInt32 i = 1;
-		for (; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertexSimd(m_dir[i], 1);
 			e1 = m_hullVertex[1] - m_hullVertex[0];
 			error2 = e1 % e1;
@@ -3175,7 +3175,7 @@ class dgContactSolver {
 			}
 		}
 
-		for (i++; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (i++; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertexSimd(m_dir[i], 2);
 			e2 = m_hullVertex[2] - m_hullVertex[0];
 			normal = e1 * e2;
@@ -3186,7 +3186,7 @@ class dgContactSolver {
 		}
 
 		error2 = dgFloat32(0.0f);
-		for (i++; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (i++; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertexSimd(m_dir[i], 3);
 
 			e3 = m_hullVertex[3] - m_hullVertex[0];
@@ -3196,10 +3196,10 @@ class dgContactSolver {
 			}
 		}
 
-		if (i >= dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+		if (i >= dgInt32(ARRAYSIZE(m_dir))) {
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertexSimd(m_dir[i], 1);
 				e1 = m_hullVertex[1] - m_hullVertex[0];
 				error2 = e1 % e1;
@@ -3213,7 +3213,7 @@ class dgContactSolver {
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertexSimd(m_dir[i], 2);
 				e2 = m_hullVertex[2] - m_hullVertex[0];
 				normal = e1 * e2;
@@ -3230,7 +3230,7 @@ class dgContactSolver {
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertexSimd(m_dir[i], 3);
 
 				e3 = m_hullVertex[3] - m_hullVertex[0];
@@ -3313,7 +3313,7 @@ class dgContactSolver {
 
 		CalcSupportVertex(m_dir[0], 0);
 		dgInt32 i = 1;
-		for (; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertex(m_dir[i], 1);
 			e1 = m_hullVertex[1] - m_hullVertex[0];
 			error2 = e1 % e1;
@@ -3322,7 +3322,7 @@ class dgContactSolver {
 			}
 		}
 
-		for (i++; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (i++; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertex(m_dir[i], 2);
 			e2 = m_hullVertex[2] - m_hullVertex[0];
 			normal = e1 * e2;
@@ -3333,7 +3333,7 @@ class dgContactSolver {
 		}
 
 		error2 = dgFloat32(0.0f);
-		for (i++; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (i++; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertex(m_dir[i], 3);
 			e3 = m_hullVertex[3] - m_hullVertex[0];
 			error2 = normal % e3;
@@ -3342,10 +3342,10 @@ class dgContactSolver {
 			}
 		}
 
-		if (i >= dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+		if (i >= dgInt32(ARRAYSIZE(m_dir))) {
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertex(m_dir[i], 1);
 				e1 = m_hullVertex[1] - m_hullVertex[0];
 				error2 = e1 % e1;
@@ -3359,7 +3359,7 @@ class dgContactSolver {
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertex(m_dir[i], 2);
 				e2 = m_hullVertex[2] - m_hullVertex[0];
 				normal = e1 * e2;
@@ -3376,7 +3376,7 @@ class dgContactSolver {
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertex(m_dir[i], 3);
 
 				e3 = m_hullVertex[3] - m_hullVertex[0];
@@ -3452,7 +3452,7 @@ class dgContactSolver {
 
 		CalcSupportVertexLarge(m_dir[0], 0);
 		dgInt32 i = 1;
-		for (; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			dgFloat64 error3;
 			CalcSupportVertexLarge(m_dir[i], 1);
 			e1 = m_hullVertexLarge[1] - m_hullVertexLarge[0];
@@ -3462,7 +3462,7 @@ class dgContactSolver {
 			}
 		}
 
-		for (i++; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (i++; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			dgFloat64 error3;
 			CalcSupportVertexLarge(m_dir[i], 2);
 			e2 = m_hullVertexLarge[2] - m_hullVertexLarge[0];
@@ -3474,7 +3474,7 @@ class dgContactSolver {
 		}
 
 		error2 = dgFloat32(0.0f);
-		for (i++; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+		for (i++; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 			CalcSupportVertexLarge(m_dir[i], 3);
 			e3 = m_hullVertexLarge[3] - m_hullVertexLarge[0];
 			error2 = normal % e3;
@@ -3483,13 +3483,13 @@ class dgContactSolver {
 			}
 		}
 
-		if (i >= dgInt32(sizeof(m_dir) / sizeof(m_dir[0]))) {
+		if (i >= dgInt32(ARRAYSIZE(m_dir))) {
 			dgInt32 best;
 			dgFloat64 maxErr;
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertexLarge(m_dir[i], 1);
 				e1 = m_hullVertexLarge[1] - m_hullVertexLarge[0];
 				error2 = e1 % e1;
@@ -3503,7 +3503,7 @@ class dgContactSolver {
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertexLarge(m_dir[i], 2);
 				dgBigVector e4(m_hullVertexLarge[2] - m_hullVertexLarge[0]);
 				normal = e1 * e4;
@@ -3520,7 +3520,7 @@ class dgContactSolver {
 
 			best = 0;
 			maxErr = dgFloat32(0.0f);
-			for (i = 1; i < dgInt32(sizeof(m_dir) / sizeof(m_dir[0])); i++) {
+			for (i = 1; i < dgInt32(ARRAYSIZE(m_dir)); i++) {
 				CalcSupportVertexLarge(m_dir[i], 3);
 
 				dgBigVector e5(m_hullVertexLarge[3] - m_hullVertexLarge[0]);
@@ -3696,7 +3696,7 @@ class dgContactSolver {
 		} else {
 			face = &m_simplex[m_planeIndex];
 			m_planeIndex++;
-			NEWTON_ASSERT(m_planeIndex < dgInt32(sizeof(m_simplex) / sizeof(m_simplex[0])));
+			NEWTON_ASSERT(m_planeIndex < dgInt32(ARRAYSIZE(m_simplex)));
 		}
 		return face;
 	}
@@ -3882,8 +3882,8 @@ class dgContactSolver {
 									deadFaces[deadCount] = adjacent;
 									stack++;
 									deadCount++;
-									NEWTON_ASSERT(stack < dgInt32(sizeof(stackPool) / sizeof(stackPool[0])));
-									NEWTON_ASSERT(deadCount < dgInt32(sizeof(deadFaces) / sizeof(deadFaces[0])));
+									NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(stackPool)));
+									NEWTON_ASSERT(deadCount < dgInt32(ARRAYSIZE(deadFaces)));
 
 								} else {
 									silhouette = adjacent;
@@ -3930,7 +3930,7 @@ class dgContactSolver {
 					    &silhouette->m_adjancentFace[adjacentIndex];
 					silhouetteCapCount = 1;
 					NEWTON_ASSERT(
-					    silhouetteCapCount < dgInt32(sizeof(sillueteCap) / sizeof(sillueteCap[0])));
+					    silhouetteCapCount < dgInt32(ARRAYSIZE(sillueteCap)));
 					do {
 						silhouette = &m_simplex[silhouette->m_adjancentFace[adjacentIndex]];
 						adjacentIndex = (DG_GETADJACENTINDEX_VERTEX(silhouette, i0));
@@ -3973,7 +3973,7 @@ class dgContactSolver {
 						    &silhouette->m_adjancentFace[adjacentIndex];
 						silhouetteCapCount++;
 						NEWTON_ASSERT(
-						    silhouetteCapCount < dgInt32(sizeof(sillueteCap) / sizeof(sillueteCap[0])));
+						    silhouetteCapCount < dgInt32(ARRAYSIZE(sillueteCap)));
 
 						do {
 							silhouette =
@@ -4196,9 +4196,9 @@ class dgContactSolver {
 									deadFaces[deadCount] = adjacent;
 									stack++;
 									deadCount++;
-									NEWTON_ASSERT(stack < dgInt32(sizeof(stackPool) / sizeof(stackPool[0])));
+									NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(stackPool)));
 									NEWTON_ASSERT(
-									    deadCount < dgInt32(sizeof(deadFaces) / sizeof(deadFaces[0])));
+									    deadCount < dgInt32(ARRAYSIZE(deadFaces)));
 
 								} else {
 									silhouette = adjacent;
@@ -4243,7 +4243,7 @@ class dgContactSolver {
 					sillueteCap[0].m_faceCopling =
 					    &silhouette->m_adjancentFace[adjacentIndex];
 					silhouetteCapCount = 1;
-					NEWTON_ASSERT(silhouetteCapCount < dgInt32(sizeof(sillueteCap) / sizeof(sillueteCap[0])));
+					NEWTON_ASSERT(silhouetteCapCount < dgInt32(ARRAYSIZE(sillueteCap)));
 					do {
 						silhouette = &m_simplex[silhouette->m_adjancentFace[adjacentIndex]];
 						adjacentIndex = (DG_GETADJACENTINDEX_VERTEX(silhouette, i0));
@@ -4286,7 +4286,7 @@ class dgContactSolver {
 						sillueteCap[silhouetteCapCount].m_faceCopling =
 						    &silhouette->m_adjancentFace[adjacentIndex];
 						silhouetteCapCount++;
-						NEWTON_ASSERT(silhouetteCapCount < dgInt32(sizeof(sillueteCap) / sizeof(sillueteCap[0])));
+						NEWTON_ASSERT(silhouetteCapCount < dgInt32(ARRAYSIZE(sillueteCap)));
 
 						do {
 							silhouette =
@@ -4513,8 +4513,8 @@ class dgContactSolver {
 									deadFaces[deadCount] = adjacent;
 									stack++;
 									deadCount++;
-									NEWTON_ASSERT(stack < dgInt32(sizeof(stackPool) / sizeof(stackPool[0])));
-									NEWTON_ASSERT(deadCount < dgInt32(sizeof(deadFaces) / sizeof(deadFaces[0])));
+									NEWTON_ASSERT(stack < dgInt32(ARRAYSIZE(stackPool)));
+									NEWTON_ASSERT(deadCount < dgInt32(ARRAYSIZE(deadFaces)));
 
 								} else {
 									silhouette = adjacent;
@@ -4560,7 +4560,7 @@ class dgContactSolver {
 					    &silhouette->m_adjancentFace[adjacentIndex];
 					silhouetteCapCount = 1;
 					NEWTON_ASSERT(
-					    silhouetteCapCount < dgInt32(sizeof(sillueteCap) / sizeof(sillueteCap[0])));
+					    silhouetteCapCount < dgInt32(ARRAYSIZE(sillueteCap)));
 					do {
 						silhouette = &m_simplex[silhouette->m_adjancentFace[adjacentIndex]];
 						adjacentIndex = (DG_GETADJACENTINDEX_VERTEX(silhouette, i0));
@@ -4604,7 +4604,7 @@ class dgContactSolver {
 						    &silhouette->m_adjancentFace[adjacentIndex];
 						silhouetteCapCount++;
 						NEWTON_ASSERT(
-						    silhouetteCapCount < dgInt32(sizeof(sillueteCap) / sizeof(sillueteCap[0])));
+						    silhouetteCapCount < dgInt32(ARRAYSIZE(sillueteCap)));
 
 						do {
 							silhouette =
@@ -5458,10 +5458,7 @@ void dgWorld::InitConvexCollision() {
 	dgContactSolver::m_dir[13] = dgVector(dgFloat32(0.0f), dgFloat32(0.0f),
 	                                      -dgFloat32(1.0f), dgFloat32(0.0f));
 
-	for (i = 0;
-	        i < dgInt32(
-	            sizeof(dgContactSolver::m_dir) / sizeof(dgContactSolver::m_dir[0]));
-	        i++) {
+	for (i = 0; i < dgInt32(ARRAYSIZE(dgContactSolver::m_dir)); i++) {
 		dgVector dir(dgContactSolver::m_dir[i]);
 		dgContactSolver::m_dir[i] = dir.Scale(dgFloat32(1.0f) / dgSqrt(dir % dir));
 	}
@@ -5546,16 +5543,10 @@ void dgWorld::InitConvexCollision() {
 #endif
 
 #ifdef _DEBUG
-	for (i = 0;
-	        i < dgInt32(
-	            sizeof(dgContactSolver::m_dir) / sizeof(dgContactSolver::m_dir[0]));
-	        i++) {
+	for (i = 0; i < dgInt32(ARRAYSIZE(dgContactSolver::m_dir)); i++) {
 		NEWTON_ASSERT(
 		    dgContactSolver::m_dir[i] % dgContactSolver::m_dir[i] > dgFloat32(0.9999f));
-		for (dgInt32 j = i + 1;
-		        j < dgInt32(
-		            sizeof(dgContactSolver::m_dir) / sizeof(dgContactSolver::m_dir[0]));
-		        j++) {
+		for (dgInt32 j = i + 1; j < dgInt32(ARRAYSIZE(dgContactSolver::m_dir)); j++) {
 			NEWTON_ASSERT(
 			    dgContactSolver::m_dir[i] % dgContactSolver::m_dir[j] < dgFloat32(0.9999f));
 		}




More information about the Scummvm-git-logs mailing list