GRFFile - Rename eCompressionType enum values and SubRules to ChildRules

This commit is contained in:
miku-666
2023-03-05 12:39:09 +01:00
parent 988a5eca0c
commit 2d251558fc
5 changed files with 33 additions and 33 deletions

View File

@@ -91,18 +91,18 @@ namespace PckStudio.Classes.FileTypes
public int Crc => _crc;
public bool IsWorld => _isWorld;
public eCompressionType CompressionLevel => _compressionLevel;
public CompressionType CompressionLevel => _compressionLevel;
private int _crc = 0;
private bool _isWorld = false;
private eCompressionType _compressionLevel = eCompressionType.None;
private CompressionType _compressionLevel = CompressionType.None;
public enum eCompressionType : byte
public enum CompressionType : byte
{
None = 0,
Zlib = 1,
ZlibRle = 2,
ZlibRleCrc = 3,
None = 0,
Compressed = 1,
CompressedRle = 2,
CompressedRleCrc = 3,
}
/// <summary>
@@ -111,9 +111,9 @@ namespace PckStudio.Classes.FileTypes
public GRFFile() : this(-1, false)
{}
public GRFFile(int crc, bool isWolrd) : this(crc, isWolrd, eCompressionType.None)
public GRFFile(int crc, bool isWolrd) : this(crc, isWolrd, CompressionType.None)
{}
public GRFFile(int crc, bool isWolrd, eCompressionType compressionLevel)
public GRFFile(int crc, bool isWolrd, CompressionType compressionLevel)
{
Root = new GameRule("__ROOT__", null);
_compressionLevel = compressionLevel;
@@ -236,7 +236,7 @@ namespace PckStudio.Classes.FileTypes
public GameRule Parent { get; } = null;
public Dictionary<string, string> Parameters { get; } = new Dictionary<string, string>();
public List<GameRule> SubRules { get; } = new List<GameRule>();
public List<GameRule> ChildRules { get; } = new List<GameRule>();
public GameRule(string name, GameRule parent)
{
@@ -254,7 +254,7 @@ namespace PckStudio.Classes.FileTypes
{
if (validate && !ValidGameRules.Contains(gameRuleName)) return null;
var tag = new GameRule(gameRuleName, this);
SubRules.Add(tag);
ChildRules.Add(tag);
return tag;
}
@@ -269,7 +269,7 @@ namespace PckStudio.Classes.FileTypes
}
}
public void AddGameRules(IEnumerable<GameRule> gameRules) => Root.SubRules.AddRange(gameRules);
public void AddGameRules(IEnumerable<GameRule> gameRules) => Root.ChildRules.AddRange(gameRules);
public GameRule AddRule(string gameRuleName)
=> AddRule(gameRuleName, false);

View File

