private bool LoadFile(Stream stream) { string magic = stream.ReadAscii(8); uint fileSize = stream.ReadUInt32().SwapEndian(); uint skitInfoCount = stream.ReadUInt32().SwapEndian(); uint skitInfoOffset = stream.ReadUInt32().SwapEndian(); uint conditionForwarderCount = stream.ReadUInt32().SwapEndian(); uint conditionForwarderOffset = stream.ReadUInt32().SwapEndian(); uint conditionCount = stream.ReadUInt32().SwapEndian(); uint conditionOffset = stream.ReadUInt32().SwapEndian(); uint uCount4 = stream.ReadUInt32().SwapEndian(); uint uOffset4 = stream.ReadUInt32().SwapEndian(); uint uCount5 = stream.ReadUInt32().SwapEndian(); uint uOffset5 = stream.ReadUInt32().SwapEndian(); uint refStringStart = stream.ReadUInt32().SwapEndian(); SkitInfoList = new List <SkitInfo>((int)skitInfoCount); stream.Position = skitInfoOffset; for (uint i = 0; i < skitInfoCount; ++i) { SkitInfo s = new SkitInfo(stream, refStringStart); SkitInfoList.Add(s); } SkitConditionForwarderList = new List <SkitConditionForwarder>((int)conditionForwarderCount); stream.Position = conditionForwarderOffset; for (uint i = 0; i < conditionForwarderCount; ++i) { var s = new SkitConditionForwarder(stream); SkitConditionForwarderList.Add(s); } SkitConditionList = new List <SkitCondition>((int)conditionCount); stream.Position = conditionOffset; for (uint i = 0; i < conditionCount; ++i) { var s = new SkitCondition(stream); SkitConditionList.Add(s); } UnknownSkitData4List = new List <UnknownSkitData4>((int)uCount4); stream.Position = uOffset4; for (uint i = 0; i < uCount4; ++i) { var s = new UnknownSkitData4(stream); UnknownSkitData4List.Add(s); } UnknownSkitData5List = new List <UnknownSkitData5>((int)uCount5); stream.Position = uOffset5; for (uint i = 0; i < uCount5; ++i) { var s = new UnknownSkitData5(stream); UnknownSkitData5List.Add(s); } return(true); }
private bool LoadFile( Stream stream ) { string magic = stream.ReadAscii( 8 ); uint fileSize = stream.ReadUInt32().SwapEndian(); uint skitInfoCount = stream.ReadUInt32().SwapEndian(); uint skitInfoOffset = stream.ReadUInt32().SwapEndian(); uint conditionForwarderCount = stream.ReadUInt32().SwapEndian(); uint conditionForwarderOffset = stream.ReadUInt32().SwapEndian(); uint conditionCount = stream.ReadUInt32().SwapEndian(); uint conditionOffset = stream.ReadUInt32().SwapEndian(); uint uCount4 = stream.ReadUInt32().SwapEndian(); uint uOffset4 = stream.ReadUInt32().SwapEndian(); uint uCount5 = stream.ReadUInt32().SwapEndian(); uint uOffset5 = stream.ReadUInt32().SwapEndian(); uint refStringStart = stream.ReadUInt32().SwapEndian(); SkitInfoList = new List<SkitInfo>( (int)skitInfoCount ); stream.Position = skitInfoOffset; for ( uint i = 0; i < skitInfoCount; ++i ) { SkitInfo s = new SkitInfo( stream, refStringStart ); SkitInfoList.Add( s ); } SkitConditionForwarderList = new List<SkitConditionForwarder>( (int)conditionForwarderCount ); stream.Position = conditionForwarderOffset; for ( uint i = 0; i < conditionForwarderCount; ++i ) { var s = new SkitConditionForwarder( stream ); SkitConditionForwarderList.Add( s ); } SkitConditionList = new List<SkitCondition>( (int)conditionCount ); stream.Position = conditionOffset; for ( uint i = 0; i < conditionCount; ++i ) { var s = new SkitCondition( stream ); SkitConditionList.Add( s ); } UnknownSkitData4List = new List<UnknownSkitData4>( (int)uCount4 ); stream.Position = uOffset4; for ( uint i = 0; i < uCount4; ++i ) { var s = new UnknownSkitData4( stream ); UnknownSkitData4List.Add( s ); } UnknownSkitData5List = new List<UnknownSkitData5>( (int)uCount5 ); stream.Position = uOffset5; for ( uint i = 0; i < uCount5; ++i ) { var s = new UnknownSkitData5( stream ); UnknownSkitData5List.Add( s ); } return true; }
private bool LoadFile(Stream stream, EndianUtils.Endianness endian, BitUtils.Bitness bits) { string magic = stream.ReadAscii(8); if (magic != "TO8CHLI\0") { throw new Exception("Invalid magic."); } uint fileSize = stream.ReadUInt32().FromEndian(endian); uint skitInfoCount = stream.ReadUInt32().FromEndian(endian); uint skitInfoOffset = stream.ReadUInt32().FromEndian(endian); uint conditionForwarderCount = stream.ReadUInt32().FromEndian(endian); uint conditionForwarderOffset = stream.ReadUInt32().FromEndian(endian); uint conditionCount = stream.ReadUInt32().FromEndian(endian); uint conditionOffset = stream.ReadUInt32().FromEndian(endian); uint uCount4 = stream.ReadUInt32().FromEndian(endian); uint uOffset4 = stream.ReadUInt32().FromEndian(endian); uint uCount5 = stream.ReadUInt32().FromEndian(endian); uint uOffset5 = stream.ReadUInt32().FromEndian(endian); uint refStringStart = stream.ReadUInt32().FromEndian(endian); SkitInfoList = new List <SkitInfo>((int)skitInfoCount); stream.Position = skitInfoOffset; for (uint i = 0; i < skitInfoCount; ++i) { SkitInfo s = new SkitInfo(stream, refStringStart, endian, bits); SkitInfoList.Add(s); } SkitConditionForwarderList = new List <SkitConditionForwarder>((int)conditionForwarderCount); stream.Position = conditionForwarderOffset; for (uint i = 0; i < conditionForwarderCount; ++i) { var s = new SkitConditionForwarder(stream, endian, bits); SkitConditionForwarderList.Add(s); } SkitConditionList = new List <SkitCondition>((int)conditionCount); stream.Position = conditionOffset; for (uint i = 0; i < conditionCount; ++i) { var s = new SkitCondition(stream, endian); SkitConditionList.Add(s); } UnknownSkitData4List = new List <UnknownSkitData4>((int)uCount4); stream.Position = uOffset4; for (uint i = 0; i < uCount4; ++i) { var s = new UnknownSkitData4(stream, endian, bits); UnknownSkitData4List.Add(s); } UnknownSkitData5List = new List <UnknownSkitData5>((int)uCount5); stream.Position = uOffset5; for (uint i = 0; i < uCount5; ++i) { var s = new UnknownSkitData5(stream, endian, bits); UnknownSkitData5List.Add(s); } return(true); }