Browse Source

do not call SFileOpenFileEx if the given handle is NULL

+ add defines for dwSearchScope
pull/1024/head
pionere 5 years ago committed by Anders Jenbo
parent
commit
1f340212e1
  1. 3
      3rdParty/Storm/Source/storm.h
  2. 2
      3rdParty/StormLib/src/SFileOpenFileEx.cpp
  3. 48
      SourceX/storm/storm.cpp

3
3rdParty/Storm/Source/storm.h vendored

@ -189,7 +189,8 @@ SNetSendMessage(
#define SNPLAYER_OTHERS -2
#define MPQ_FLAG_READ_ONLY 1
#define SFILE_OPEN_FROM_MPQ 0
#define SFILE_OPEN_LOCAL_FILE 0xFFFFFFFF
/* SNetSendTurn @ 128
*

2
3rdParty/StormLib/src/SFileOpenFileEx.cpp vendored

@ -358,7 +358,7 @@ bool STORMAPI SFileOpenFileEx(HANDLE hMpq, const char * szFileName, DWORD dwSear
// Give the file entry
if(PtrFile != NULL)
PtrFile[0] = hf;
*PtrFile = hf;
// Return error code
if(nError != ERROR_SUCCESS)

48
SourceX/storm/storm.cpp

@ -84,46 +84,46 @@ BOOL SFileOpenFile(const char *filename, HANDLE *phFile)
std::string path = *SBasePath + filename;
for (std::size_t i = SBasePath->size(); i < path.size(); ++i)
path[i] = AsciiToLowerTable_Path[static_cast<unsigned char>(path[i])];
result = SFileOpenFileEx((HANDLE)0, path.c_str(), 0xFFFFFFFF, phFile);
result = SFileOpenFileEx((HANDLE)0, path.c_str(), SFILE_OPEN_LOCAL_FILE, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)devilutionx_mpq, filename, 0, phFile);
if (!result && devilutionx_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)devilutionx_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (gbIsHellfire) {
if (!result) {
result = SFileOpenFileEx((HANDLE)hfopt2_mpq, filename, 0, phFile);
if (!result && hfopt2_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfopt2_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hfopt1_mpq, filename, 0, phFile);
if (!result && hfopt1_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfopt1_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hfvoice_mpq, filename, 0, phFile);
if (!result && hfvoice_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfvoice_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hfmusic_mpq, filename, 0, phFile);
if (!result && hfmusic_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfmusic_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hfbarb_mpq, filename, 0, phFile);
if (!result && hfbarb_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfbarb_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hfbard_mpq, filename, 0, phFile);
if (!result && hfbard_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfbard_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hfmonk_mpq, filename, 0, phFile);
if (!result && hfmonk_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)hfmonk_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result) {
result = SFileOpenFileEx((HANDLE)hellfire_mpq, filename, 0, phFile);
result = SFileOpenFileEx((HANDLE)hellfire_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
}
if (!result && patch_rt_mpq) {
result = SFileOpenFileEx((HANDLE)patch_rt_mpq, filename, 0, phFile);
if (!result && patch_rt_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)patch_rt_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result && spawn_mpq) {
result = SFileOpenFileEx((HANDLE)spawn_mpq, filename, 0, phFile);
if (!result && spawn_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)spawn_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result && diabdat_mpq) {
result = SFileOpenFileEx((HANDLE)diabdat_mpq, filename, 0, phFile);
if (!result && diabdat_mpq != NULL) {
result = SFileOpenFileEx((HANDLE)diabdat_mpq, filename, SFILE_OPEN_FROM_MPQ, phFile);
}
if (!result || !*phFile) {

Loading…
Cancel
Save