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; } } }