Skip to content

Commit

Permalink
Support UE5.4
Browse files Browse the repository at this point in the history
  • Loading branch information
jashking committed Sep 18, 2024
1 parent c8e7192 commit f57fb60
Show file tree
Hide file tree
Showing 23 changed files with 297 additions and 267 deletions.
7 changes: 2 additions & 5 deletions PakAnalyzer/Private/AssetParseThreadWorker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
#include "HAL/PlatformProcess.h"
#include "HAL/RunnableThread.h"
#include "IPlatformFilePak.h"
#include "Launch/Resources/Version.h"
#include "Misc/Compression.h"
#include "Misc/Paths.h"
#include "Misc/ScopeLock.h"
Expand Down Expand Up @@ -185,8 +184,7 @@ uint32 FAssetParseThreadWorker::Run()

// Serialize summary
Reader << File->AssetSummary->PackageSummary;

#if ENGINE_MAJOR_VERSION >= 5

Reader.Seek(0);
int32 Tag = 0;
Reader << Tag;
Expand All @@ -210,8 +208,7 @@ uint32 FAssetParseThreadWorker::Run()
// UE4 pak
Reader.SetUEVer(FPackageFileVersion(VER_LATEST_ENGINE_UE4, EUnrealEngineObjectUE5Version::INITIAL_VERSION));
}
#endif


// Serialize Names
const int32 NameCount = File->AssetSummary->PackageSummary.NameCount;
if (NameCount > 0)
Expand Down
37 changes: 1 addition & 36 deletions PakAnalyzer/Private/BaseAnalyzer.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
#include "BaseAnalyzer.h"

#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
#include "AssetRegistry/AssetRegistryState.h"
#else
#include "AssetRegistryState.h"
#endif
#include "Json.h"
#include "Launch/Resources/Version.h"
#include "Misc/Base64.h"
#include "Misc/FileHelper.h"
#include "Misc/Paths.h"
Expand All @@ -24,7 +19,7 @@ FBaseAnalyzer::~FBaseAnalyzer()

}

