diff --git a/Source/init.cpp b/Source/init.cpp index d40000dfe..4d77be1aa 100644 --- a/Source/init.cpp +++ b/Source/init.cpp @@ -12,6 +12,7 @@ #include "dx.h" #include "pfile.h" #include "storm/storm.h" +#include "utils/file_util.h" #include "utils/paths.h" #include "utils/ui_fwd.h" #include "utils/log.hpp" @@ -59,7 +60,7 @@ HANDLE init_test_access(const std::vector &paths, const char *mpq_n std::string mpq_abspath; for (const auto &path : paths) { mpq_abspath = path + mpq_name; - if (SFileOpenArchive(mpq_abspath.c_str(), 0, MPQ_OPEN_READ_ONLY, &archive)) { + if (SFileOpenArchiveDiablo(mpq_abspath.c_str(), 0, MPQ_OPEN_READ_ONLY, &archive)) { LogVerbose(" Found: {} in {}", mpq_name, path); SFileSetBasePath(path.c_str()); return archive; diff --git a/Source/pfile.cpp b/Source/pfile.cpp index 4a4d4eaf0..fde2cd707 100644 --- a/Source/pfile.cpp +++ b/Source/pfile.cpp @@ -195,7 +195,7 @@ static HANDLE pfile_open_save_archive(DWORD save_num) { HANDLE archive; - if (SFileOpenArchive(GetSavePath(save_num).c_str(), 0, 0, &archive)) + if (SFileOpenArchiveDiablo(GetSavePath(save_num).c_str(), 0, 0, &archive)) return archive; return nullptr; } diff --git a/Source/utils/file_util.cpp b/Source/utils/file_util.cpp index 46409fc8d..188e66557 100644 --- a/Source/utils/file_util.cpp +++ b/Source/utils/file_util.cpp @@ -31,6 +31,8 @@ #include #endif +#include "storm/storm.h" + namespace devilution { namespace { @@ -161,4 +163,9 @@ std::unique_ptr CreateFileStream(const char *path, std::ios::openm return std::make_unique(path, mode); } +bool SFileOpenArchiveDiablo(const char *szMpqName, DWORD dwPriority, DWORD dwFlags, HANDLE *phMpq) +{ + return SFileOpenArchive(szMpqName, dwPriority, dwFlags, phMpq); +} + } // namespace devilution diff --git a/Source/utils/file_util.h b/Source/utils/file_util.h index 555c3fa9c..80f8a9438 100644 --- a/Source/utils/file_util.h +++ b/Source/utils/file_util.h @@ -3,6 +3,9 @@ #include #include #include + +#include "miniwin/miniwin.h" + namespace devilution { bool FileExists(const char *path); @@ -10,5 +13,6 @@ bool GetFileSize(const char *path, std::uintmax_t *size); bool ResizeFile(const char *path, std::uintmax_t size); void RemoveFile(const char *lpFileName); std::unique_ptr CreateFileStream(const char *path, std::ios::openmode mode); +bool SFileOpenArchiveDiablo(const char *szMpqName, DWORD dwPriority, DWORD dwFlags, HANDLE *phMpq); } // namespace devilution