fs: Fix RomFS building when zero byte files are present

When zero byte files are present, the key (offset) for that file is identical to the file right after. A std::map isn't able to fit key-value pairs with identical keys (offsets), therefore, the solution is to use std::multimap which permits multiple entries with the same key.

This most prominently fixes Pokemon Sword and Shield weather with any RomFS mod applied.
This commit is contained in:
Morph
2020-07-12 04:31:01 -04:00
parent e60733aad3
commit fd1c3aa14e
4 changed files with 10 additions and 10 deletions

View File

@ -43,7 +43,7 @@ public:
~RomFSBuildContext();
// This finalizes the context.
std::map<u64, VirtualFile> Build();
std::multimap<u64, VirtualFile> Build();
private:
VirtualDir base;