bool FBaseAnalyzer::LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys)
bool FBaseAnalyzer::LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys, int32 ContainerStartIndex)
{
Reset();
return false;
Expand Down Expand Up @@ -110,11 +105,7 @@ void FBaseAnalyzer::RefreshPackageDependency(FPakTreeEntryPtr InTreeRoot, FPakTr
else
{
TArray<FAssetIdentifier> Dependencies;
#if ENGINE_MAJOR_VERSION >= 5 || ENGINE_MINOR_VERSION >= 26
if (AssetRegistryState->GetDependencies(Child->PackagePath, Dependencies, UE::AssetRegistry::EDependencyCategory::All))
#else
if (AssetRegistryState->GetDependencies(Child->PackagePath, Dependencies, EAssetRegistryDependencyType::All))
#endif
{
if (!Child->AssetSummary.IsValid())
{
Expand All @@ -135,11 +126,7 @@ void FBaseAnalyzer::RefreshPackageDependency(FPakTreeEntryPtr InTreeRoot, FPakTr
}

TArray<FAssetIdentifier> Dependents;
#if ENGINE_MAJOR_VERSION >= 5 || ENGINE_MINOR_VERSION >= 26
if (AssetRegistryState->GetReferencers(Child->PackagePath, Dependents, UE::AssetRegistry::EDependencyCategory::All))
#else
if (AssetRegistryState->GetReferencers(Child->PackagePath, Dependents, EAssetRegistryDependencyType::All))
#endif
{
if (!Child->AssetSummary.IsValid())
{
Expand Down Expand Up @@ -443,20 +430,11 @@ FName FBaseAnalyzer::GetAssetClass(const FString& InFilename, FName InPackagePat
FName AssetClass = *FPaths::GetExtension(InFilename);
if (AssetRegistryState.IsValid())
{
#if ENGINE_MAJOR_VERSION >= 5 || ENGINE_MINOR_VERSION >= 27
TArrayView<FAssetData const* const> AssetDataArray = AssetRegistryState->GetAssetsByPackageName(InPackagePath);
#else
const TArray<const FAssetData*>& AssetDataArray = AssetRegistryState->GetAssetsByPackageName(InPackagePath);
#endif
if (AssetDataArray.Num() > 0)
{
bFoundClassInRegistry = true;

#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
AssetClass = AssetDataArray[0]->AssetClassPath.GetAssetName();
#else
AssetClass = AssetDataArray[0]->AssetClass;
#endif
}
}

Expand Down Expand Up @@ -514,7 +492,6 @@ void FBaseAnalyzer::Reset()

FString FBaseAnalyzer::ResolveCompressionMethod(const FPakFileSumary& Summary, const FPakEntry* InPakEntry) const
{
#if ENGINE_MAJOR_VERSION >= 5 || ENGINE_MINOR_VERSION >= 22
if (InPakEntry->CompressionMethodIndex >= 0 && InPakEntry->CompressionMethodIndex < (uint32)Summary.PakInfo.CompressionMethods.Num())
{
return Summary.PakInfo.CompressionMethods[InPakEntry->CompressionMethodIndex].ToString();
Expand All @@ -523,18 +500,6 @@ FString FBaseAnalyzer::ResolveCompressionMethod(const FPakFileSumary& Summary, c
{
return TEXT("Unknown");
}
#else
static const TArray<FString> CompressionMethods({ TEXT("None"), TEXT("Zlib"), TEXT("Gzip"), TEXT("Unknown"), TEXT("Custom") });

if (InPakEntry->CompressionMethod >= 0 && InPakEntry->CompressionMethod < CompressionMethods.Num())
{
return CompressionMethods[InPakEntry->CompressionMethod];
}
else
{
return TEXT("Unknown");
}
#endif
}

FPakTreeEntryPtr FBaseAnalyzer::InsertFileToTree(FPakTreeEntryPtr InRoot, const FPakFileSumary& Summary, const FString& InFullPath, const FPakEntry& InPakEntry)
Expand Down
2 changes: 1 addition & 1 deletion PakAnalyzer/Private/BaseAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class FBaseAnalyzer : public IPakAnalyzer
FBaseAnalyzer();
virtual ~FBaseAnalyzer();

virtual bool LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys) override;
virtual bool LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys, int32 ContainerStartIndex = 0) override;
virtual void GetFiles(const FString& InFilterText, const TMap<FName, bool>& InClassFilterMap, const TMap<int32, bool>& InPakIndexFilter, TArray<FPakFileEntryPtr>& OutFiles) const override;
virtual const TArray<FPakFileSumaryPtr>& GetPakFileSumary() const override;
virtual const TArray<FPakTreeEntryPtr>& GetPakTreeRootNode() const override;
Expand Down
9 changes: 1 addition & 8 deletions PakAnalyzer/Private/FolderAnalyzer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,14 @@

#include "FolderAnalyzer.h"

#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
#include "AssetRegistry/ARFilter.h"
#include "AssetRegistry/AssetData.h"
#include "AssetRegistry/AssetRegistryState.h"
#else
#include "ARFilter.h"
#include "AssetData.h"
#include "AssetRegistryState.h"
#endif
#include "HAL/FileManager.h"
#include "HAL/PlatformFile.h"
#include "HAL/PlatformMisc.h"
#include "HAL/UnrealMemory.h"
#include "Json.h"
#include "Launch/Resources/Version.h"
#include "Misc/Base64.h"
#include "Misc/Paths.h"
#include "Misc/ScopeLock.h"
Expand All @@ -38,7 +31,7 @@ FFolderAnalyzer::~FFolderAnalyzer()
Reset();
}

bool FFolderAnalyzer::LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys)
bool FFolderAnalyzer::LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys, int32 ContainerStartIndex)
{
const FString InPakPath = InPakPaths.Num() > 0 ? InPakPaths[0] : TEXT("");
if (InPakPath.IsEmpty())
Expand Down
2 changes: 1 addition & 1 deletion PakAnalyzer/Private/FolderAnalyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class FFolderAnalyzer : public FBaseAnalyzer, public TSharedFromThis<FFolderAnal
FFolderAnalyzer();
virtual ~FFolderAnalyzer();

virtual bool LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys) override;
virtual bool LoadPakFiles(const TArray<FString>& InPakPaths, const TArray<FString>& InDefaultAESKeys, int32 ContainerStartIndex = 0) override;
virtual void ExtractFiles(const FString& InOutputPath, TArray<FPakFileEntryPtr>& InFiles) override;
virtual void CancelExtract() override;
virtual void SetExtractThreadCount(int32 InThreadCount) override;
Expand Down
Loading

0 comments on commit f57fb60

Please sign in to comment.