ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
ArticyArchiveReader.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "CoreMinimal.h"
8#include "UObject/Object.h"
9#include "Dom/JsonObject.h"
10#include "ArticyArchiveReader.generated.h"
11
15USTRUCT()
16struct ARTICYEDITOR_API FArticyArchiveHeader
17{
18 GENERATED_BODY()
19
20
21 FString Magic;
23 uint8 Version;
25 uint8 Pad;
27 uint16 Flags;
32};
33
37USTRUCT()
38struct ARTICYEDITOR_API FArticyArchiveFileData
39{
40 GENERATED_BODY()
41
42
49 int16 Flags;
51 FString Filename;
52};
53
57UCLASS()
58class ARTICYEDITOR_API UArticyArchiveReader : public UObject
59{
60 GENERATED_BODY()
61
62public:
69 bool OpenArchive(const FString& InArchiveFileName);
70
78 bool ReadFile(const FString& Filename, FString& OutResult) const;
79
87 static FString ArchiveBytesToString(const uint8* In, int32 Count);
88
98 bool FetchJson(
99 const TSharedPtr<FJsonObject>& JsonRoot,
100 const FString& FieldName,
101 FString& Hash,
102 TSharedPtr<FJsonObject>& OutJsonObject) const;
103
104protected:
110 bool ReadHeader();
111
117 bool ReadFileData();
118
124 TMap<FString, FArticyArchiveFileData> FileDictionary;
125};
Definition ArticyArchiveReader.h:59
FString ArchiveFileName
Definition ArticyArchiveReader.h:120
FArticyArchiveHeader Header
Definition ArticyArchiveReader.h:122
bool ReadFileData()
Definition ArticyArchiveReader.cpp:161
bool FetchJson(const TSharedPtr< FJsonObject > &JsonRoot, const FString &FieldName, FString &Hash, TSharedPtr< FJsonObject > &OutJsonObject) const
Definition ArticyArchiveReader.cpp:273
bool ReadHeader()
Definition ArticyArchiveReader.cpp:74
bool ReadFile(const FString &Filename, FString &OutResult) const
Definition ArticyArchiveReader.cpp:43
static FString ArchiveBytesToString(const uint8 *In, int32 Count)
Definition ArticyArchiveReader.cpp:250
TMap< FString, FArticyArchiveFileData > FileDictionary
Definition ArticyArchiveReader.h:124
bool OpenArchive(const FString &InArchiveFileName)
Definition ArticyArchiveReader.cpp:17
Definition ArticyArchiveReader.h:39
int64 UnpackedLength
Definition ArticyArchiveReader.h:45
FString Filename
Definition ArticyArchiveReader.h:51
int64 PackedLength
Definition ArticyArchiveReader.h:47
uint64 FileStartPos
Definition ArticyArchiveReader.h:43
int16 Flags
Definition ArticyArchiveReader.h:49
Definition ArticyArchiveReader.h:17
uint8 Pad
Definition ArticyArchiveReader.h:25
FString Magic
Definition ArticyArchiveReader.h:21
int32 NumberOfFiles
Definition ArticyArchiveReader.h:29
uint16 Flags
Definition ArticyArchiveReader.h:27
uint8 Version
Definition ArticyArchiveReader.h:23
uint64 FileDictionaryPos
Definition ArticyArchiveReader.h:31