mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-19 08:21:22 +00:00
57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
|
using FSO.Files.Utils;
|
|||
|
using System.IO;
|
|||
|
|
|||
|
namespace FSO.Files.Formats.IFF.Chunks
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Duplicate of STR chunk, instead used for simulator constants.
|
|||
|
/// </summary>
|
|||
|
public class FCNS : STR
|
|||
|
{
|
|||
|
//no difference!
|
|||
|
|
|||
|
public override void Read(IffFile iff, Stream stream)
|
|||
|
{
|
|||
|
using (var io = IoBuffer.FromStream(stream, ByteOrder.LITTLE_ENDIAN))
|
|||
|
{
|
|||
|
var zero = io.ReadInt32();
|
|||
|
var version = io.ReadInt32(); //2 in tso
|
|||
|
string magic = io.ReadCString(4); //NSCF
|
|||
|
var count = io.ReadInt32();
|
|||
|
|
|||
|
LanguageSets[0].Strings = new STRItem[count];
|
|||
|
for (int i=0; i<count; i++)
|
|||
|
{
|
|||
|
string name, desc;
|
|||
|
float value;
|
|||
|
if (version == 2)
|
|||
|
{
|
|||
|
name = io.ReadVariableLengthPascalString();
|
|||
|
value = io.ReadFloat();
|
|||
|
desc = io.ReadVariableLengthPascalString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
name = io.ReadNullTerminatedString();
|
|||
|
if (name.Length % 2 == 0) io.ReadByte(); //padding to 2 byte align
|
|||
|
value = io.ReadFloat();
|
|||
|
desc = io.ReadNullTerminatedString();
|
|||
|
if (desc.Length % 2 == 0) io.ReadByte(); //padding to 2 byte align
|
|||
|
}
|
|||
|
|
|||
|
LanguageSets[0].Strings[i] = new STRItem()
|
|||
|
{
|
|||
|
Value = name + ": " + value,
|
|||
|
Comment = desc
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override bool Write(IffFile iff, Stream stream)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|