public SPR(IFFChunk BaseChunk) : base(BaseChunk) { FileReader Reader = new FileReader(new MemoryStream(m_Data), false); Version1 = Reader.ReadUShort(); Version2 = Reader.ReadUShort(); if(Version1 == 0) { Version = Version2; Reader = new FileReader(new MemoryStream(Reader.ReadToEnd()), true); } else Version = Version1; uint SpriteCount = Reader.ReadUInt32(); m_PaletteID = Reader.ReadUInt32(); if (Version >= 502 && Version <= 505) { //TODO: Should this be stored? for (int i = 0; i < SpriteCount; i++) m_OffsetTable.Add(Reader.ReadUInt32()); } else m_OffsetTable.Add((uint)Reader.Position); Reader.Close(); //m_Data = null; //DON'T DO THIS! }
public FBMP(IFFChunk BaseChunk) : base(BaseChunk) { FileReader Reader = new FileReader(new MemoryStream(m_Data), true); BitmapStream = new MemoryStream(Reader.ReadToEnd()); Reader.Close(); }
public GLOB(IFFChunk BaseChunk) : base(BaseChunk) { FileReader Reader = new FileReader(new MemoryStream(m_Data), false); ASCIIEncoding Enc = new ASCIIEncoding(); byte[] Data = Reader.ReadToEnd(); SemiGlobalIFF = Enc.GetString(Data); Reader.Close(); m_Data = null; }
public TRK(Stream Data) { m_Reader = new FileReader(Data, false); string DataStr = ""; string[] Elements; ASCIIEncoding Enc = new ASCIIEncoding(); string MagicNumber = Enc.GetString(m_Reader.ReadBytes(4)); if (!MagicNumber.Equals("2DKT", StringComparison.InvariantCultureIgnoreCase) && !MagicNumber.Equals("TKDT", StringComparison.InvariantCultureIgnoreCase)) throw new HitException("Invalid TrackData header - TRK.cs"); if (MagicNumber.Equals("2DKT", StringComparison.InvariantCultureIgnoreCase)) { DataStr = Enc.GetString(m_Reader.ReadBytes((int)m_Reader.ReadUInt32())); Elements = DataStr.Split(','); } else Elements = Enc.GetString(m_Reader.ReadToEnd()).Split(','); m_Version = int.Parse(Elements[1], NumberStyles.Integer); TrackName = Elements[2]; if (!Elements[3].Equals("", StringComparison.InvariantCultureIgnoreCase)) SoundID = uint.Parse(Elements[3].Replace("0x", ""), NumberStyles.HexNumber); else SoundID = 0; if (Elements[5].Equals("\r\n", StringComparison.InvariantCultureIgnoreCase)) return; if (!Elements[5].Equals("", StringComparison.InvariantCultureIgnoreCase)) Argument = (HITTrackArguments)Enum.Parse(typeof(HITTrackArguments), Elements[5]); if (!Elements[7].Equals("", StringComparison.InvariantCultureIgnoreCase)) ControlGroup = (HITControlGroup)Enum.Parse(typeof(HITControlGroup), Elements[7]); if (!Elements[(m_Version != 2) ? 11 : 12].Equals("", StringComparison.InvariantCultureIgnoreCase)) DuckingPriority = int.Parse(Elements[(m_Version != 2) ? 11 : 12], NumberStyles.Integer); if (!Elements[(m_Version != 2) ? 12 : 13].Equals("", StringComparison.InvariantCultureIgnoreCase)) Looped = (int.Parse(Elements[(m_Version != 2) ? 12 : 13], NumberStyles.Integer) != 0) ? true : false; if (!Elements[(m_Version != 2) ? 13 : 14].Equals("", StringComparison.InvariantCultureIgnoreCase)) Volume = int.Parse(Elements[(m_Version != 2) ? 13 : 14], NumberStyles.Integer); m_Reader.Close(); }
public EVT(Stream Data) { m_Reader = new FileReader(Data, false); ASCIIEncoding Enc = new ASCIIEncoding(); string[] TrackEvents = Enc.GetString(m_Reader.ReadToEnd()).Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach(string TrckEvent in TrackEvents) { string[] Elements = TrckEvent.Split(','); TrackEvent Event = new TrackEvent(); Event.Name = Elements[0]; Event.Event = Elements[1]; Event.TrackID = (Elements[2].Equals("", StringComparison.InvariantCultureIgnoreCase)) ? 0 : uint.Parse(Elements[2].Replace("0x", ""), NumberStyles.HexNumber); Events.Add(Event); } m_Reader.Close(); }