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

aquadran noreply at scummvm.org
Sun Oct 27 14:21:06 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:
c8365a29d4 WINTERMUTE: Improve and correct replacing extensions for geometry and animations


Commit: c8365a29d45392a0008122acc6d8a34e74ff30eb
    https://github.com/scummvm/scummvm/commit/c8365a29d45392a0008122acc6d8a34e74ff30eb
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-10-27T15:21:00+01:00

Commit Message:
WINTERMUTE: Improve and correct replacing extensions for geometry and animations

Changed paths:
    engines/wintermute/ad/ad_actor_3dx.cpp
    engines/wintermute/ad/ad_scene_geometry.cpp


diff --git a/engines/wintermute/ad/ad_actor_3dx.cpp b/engines/wintermute/ad/ad_actor_3dx.cpp
index c94f256551b..96531331cbd 100644
--- a/engines/wintermute/ad/ad_actor_3dx.cpp
+++ b/engines/wintermute/ad/ad_actor_3dx.cpp
@@ -2353,13 +2353,11 @@ bool AdActor3DX::mergeAnimations(const char *filename) {
 		return res;
 	}
 
-	Common::String animExtFile = PathUtil::getFileNameWithoutExtension(filename);
-	animExtFile += ".anim";
+	AnsiString path = PathUtil::getDirectoryName(filename);
+	AnsiString name = PathUtil::getFileNameWithoutExtension(filename);
+	AnsiString animExtFile = PathUtil::combine(path, name + ".anim");
 
-	Common::SeekableReadStream *testFile = BaseFileManager::getEngineInstance()->openFile(animExtFile);
-
-	if (testFile) {
-		BaseFileManager::getEngineInstance()->closeFile(testFile);
+	if (BaseFileManager::getEngineInstance()->hasFile(animExtFile)) {
 		return mergeAnimations2(animExtFile.c_str());
 	} else {
 		return true;
diff --git a/engines/wintermute/ad/ad_scene_geometry.cpp b/engines/wintermute/ad/ad_scene_geometry.cpp
index 74f7b0e4321..1a2e9f159de 100644
--- a/engines/wintermute/ad/ad_scene_geometry.cpp
+++ b/engines/wintermute/ad/ad_scene_geometry.cpp
@@ -48,6 +48,7 @@
 #include "engines/wintermute/base/gfx/3dloader_3ds.h"
 #include "engines/wintermute/base/gfx/3dmesh.h"
 #include "engines/wintermute/base/gfx/xmath.h"
+#include "engines/wintermute/utils/path_util.h"
 #include "engines/wintermute/math/math_util.h"
 #include "engines/wintermute/system/sys_class_registry.h"
 #include "engines/wintermute/wintermute.h"
@@ -144,11 +145,12 @@ void AdSceneGeometry::cleanup() {
 AdGeomExt *AdSceneGeometry::getGeometryExtension(char *filename) {
 	AdGeomExt *ret = new AdGeomExt(_gameRef);
 
-	Common::String geomExtFile(filename);
-	geomExtFile.replace(geomExtFile.size() - 3, 3, "geometry", 0, 8);
+	AnsiString path = PathUtil::getDirectoryName(filename);
+	AnsiString name = PathUtil::getFileNameWithoutExtension(filename);
+	AnsiString geomExtFile = PathUtil::combine(path, name + ".geometry");
 
 	bool loadOK = false;
-	if (BaseFileManager::getEngineInstance()->openFile(geomExtFile) != nullptr) {
+	if (BaseFileManager::getEngineInstance()->hasFile(geomExtFile)) {
 		loadOK = ret->loadFile(geomExtFile.begin());
 	}
 




More information about the Scummvm-git-logs mailing list