public Stream ToStream() { MemoryStream mem = null; if (null != Packet) { if (0 <= Packet.Length) { mem = new MemoryStream(Packet); mem.Position = 0; return(mem); } /* Packet has data. */ } /* Packet is not null. */ using (var writer = new BinaryWriter(mem)) { writer.Write(SourcePort); writer.Write(DestinationPort); writer.Write(SequenceNumber); writer.Write(AcknowledgmentNumber); byte b = DataOffset.AddLowNibble(Reserved); writer.Write(b); writer.Write(Flags.ToByte()); writer.Write(Window); writer.Write(Checksum); writer.Write(UrgentPointer); writer.Write(OptionsAndPadding); writer.Write(Data); } return(mem); }
public override int GetHashCode() { return(RequestLength.GetHashCode() ^ DataOffset.GetHashCode() ^ PieceIndex.GetHashCode() ^ StartOffset.GetHashCode()); }
public override string ToString() { if (ReferenceKey != 0) { return(EntryNameHash.ToString() + ": " + Type.ToString() + ": " + DataOffset.ToString() + ": " + ((MetaName)ReferenceKey).ToString()); } return(EntryNameHash.ToString() + ": " + Type.ToString() + ": " + DataOffset.ToString()); }
public override string ToString() { return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(CollisionDataOffset)}={CollisionDataOffset.ToString("X")}, {nameof(EntryOffset)}={EntryOffset.ToString("X")}, {nameof(Count)}={Count.ToString("X")}, {nameof(DataOffset)}={DataOffset.ToString("X")}, {nameof(CollisionDataEntry)}={CollisionDataEntry}}}"); }
public override string ToString() { return(DataOffset.ToString() + ": " + DataType.ToString() + ": " + ReferenceKey.ToString() + ": " + EntryNameHash.ToString()); }
public override string ToString() { return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(HaveNBoneIndex0)}={HaveNBoneIndex0.ToString("X")}, {nameof(HaveNBoneIndex1)}={HaveNBoneIndex1.ToString("X")}, {nameof(ThrowNBoneIndex)}={ThrowNBoneIndex.ToString("X")}, {nameof(DataCount)}={DataCount.ToString("X")}, {nameof(DataOffset)}={DataOffset.ToString("X")}, {nameof(Pad)}={Pad.ToString("X")}, {nameof(EntriesCount)}={EntriesCount.ToString()}, {nameof(Entries)}={string.Join(",", Entries.Select(x => x.ToString()).ToList())}}}"); }
public override string ToString() { return(string.Format("{0} : {1} : {2} : {3}", OffsetInFstFile.ToString("X8"), DataOffset.ToString("X8"), Length.ToString("X8"), Name)); }
public override string ToString() { return($"{{{nameof(Offset)}={Offset.ToString()}, {nameof(ActionInterruptsOffset)}={ActionInterruptsOffset.ToString()}, {nameof(DataOffset)}={DataOffset.ToString()}, {nameof(DataCount)}={DataCount.ToString()}, {nameof(ActionInterruptEntries)}={string.Join(",", ActionInterruptEntries.Select(x => x.ToString()).ToList())}}}"); }
public override string ToString() { return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(HandNBoneIndex0)}={HandNBoneIndex0.ToString("X")}, {nameof(HandNBoneIndex1)}={HandNBoneIndex1.ToString("X")}, {nameof(HandNBoneIndex2)}={HandNBoneIndex2.ToString("X")}, {nameof(HandNBoneIndex3)}={HandNBoneIndex3.ToString("X")}, {nameof(DataCount)}={DataCount.ToString("X")}, {nameof(DataOffset)}={DataOffset.ToString("X")}, {nameof(BonesListDataOffset)}={BonesListDataOffset.ToString("X")}, {nameof(Bones)}={string.Join(",", Bones.Select(x => x.ToString("X")).ToList())}}}"); }
public override string ToString() { return($"Model Visbility Section:\n\tOffset: {Offset.ToString("X")}\n\tName: {Name}\n\tData Offset: {DataOffset.ToString("X")}\n\tNumber Of BoneSwitches: {BoneSwitches.Count}"); }
public override string ToString() { return($"Bone Switch:\n\tOffset: {Offset.ToString("X")}\n\tData Offset: {DataOffset.ToString("X")}\n\tCount: {Count.ToString("X")}, Number Of Bone Groups: {BoneGroups.Count}"); }
public override string ToString() { return($"Model Visibility:\n\tOffset: {Offset.ToString("X")}\n\tEntry Offset: {EntryOffset.ToString("X")}\n\tBone Switch Count: {BoneSwitchCount.ToString("X")}\n\t" + $"Data Offset: {DataOffset.ToString("X")}\n\tData Count: {DataCount.ToString("X")}\n\tNumber Of Sections: {Sections.Count}"); }
public override string ToString() { return($"Bone Group:\n\tOffset: {Offset.ToString("X")}\n\tData Offset: {DataOffset.ToString("X")}\n\tCount: {Count.ToString("X")}"); }
public override string ToString() { return($"{{{nameof(Offset)}={Offset.ToString("X")}, {nameof(DataOffset)}={DataOffset.ToString("X")}, {nameof(DataCount)}={DataCount.ToString("X")}, {nameof(ItemsListOffset)}={ItemsListOffset.ToString("X")}, {nameof(Items)}={string.Join(",", Items.Select(x => x.ToString("X")).ToList())}}}"); }
static void CreateSplitIni(string filename) { if (addresslist.Count == 0) { return; } if (File.Exists(filename)) { filename = Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename) + "_new.ini"); } Console.WriteLine("Creating split INI file: {0}", filename); StreamWriter sw = File.CreateText(filename); sw.WriteLine("key=" + ImageBase.ToString("X")); if (Path.GetExtension(filename).ToLowerInvariant() == ".prs") { sw.WriteLine("compressed=true"); } if (BigEndian) { sw.WriteLine("bigendian=true"); } if (ReverseColors) { sw.WriteLine("reverse=true"); } if (DataOffset != 0) { sw.WriteLine("offset=" + DataOffset.ToString("X8")); } foreach (var entry in addresslist) { //Console.WriteLine("Adding object {0}", v.ObjectName); switch (entry.Value) { case "NJS_CNK_OBJECT": case "cnkobj": sw.WriteLine("[" + entry.Key.ToString("X8") + "]"); sw.WriteLine("type=chunkmodel"); sw.WriteLine("address=" + entry.Key.ToString("X8")); if (!SingleOutputFolder) { sw.WriteLine("filename=chunkmodels/" + entry.Key.ToString("X8") + ".sa2mdl"); } else { sw.WriteLine("filename=" + entry.Key.ToString("X8") + ".sa2mdl"); } sw.WriteLine(); break; case "NJS_GC_OBJECT": case "gcobj": sw.WriteLine("[" + entry.Key.ToString("X8") + "]"); sw.WriteLine("type=gcmodel"); sw.WriteLine("address=" + entry.Key.ToString("X8")); if (!SingleOutputFolder) { sw.WriteLine("filename=gcmodels/" + entry.Key.ToString("X8") + ".sa2bmdl"); } else { sw.WriteLine("filename=" + entry.Key.ToString("X8") + ".sa2bmdl"); } sw.WriteLine(); break; case "NJS_OBJECT": case "NJS_OBJECT_OLD": case "obj": sw.WriteLine("[" + entry.Key.ToString("X8") + "]"); sw.WriteLine(entry.Value == "NJS_OBJECT_OLD" ? "type=basicmodel" : "type=basicdxmodel"); sw.WriteLine("address=" + entry.Key.ToString("X8")); if (!SingleOutputFolder) { sw.WriteLine("filename=basicmodels/" + entry.Key.ToString("X8") + ".sa1mdl"); } else { sw.WriteLine("filename=" + entry.Key.ToString("X8") + ".sa1mdl"); } bool first = true; foreach (var item in actionlist) { if (item.Value[0] == entry.Key) { if (first) { sw.Write("animations="); first = false; } else { sw.Write(","); } if (!SingleOutputFolder) { sw.Write("../actions/" + item.Key.ToString("X8") + ".saanim"); } else { sw.Write(item.Key.ToString("X8") + ".saanim"); } } } if (!first) { sw.WriteLine(); } sw.WriteLine(); break; case "landtable_SADX": case "landtable_SA1": case "landtable_SA2": case "landtable_SA2B": case "LandTable": case "_OBJ_LANDTABLE": sw.WriteLine("[" + entry.Key.ToString("X8") + "]"); sw.WriteLine("type=landtable"); sw.WriteLine("address=" + entry.Key.ToString("X8")); if (!SingleOutputFolder) { sw.WriteLine("filename=levels/" + entry.Key.ToString("X8") + ".sa1lvl"); } else { sw.WriteLine("filename=" + entry.Key.ToString("X8") + ".sa1lvl"); } switch (entry.Value) { case "landtable_SA1": sw.WriteLine("format=SA1"); break; case "landtable_SADX": sw.WriteLine("format=SADX"); break; case "landtable_SA2": sw.WriteLine("format=SA2"); break; case "landtable_SA2B": sw.WriteLine("format=SA2B"); break; default: break; } sw.WriteLine(); break; case "NJS_MOTION": sw.WriteLine("[" + entry.Key.ToString("X8") + "]"); sw.WriteLine("type=animation"); sw.WriteLine("address=" + entry.Key.ToString("X8")); sw.WriteLine("numparts=" + actionlist[entry.Key][1].ToString()); if (!SingleOutputFolder) { sw.WriteLine("filename=actions/" + entry.Key.ToString("X8") + ".saanim"); } else { sw.WriteLine("filename=" + entry.Key.ToString("X8") + ".saanim"); } sw.WriteLine(); break; } } sw.Flush(); sw.Close(); }
internal override void WriteToStream(Stream pOut, XmlElement ParentXml) { // 记下当前位置 long tPos = pOut.Position; // 是否是外部流 if (m_Stream == null) { // 外部流 Stream tBaseStream = m_Package.BaseStream; // 寻址 tBaseStream.Seek(FCYResPackage.HeaderSize + m_MainDataOffset, SeekOrigin.Begin); // 直接复制 FCYResPackageHelper.FillStream(tBaseStream, pOut, (int)(IsCompressed ? DataCompressedSize : DataRealSize)); } else { // 内部流 if (IsCompressed) { long tPosStart = pOut.Position; // 压缩流 m_Stream.Seek(0, SeekOrigin.Begin); FCYResPackageHelper.DeflateEncodeTo(m_Stream, pOut, (int)DataRealSize); long tPosEnd = pOut.Position; // 关闭内部流 m_Stream.Close(); m_Stream = null; // 更新数据 m_DataCompressedSize = (uint)(tPosEnd - tPosStart); } else { // 直接复制 m_Stream.Seek(0, SeekOrigin.Begin); FCYResPackageHelper.FillStream(m_Stream, pOut, (int)DataRealSize); } } // 更新位置 m_MainDataOffset = (uint)tPos - FCYResPackage.HeaderSize; // 准备Xml数据 XmlElement tElement = ParentXml.OwnerDocument.CreateElement("Node"); tElement.SetAttribute("Name", Name); tElement.SetAttribute("OrgSize", DataRealSize.ToString()); tElement.SetAttribute("IsCompressed", IsCompressed ? "yes" : "no"); tElement.SetAttribute("CompressedSize", DataCompressedSize.ToString()); tElement.SetAttribute("Offset", DataOffset.ToString()); tElement.InnerText = AdditionData; // 写出Xml数据 ParentXml.AppendChild(tElement); }