Skip to content

Commit

Permalink
Merge pull request #1112 from MainMemory/master
Browse files Browse the repository at this point in the history
Panacea: Check which game is being played before scanning files for assets.
  • Loading branch information
Vladabdf authored Sep 10, 2024
2 parents 08db1ab + 9645160 commit 6f4b250
Showing 1 changed file with 36 additions and 27 deletions.
63 changes: 36 additions & 27 deletions OpenKh.Research.Panacea/Panacea.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -697,35 +697,44 @@ void ScanRemasteredFolder(const wchar_t* path, void* addr, const wchar_t* remas
{
std::vector<int> assetoffs{};
const wchar_t* ext = PathFindExtensionW(path);
if (ext[-2] == L'.' && ext[-1] == L'a')
ext -= 2;
if (!_wcsicmp(ext, L".imd"))
GetIMDOffsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".imz"))
GetIMZOffsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".tm2"))
GetTM2Offsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".pax"))
GetPAXOffsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".2dd")
|| !_wcsicmp(ext, L".2ld")
|| !_wcsicmp(ext, L".a.fm")
|| !_wcsicmp(ext, L".a.fr")
|| !_wcsicmp(ext, L".a.gr")
|| !_wcsicmp(ext, L".a.it")
|| !_wcsicmp(ext, L".a.sp")
|| !_wcsicmp(ext, L".a.us")
|| !_wcsicmp(ext, L".a.uk")
|| !_wcsicmp(ext, L".a.jp")
|| !_wcsicmp(ext, L".bar")
|| !_wcsicmp(ext, L".bin")
|| !_wcsicmp(ext, L".mag")
|| !_wcsicmp(ext, L".map")
|| !_wcsicmp(ext, L".mdlx"))
GetBAROffsets(addr, 0, assetoffs);
else // unknown file type
switch (OpenKH::m_GameID)
{
case OpenKH::GameId::KingdomHearts2:
if (ext[-2] == L'.' && ext[-1] == L'a')
ext -= 2;
if (!_wcsicmp(ext, L".imd"))
GetIMDOffsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".imz"))
GetIMZOffsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".tm2"))
GetTM2Offsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".pax"))
GetPAXOffsets(addr, 0, assetoffs);
else if (!_wcsicmp(ext, L".2dd")
|| !_wcsicmp(ext, L".2ld")
|| !_wcsicmp(ext, L".a.fm")
|| !_wcsicmp(ext, L".a.fr")
|| !_wcsicmp(ext, L".a.gr")
|| !_wcsicmp(ext, L".a.it")
|| !_wcsicmp(ext, L".a.sp")
|| !_wcsicmp(ext, L".a.us")
|| !_wcsicmp(ext, L".a.uk")
|| !_wcsicmp(ext, L".a.jp")
|| !_wcsicmp(ext, L".bar")
|| !_wcsicmp(ext, L".bin")
|| !_wcsicmp(ext, L".mag")
|| !_wcsicmp(ext, L".map")
|| !_wcsicmp(ext, L".mdlx"))
GetBAROffsets(addr, 0, assetoffs);
else // unknown file type
for (int i = 0; i < entries.size(); ++i)
assetoffs.push_back(entries[i].origOffset);
break;
default:
for (int i = 0; i < entries.size(); ++i)
assetoffs.push_back(entries[i].origOffset);
break;
}
std::vector<Axa::RemasteredEntry> modfiles;
ScanFolder(remasteredFolder, modfiles);
if (modfiles.size() >= assetoffs.size())
Expand Down

0 comments on commit 6f4b250

Please sign in to comment.