This repository has been archived by the owner on Jun 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathArchiveEntry.cs
94 lines (82 loc) · 1.89 KB
/
ArchiveEntry.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System.IO;
namespace CSystemArc
{
internal class ArchiveEntry
{
public int Version
{
get;
set;
}
public int Index
{
get;
set;
}
public int ContentArchiveIndex
{
get;
set;
}
public int Id
{
get;
set;
}
public int Offset
{
get;
set;
}
public int UncompressedSize
{
get;
set;
}
public int CompressedSize
{
get;
set;
}
public char Type
{
get;
set;
}
public char SubType
{
get;
set;
}
public void Read(BinaryReader reader)
{
Version = reader.ReadInt32();
Id = reader.ReadInt32();
UncompressedSize = reader.ReadInt32();
CompressedSize = reader.ReadInt32();
Offset = reader.ReadInt32();
Type = (char)reader.ReadByte();
SubType = (char)reader.ReadByte();
reader.ReadInt32();
if (Version > 0x16)
ContentArchiveIndex = reader.ReadByte();
}
public void Write(BinaryWriter writer)
{
writer.Write(Version);
writer.Write(Id);
writer.Write(UncompressedSize);
writer.Write(CompressedSize);
writer.Write(Offset);
writer.Write((byte)Type);
writer.Write((byte)SubType);
writer.Write(-1);
if (Version > 0x16)
writer.Write((byte)ContentArchiveIndex);
}
public override string ToString()
{
return $"{Id}:{ContentArchiveIndex} (type {Type}{SubType})";
}
}
}