summaryrefslogtreecommitdiff
path: root/src/core/Directory.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-04-26 22:03:15 +0300
committerSergeanur <s.anureev@yandex.ua>2020-04-26 22:03:15 +0300
commitf0890b11122291a22d6a65f349281cf1aed49bd0 (patch)
tree3b418b522c5fd097abac916693e59808ea4f5b4f /src/core/Directory.cpp
parent3e460d94acd6e08301b0be2d4de58fe8f65aff57 (diff)
parent4dc2f307910c6d5dcf3c910b3da2e2d943ac1003 (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.cpp23
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