diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-04-26 22:03:15 +0300 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-04-26 22:03:15 +0300 |
commit | f0890b11122291a22d6a65f349281cf1aed49bd0 (patch) | |
tree | 3b418b522c5fd097abac916693e59808ea4f5b4f /src/core/Directory.cpp | |
parent | 3e460d94acd6e08301b0be2d4de58fe8f65aff57 (diff) | |
parent | 4dc2f307910c6d5dcf3c910b3da2e2d943ac1003 (diff) |
Merge branch 'master' into MoreLanguages
# Conflicts:
# src/core/Frontend.cpp
# src/core/MenuScreens.h
# src/render/Font.cpp
# src/render/Font.h
# src/text/Messages.cpp
# src/text/Text.cpp
Diffstat (limited to 'src/core/Directory.cpp')
-rw-r--r-- | src/core/Directory.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/core/Directory.cpp b/src/core/Directory.cpp index d4b4279d..cc4d65d8 100644 --- a/src/core/Directory.cpp +++ b/src/core/Directory.cpp @@ -1,5 +1,5 @@ #include "common.h" -#include "patcher.h" + #include "General.h" #include "FileMgr.h" #include "Directory.h" @@ -41,9 +41,23 @@ void CDirectory::AddItem(const DirectoryInfo &dirinfo) { assert(numEntries < maxEntries); +#ifdef FIX_BUGS + // don't add if already exists + uint32 offset, size; + if(FindItem(dirinfo.name, offset, size)) + return; +#endif entries[numEntries++] = dirinfo; } +void +CDirectory::AddItem(const DirectoryInfo &dirinfo, int32 imgId) +{ + DirectoryInfo di = dirinfo; + di.offset |= imgId<<24; + AddItem(di); +} + bool CDirectory::FindItem(const char *name, uint32 &offset, uint32 &size) { @@ -57,10 +71,3 @@ CDirectory::FindItem(const char *name, uint32 &offset, uint32 &size) } return false; } - -STARTPATCHES - InjectHook(0x473630, &CDirectory::ReadDirFile, PATCH_JUMP); - InjectHook(0x473690, &CDirectory::WriteDirFile, PATCH_JUMP); - InjectHook(0x473600, &CDirectory::AddItem, PATCH_JUMP); - InjectHook(0x4736E0, &CDirectory::FindItem, PATCH_JUMP); -ENDPATCHES |