From a96d127b1f07db20f66e74ae3011cc643ba7a9bd Mon Sep 17 00:00:00 2001 From: lolbot-iichan Date: Sat, 29 Jun 2019 14:37:59 +0300 Subject: WINTERMUTE: Fix assertion in Hamlet game Assertion was caused by providing "saves/" prefixed string to WindowsFilesystemNode::getChild() function, that asserts on '/' characters. Wintermute game code: if(!(Game.FileExists((Game.SaveDirectory + "\gamelet.save")))) { Directory.Create(Game.SaveDirectory); } ... Assertion stack: from C:\WINDOWS\System32\KernelBase.dll from C:\WINDOWS\System32\msvcrt.dll (this=0xcfdf710, n=...) at backends/fs/windows/windows-fs.cpp:158 n=...) at common/fs.cpp:68 (filename=...) at engines/wintermute/base/file/base_disk_file.cpp:76 at engines/wintermute/base/file/base_disk_file.cpp:105 this=0x50795e0, filename=...) at engines/wintermute/base/base_file_manager.cpp:326 (this=0xcea72f0, script=0xcf657d0, stack=0xcf6a2e0, thisStack=0xcf69ee0, name=0xcfd8870 "FileExists") at engines/wintermute/base/base_game.cpp:1523 ... --- engines/wintermute/base/base_game.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/wintermute/base') diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp index 0c9862fa0d..1f042c20ad 100644 --- a/engines/wintermute/base/base_game.cpp +++ b/engines/wintermute/base/base_game.cpp @@ -2297,7 +2297,7 @@ ScValue *BaseGame::scGetProperty(const Common::String &name) { // SaveDirectory (RO) ////////////////////////////////////////////////////////////////////////// else if (name == "SaveDirectory") { - AnsiString dataDir = "saves/"; // TODO: This is just to avoid telling the engine actual paths. + AnsiString dataDir = "saves"; // See also: SXDirectory::scGetProperty("TempDirectory") _scValue->setString(dataDir.c_str()); return _scValue; } -- cgit v1.2.3