[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