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

aquadran noreply at scummvm.org
Sat Jun 25 22:22:23 UTC 2022


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:
aa37cd7f4e WINTERMUTE: WME3D: Restore missing check, matching original


Commit: aa37cd7f4e059afcbfdbad76be09c8dc7047b819
    https://github.com/scummvm/scummvm/commit/aa37cd7f4e059afcbfdbad76be09c8dc7047b819
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2022-06-26T00:22:19+02:00

Commit Message:
WINTERMUTE: WME3D: Restore missing check, matching original

Changed paths:
    engines/wintermute/ad/ad_actor_3dx.cpp
    engines/wintermute/base/gfx/x/meshx.cpp
    engines/wintermute/base/gfx/x/modelx.cpp


diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index 63e2a01825e..6ac1864cfa8 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -1908,8 +1908,11 @@ bool AdActor3DX::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisSta
 		stack->pop();
 
 		warning("AdActor3DX::scCallMethod D3DX effects are not supported");
-
-		stack->pushBool(false);
+		if (_modelX) {
+			stack->pushBool(true);
+		} else {
+			stack->pushBool(false);
+		}
 		return true;
 	}
 
diff --git a/engines/wintermute/base/gfx/x/meshx.cpp b/engines/wintermute/base/gfx/x/meshx.cpp
index 634510b628f..1be7aae029b 100644
--- a/engines/wintermute/base/gfx/x/meshx.cpp
+++ b/engines/wintermute/base/gfx/x/meshx.cpp
@@ -411,6 +411,9 @@ bool MeshX::pickPoly(Math::Vector3d *pickRayOrig, Math::Vector3d *pickRayDir) {
 		Math::Vector3d v2;
 		v2.setData(&_vertexData[index3 * kVertexComponentCount + kPositionOffset]);
 
+		if (isnan(v0.x()))
+			continue;
+
 		Math::Vector3d intersection;
 		if (lineIntersectsTriangle(*pickRayOrig, *pickRayDir, v0, v1, v2, intersection.x(), intersection.y(), intersection.z())) {
 			res = true;
diff --git a/engines/wintermute/base/gfx/x/modelx.cpp b/engines/wintermute/base/gfx/x/modelx.cpp
index e320423aa6d..3afb61105f4 100644
--- a/engines/wintermute/base/gfx/x/modelx.cpp
+++ b/engines/wintermute/base/gfx/x/modelx.cpp
@@ -246,6 +246,10 @@ bool ModelX::loadFromFile(const Common::String &filename, ModelX *parentModel) {
 }
 
 bool ModelX::mergeFromFile(const Common::String &filename) {
+	if (!_rootFrame) {
+		return false;
+	}
+
 	uint32 fileSize = 0;
 	byte *buffer = BaseFileManager::getEngineInstance()->getEngineInstance()->readWholeFile(filename, &fileSize);
 	XFileLexer lexer = createXFileLexer(buffer, fileSize);




More information about the Scummvm-git-logs mailing list