mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-20 00:41:20 +00:00
51 lines
1.6 KiB
C#
Executable file
51 lines
1.6 KiB
C#
Executable file
using System.IO;
|
|
|
|
namespace FSO.Files.Formats.IFF
|
|
{
|
|
/// <summary>
|
|
/// An IFF is made up of chunks.
|
|
/// </summary>
|
|
public abstract class IffChunk
|
|
{
|
|
public ushort ChunkID;
|
|
public ushort ChunkFlags;
|
|
public string ChunkType; //just making it easier to access
|
|
public string ChunkLabel;
|
|
public bool ChunkProcessed;
|
|
public byte[] OriginalData; //IDE ONLY: always contains base data for any chunk.
|
|
public ushort OriginalID;
|
|
public bool AddedByPatch;
|
|
public string OriginalLabel;
|
|
public byte[] ChunkData;
|
|
public IffFile ChunkParent;
|
|
|
|
public ChunkRuntimeState RuntimeInfo = ChunkRuntimeState.Normal;
|
|
|
|
/// <summary>
|
|
/// Reads this chunk from an IFF.
|
|
/// </summary>
|
|
/// <param name="iff">The IFF to read from.</param>
|
|
/// <param name="stream">The stream to read from.</param>
|
|
public abstract void Read(IffFile iff, Stream stream);
|
|
|
|
/// <summary>
|
|
/// The name of this chunk.
|
|
/// </summary>
|
|
/// <returns>The name of this chunk as a string.</returns>
|
|
public override string ToString()
|
|
{
|
|
return "#" + ChunkID.ToString() + " " + ChunkLabel;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Attempts to write this chunk to a stream (presumably an IFF or PIFF)
|
|
/// </summary>
|
|
/// <param name="iff"></param>
|
|
/// <param name="stream"></param>
|
|
/// <returns>True if data has been written, false if not. </returns>
|
|
public virtual bool Write(IffFile iff, Stream stream) { return false; }
|
|
|
|
public virtual void Dispose() { }
|
|
|
|
}
|
|
}
|