@@ -40,7 +40,7 @@ namespace PckStudio.Classes.IO.GRF
return stream;
}
GRFFile.eCompressionType compression_type = (GRFFile.eCompressionType)stream.ReadByte();
GRFFile.CompressionType compression_type = (GRFFile.CompressionType)stream.ReadByte();
int crc = ReadInt(stream);
int byte1 = stream.ReadByte();
int byte2 = stream.ReadByte();
@@ -48,11 +48,11 @@ namespace PckStudio.Classes.IO.GRF
int byte4 = stream.ReadByte();
if (byte4 > 0)
{
compression_type = (GRFFile.eCompressionType)byte4;
compression_type = (GRFFile.CompressionType)byte4;
}
_file = new GRFFile(crc, byte4 > 0, compression_type);
if (compression_type == GRFFile.eCompressionType.None && byte4 == 0)
if (compression_type == GRFFile.CompressionType.None && byte4 == 0)
return stream;
int buf_size = ReadInt(stream);
@@ -68,7 +68,7 @@ namespace PckStudio.Classes.IO.GRF
}
var decompressed_stream = DecompressZLX(new_stream);
new_stream.Dispose();
if (compression_type > GRFFile.eCompressionType.Zlib)
if (compression_type > GRFFile.CompressionType.Compressed)
{
byte[] data = ReadBytes(decompressed_stream, buf_size);
byte[] decoded_data = RLE<byte>.Decode(data).ToArray();

View File

@@ -15,14 +15,14 @@ namespace PckStudio.Classes.IO.GRF
private readonly GRFFile _grfFile;
private List<string> StringLookUpTable;
private GRFFile.eCompressionType _compressionType;
private GRFFile.CompressionType _compressionType;
public static void Write(in Stream stream, GRFFile grfFile, GRFFile.eCompressionType compressionType)
public static void Write(in Stream stream, GRFFile grfFile, GRFFile.CompressionType compressionType)
{
new GRFFileWriter(grfFile, compressionType).WriteToStream(stream);
}
private GRFFileWriter(GRFFile grfFile, GRFFile.eCompressionType compressionType) : base(false)
private GRFFileWriter(GRFFile grfFile, GRFFile.CompressionType compressionType) : base(false)
{
_compressionType = compressionType;
if (grfFile.IsWorld)
@@ -35,7 +35,7 @@ namespace PckStudio.Classes.IO.GRF
private void PrepareLookUpTable(GRFFile.GameRule rule, List<string> LUT)
{
if (!LUT.Contains(rule.Name)) LUT.Add(rule.Name);
rule.SubRules.ForEach(subRule => PrepareLookUpTable(subRule, LUT));
rule.ChildRules.ForEach(subRule => PrepareLookUpTable(subRule, LUT));
foreach (var param in rule.Parameters)
if (!LUT.Contains(param.Key)) LUT.Add(param.Key);
}
@@ -55,15 +55,15 @@ namespace PckStudio.Classes.IO.GRF
byte[] _buffer = sourceStream.ToArray();
int _original_length = _buffer.Length;
if (_compressionType >= GRFFile.eCompressionType.ZlibRle)
if (_compressionType >= GRFFile.CompressionType.CompressedRle)
_buffer = CompressRle(_buffer);
if (_compressionType >= GRFFile.eCompressionType.Zlib)
if (_compressionType >= GRFFile.CompressionType.Compressed)
{
_buffer = CompressZib(_buffer);
WriteInt(destinationStream, _original_length);
WriteInt(destinationStream, _buffer.Length);
}
if (_compressionType >= GRFFile.eCompressionType.ZlibRleCrc)
if (_compressionType >= GRFFile.CompressionType.CompressedRleCrc)
MakeAndWriteCrc(destinationStream, _buffer);
WriteBytes(destinationStream, _buffer);
return;
@@ -100,8 +100,8 @@ namespace PckStudio.Classes.IO.GRF
private void WriteHeader(Stream stream)
{
WriteShort(stream, 1);
if (_compressionType < GRFFile.eCompressionType.None ||
_compressionType > GRFFile.eCompressionType.ZlibRleCrc)
if (_compressionType < GRFFile.CompressionType.None ||
_compressionType > GRFFile.CompressionType.CompressedRleCrc)
throw new ArgumentException(nameof(_compressionType));
stream.WriteByte((byte)_compressionType);
WriteInt(stream, _grfFile.Crc);
@@ -115,7 +115,7 @@ namespace PckStudio.Classes.IO.GRF
{
WriteTagLookUpTable(stream);
SetString(stream, _grfFile.Root.Name);
WriteInt(stream, _grfFile.Root.SubRules.Count);
WriteInt(stream, _grfFile.Root.ChildRules.Count);
WriteGameRuleHierarchy(stream, _grfFile.Root);
}
@@ -127,12 +127,12 @@ namespace PckStudio.Classes.IO.GRF
private void WriteGameRuleHierarchy(Stream stream, GRFFile.GameRule rule)
{
foreach (var subRule in rule.SubRules)
foreach (var subRule in rule.ChildRules)
{
SetString(stream, subRule.Name);
WriteInt(stream, subRule.Parameters.Count);
foreach (var param in subRule.Parameters) WriteParameter(stream, param);
WriteInt(stream, subRule.SubRules.Count);
WriteInt(stream, subRule.ChildRules.Count);
WriteGameRuleHierarchy(stream, subRule);
}
}

View File

@@ -61,7 +61,7 @@ namespace PckStudio.Forms.Editor
private void loadGRFTreeView(TreeNodeCollection root, GRFFile.GameRule parentRule)
{
foreach (var rule in parentRule.SubRules)
foreach (var rule in parentRule.ChildRules)
{
TreeNode node = new TreeNode(rule.Name);
node.Tag = rule;
@@ -171,9 +171,9 @@ namespace PckStudio.Forms.Editor
private bool removeTag(GRFFile.GameRule rule)
{
_ = rule.Parent ?? throw new ArgumentNullException(nameof(rule.Parent));
foreach (var subTag in rule.SubRules.ToList())
foreach (var subTag in rule.ChildRules.ToList())
return removeTag(subTag);
return rule.Parent.SubRules.Remove(rule);
return rule.Parent.ChildRules.Remove(rule);
}
private void GrfTreeView_KeyDown(object sender, KeyEventArgs e)
@@ -193,7 +193,7 @@ namespace PckStudio.Forms.Editor
{
try
{
GRFFileWriter.Write(stream, _file, (GRFFile.eCompressionType)toolStripComboBox1.SelectedIndex/*GRFFile.eCompressionType.ZlibRleCrc*/);
GRFFileWriter.Write(stream, _file, (GRFFile.CompressionType)toolStripComboBox1.SelectedIndex/*GRFFile.eCompressionType.ZlibRleCrc*/);
_pckfile?.SetData(stream.ToArray());
MessageBox.Show("Saved!");
}

View File

@@ -1273,7 +1273,7 @@ namespace PckStudio
);
using (var stream = new MemoryStream())
{
GRFFileWriter.Write(stream, grfFile, GRFFile.eCompressionType.ZlibRleCrc);
GRFFileWriter.Write(stream, grfFile, GRFFile.CompressionType.None);
gameRuleFile.SetData(stream.ToArray());
}
return newPck;