static void Output(System.IO.StreamWriter s, TI.Block<field_block<TI.LongInteger>> block) { const string format = "\t{0}\t\t{1}"; s.WriteLine("{0}\tcache_file_resource_gestalt_1D0_block", block.Count); int x = 0; foreach (field_block<TI.LongInteger> def in block) { s.WriteLine(format, (x++).ToString(), def.Value.Value.ToString("X8")); } }
public static void Output(System.IO.StreamWriter s, TI.Block<cache_file_resource_gestalt_64_block> block, string name) { if (block.Count == 0) return; const string format = "\t{0}\t\t{1}" + Program.NewLine + // Unknown044 "\t\t\t{2}\t{3}\t{4}\t{5}\t{6}" // Unknown030-Unknown040 ; s.WriteLine("{0}\tcache_file_resource_gestalt_64_block\t({1})", block.Count, name); int x = 0; foreach (cache_file_resource_gestalt_64_block def in block) { s.WriteLine(format, (x++).ToString(), def.Unknown044.ToString(), def.Unknown030.Value.ToString("X8"), def.Unknown034.Value.ToString("X8"), def.Unknown038.Value.ToString("X8"), def.Unknown03C.Value.ToString("X8"), def.Unknown040.Value.ToString("X8")); s.WriteLine(); } }
public void Render(TI.Block<global_geometry_material_block> materials, TI.Block<structure_bsp_instanced_geometry_definition_block> instanced_geometries_definitions ) { int index = InstanceDefinition.Value; Debug.Assert.If(index != -1); instanced_geometries_definitions[index].Render(materials); }
public static void Output(System.IO.StreamWriter s, TI.Block<cache_file_resource_gestalt_1F4_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}\t{4}" ; s.WriteLine("{0}\tcache_file_resource_gestalt_1F4_block", block.Count); int x = 0; foreach (cache_file_resource_gestalt_1F4_block def in block) { s.WriteLine(format, (x++).ToString(), def.Unknown00.Value.ToString("X4"), def.Unknown02.Value.ToString("X4"), def.Unknown04.Value.ToString("X4"), def.Unknown06.Value.ToString("X4") ); } }
public static void Output(System.IO.StreamWriter s, TI.Block<cache_file_resource_gestalt_100_block> block) { const string format = "\t{0}\t\t{1}" + Program.NewLine + // Name "\t\t\t{2}\t{3}" + Program.NewLine + "\t\t\t{4}\t{5}" + Program.NewLine + "\t\t\t{6}\t{7}" + Program.NewLine + "\t\t\t{8}\t\t{9}" ; s.WriteLine("{0}\tcache_file_resource_gestalt_100_block", block.Count); int x = 0; foreach (cache_file_resource_gestalt_100_block def in block) { s.WriteLine(format, (x++).ToString(), def.Name.ToString(), def.Unknown04.Value.ToString("X8"), def.Unknown08.Value.ToString("X8"), def.Unknown0C.Value.ToString("X8"), def.Unknown10.Value.ToString("X8"), def.Unknown14.Value.ToString("X8"), def.Unknown18.Value.ToString("X8"), def.Unknown1C.Value.ToString("X8"), def.PrevZoneSet.Value.ToString()); s.WriteLine(); } }
public static void Output(StreamWriter s, TI.Block<resource_definition_fixup_block> block) { const string format = "\t\t\t{0}\t\t{1}\t{2}"; s.WriteLine("\t\t{0}\tresource_definition_fixup_block", block.Count); int x = 0; foreach (resource_definition_fixup_block def in block) { s.WriteLine(format, (x++).ToString(), def.Offset.Value.ToString("X8"), def.StructureTypeIndex.Value.ToString()); } }
public static void Output(StreamWriter s, TI.Block<resource_type_block> block) { const string format = "\t{0}\t\t{1}" + Program.NewLine + // Name "\t\t\t{2}\t{3}\t{4}\t{5}" + Program.NewLine + // 010,012,014,016 "\t\t\t{6}" // Guid ; s.WriteLine("{0}\tresource_type_block", block.Count); int x = 0; foreach (resource_type_block def in block) { s.WriteLine(format, (x++).ToString(), def.Name.ToString(), def.Unknown010.Value.ToString("X4"), def.Unknown012.Value.ToString("X4"), def.Unknown014.Value.ToString("X4"), def.Unknown016.Value.ToString("X4"), Util.ByteArrayToString(def.Guid.Data)); } }
public static void Output(StreamWriter s, TI.Block<cache_file_resource_layout_table_24_block> block) { s.WriteLine("{0}\tcache_file_resource_layout_table_24_block", block.Count); int x = 0; foreach (cache_file_resource_layout_table_24_block def in block) { s.WriteLine("\t{0}\t\t{1}", (x++).ToString(), def.Size.Value.ToString("X8")); block_4.Output(s, def.Unknown04); s.WriteLine(); } }
public static void OutputResources(string dir, CacheFileGen3 cf, TI.Block<pages_block> block) { uint offset; int size; uint base_offset = (uint)(cf.Header as CacheHeaderGen3).Interop[CacheSectionType.Resource].CacheOffset; string path = string.Format(@"{0}\\{1}_resources\\", dir, cf.Header.Name); if (!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); int x = -1; foreach (pages_block def in block) { x++; if (def.SharedCache.Value != -1) continue; size = def.BlockSizeUncompressed.Value; if (size <= 0) continue; offset = base_offset + (uint)def.BlockOffset.Value; cf.InputStream.Seek(offset); byte[] data; if (def.CompressionCodec.Value != -1) { using (var deflate = new System.IO.Compression.DeflateStream(cf.InputStream.BaseStream, System.IO.Compression.CompressionMode.Decompress, true)) { data = new byte[size]; deflate.Read(data, 0, data.Length); } } else data = cf.InputStream.ReadBytes(size); using(var fs = new FileStream(string.Format("{0}\\{1:X8}.bin", path, x), System.IO.FileMode.Create, System.IO.FileAccess.Write)) { fs.Write(data, 0, data.Length); } } }
public static void Output(CacheFileBase c, System.IO.StreamWriter s, sound_cache_file_gestalt_group owner, TI.Block<sound_gestalt_pitch_ranges_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}"; s.WriteLine("{0}\tsound_gestalt_pitch_ranges_block", block.Count); int x = 0; foreach (sound_gestalt_pitch_ranges_block def in block) { int name_index = def.Name.Value; Blam.StringId name = name_index >= 0 ? owner.ImportNames[name_index].ImportName.Handle : Blam.StringId.Null; s.WriteLine(format, (x++).ToString(), def.Parameters.Value.ToString(), def.Unknown04.Value.ToString(), def.EncodedPermutationData.Value.ToString("X4"), def.FirstPermutation.Value.ToString(), def.GetPermutationCount().ToString(), c.StringIds.GetStringIdValue(name)); } }
public static void Output(System.IO.StreamWriter s, TI.Block<sound_permutation_chunk_block> block) { const string format = "\t{0}\t\t{1}\t{2}" + "\t{3}\t{4}\t{5}"; s.WriteLine("{0}\tsound_permutation_chunk_block", block.Count); int x = 0; foreach (sound_permutation_chunk_block def in block) { s.WriteLine(format, (x++).ToString(), def.FileOffset.Value.ToString("X8"), def.GetSize().ToString("X7"), def.GetFlags().ToString("X2"), def.Unknown0C.Value.ToString("X4"), def.Unknown10.Value.ToString("X8")); } }
/// <summary> /// Update this segment with the size the page calculated it to be /// </summary> /// <param name="pages"></param> internal void UpdateSegmentData(TI.Block<pages_block> pages) { if(RequiredPageIndex.Value > 0) requiredSize = pages[RequiredPageIndex.Value].GetSegmentSize(RequiredSegmentOffset.Value); if(OptionalSegmentOffset.Value > 0) optionalSize = pages[OptionalSegmentOffset.Value].GetSegmentSize(OptionalSegmentOffset.Value); }
/// <summary> /// Update the page with this segment's offsets /// </summary> /// <param name="pages"></param> internal void UpdatePageData(TI.Block<pages_block> pages) { if(RequiredPageIndex.Value > 0) pages[RequiredPageIndex.Value].AddSegment(RequiredSegmentOffset.Value); if(OptionalSegmentOffset.Value > 0) pages[OptionalSegmentOffset.Value].AddSegment(OptionalSegmentOffset.Value); }
public void ShouldNotIncludeSystemDrawing() { StringBuilder output = new StringBuilder(); int result = Driver.RunCommand("/Library/Frameworks/Mono.framework/Versions/Current/Commands/monop", new [] { "--refs", $"-r:{TI.FindRootDirectory ()}/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5/System.ServiceModel.dll" }, output); Assert.That(result, Is.EqualTo(0)); Assert.That(output.ToString(), !Contains.Substring("System.Drawing")); }
public void Render(TI.Block<global_geometry_material_block> materials) { if (RenderData.Count != 1) return; RenderData[0].Render(SectionInfo.Value, materials); }
public void ShouldIncludeSystemServiceModel() { StringBuilder output = new StringBuilder(); int result = Driver.RunCommand("/Library/Frameworks/Mono.framework/Versions/Current/Commands/monop", new [] { "--refs", $"-r:{TI.FindRootDirectory ()}/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5/System.ServiceModel.dll" }, output); Assert.That(result, Is.EqualTo(0)); Assert.That(output.ToString(), Contains.Substring("System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")); }
public static void Output(CacheFileBase c, System.IO.StreamWriter s, sound_cache_file_gestalt_group owner, TI.Block<sound_gestalt_permutations_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}\t{4}\t{5}"; s.WriteLine("{0}\tsound_gestalt_permutations_block", block.Count); int x = 0; foreach (sound_gestalt_permutations_block def in block) { int name_index = def.Name.Value; Blam.StringId name = name_index >= 0 ? owner.ImportNames[name_index].ImportName.Handle : Blam.StringId.Null; s.WriteLine(format, (x++).ToString(), def.PermutationInfoIndex.ToString(), def.FirstChunk.Value.ToString(), def.ChunkCount.Value.ToString(), def.GetPermutationIndex().ToString(), c.StringIds.GetStringIdValue(name)); } }
public static void Output(StreamWriter s, TI.Block<block_4> block) { const string format = "\t\t\t{0}\t\t{1}\t{2}\t{3}\t{4}"; s.WriteLine("\t\t{0}\tblock_4", block.Count); int x = 0; foreach (block_4 def in block) { s.WriteLine(format, (x++).ToString(), def.Unknown00.Value.ToString("X8"), def.Unknown04.Value.ToString("X8"), def.Unknown08.Value.ToString("X8"), def.Unknown0C.Value.ToString("X8")); } }
static void Output(System.IO.StreamWriter s, TI.Block<field_block<TI.ShortInteger>> block) { const string format = "\t\t\t{0}\t\t{1}"; s.WriteLine("\t\t{0}\tblock_4", block.Count); int x = 0; foreach (field_block<TI.ShortInteger> def in block) { s.WriteLine(format, (x++).ToString(), def.Value.Value.ToString("X4")); } }
public static void Output(StreamWriter s, TI.Block<page_segment_block> block) { s.WriteLine("{0}\tpage_segment_block", block.Count); int x = 0; foreach (page_segment_block def in block) { s.WriteLine("\t{0}\t\t{1}\t{2}\t{3}\t{4}\t{5}", (x++).ToString(), (def.RequiredPageIndex.Value & 0xFFFF).ToString("X4"), (def.OptionalPageIndex.Value & 0xFFFF).ToString("X4"), def.RequiredSegmentOffset.Value.ToString("X8"), def.OptionalSegmentOffset.Value.ToString("X8"), DatumIndex.ToIndex(def.DatumIndexBlock24.Value).ToString("X4")); } s.WriteLine(); }
public static void Output(System.IO.StreamWriter s, TI.Block<block_10> block) { const string format = "\t\t\t{0}\t\t{1}\t{2}"; s.WriteLine("\t\t{0}\tblock_10", block.Count); int x = 0; foreach (block_10 def in block) { s.WriteLine(format, (x++).ToString(), def.Start.Value.ToString("X4"), def.Length.Value.ToString("X4")); } }
public static void Output(StreamWriter s, TI.Block<resource_structure_type_block> block) { const string format = "\t{0}\t\t{1}" + Program.NewLine + // Name "\t\t\t{2}" // Guid ; s.WriteLine("{0}\tresource_structure_type_block", block.Count); int x = 0; foreach (resource_structure_type_block def in block) { s.WriteLine(format, (x++).ToString(), def.Name.ToString(), Util.ByteArrayToString(def.Guid.Data)); } }
public static void Output(System.IO.StreamWriter s, TI.Block<sound_gestalt_60_block> block) { const string format = "\t{0}\t\t{1}"; s.WriteLine("{0}\tsound_gestalt_60_block", block.Count); int x = 0; foreach (sound_gestalt_60_block def in block) { s.WriteLine(format, (x++).ToString(), def.Unknown00.Value.ToString("X8")); Output(s, def.Unknown04); block_10.Output(s, def.Unknown10); } }
public static void Output(StreamWriter s, TI.Block<cache_file_resource_gestalt_tag_resource_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}\t{4}.{5}" + Program.NewLine + // Header,Type,Flags,Reference,ReferenceTagGroup "\t\t\t{6:X8}\t{7:X8}\t{8:X8}" + Program.NewLine + // Offset, Size, ?Offset "\t\t\t{9:X4}\t{10:X4}\t{11:X8}" // 020, SegmentIndex, DefinitionOffset ; s.WriteLine("{0}\ttag_resource_block", block.Count); int x = 0; foreach (cache_file_resource_gestalt_tag_resource_block def in block) { if (def.Reference.Datum != DatumIndex.Null) { s.WriteLine(format, x.ToString(), def.Header.Value.ToString("X4"), def.ResourceType.Value.ToString("X2"), def.Flags.Value.ToString("X2"), def.Reference.ToString(), def.Reference.GroupTag.Name, def.BlockOffset.Value.ToString("X8"), def.BlockSize.Value.ToString("X8"), def.UnknownOffset.Value.ToString("X8"), def.Unknown020.Value.ToString("X4"), def.SegmentIndex.Value.ToString("X4"), def.DefinitionOffset.Value.ToString("X8") ); s.WriteLine(); resource_fixup_block.Output(s, def.ResourceFixups); s.WriteLine(); resource_definition_fixup_block.Output(s, def.ResourceDefinitionFixups); } else s.WriteLine("\t{0}\t\tNULL", x.ToString()); x++; s.WriteLine(); } }
public static void Output(System.IO.StreamWriter s, TI.Block<sound_gestalt_platform_codec_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}"; s.WriteLine("{0}\tsound_gestalt_platform_codec_block", block.Count); int x = 0; foreach (sound_gestalt_platform_codec_block def in block) { s.WriteLine(format, (x++).ToString(), def.Unknown00.Value.ToString(), def.Type.ToString(), def.Flags.ToString()); } }
public static void Output(System.IO.StreamWriter s, TI.Block<cache_file_resource_gestalt_1DC_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}" ; s.WriteLine("{0}\tcache_file_resource_gestalt_1DC_block", block.Count); int x = 0; foreach (cache_file_resource_gestalt_1DC_block def in block) { s.WriteLine(format, (x++).ToString(), def.ThisIndex.Value.ToString("X4"), def.ElementCount.Value.ToString("X4"), def.BlockIndex.Value.ToString("X8") ); } }
public static void Output(StreamWriter s, TI.Block<compression_codec_block> block) { s.WriteLine("{0}\tcompression_codec_block", block.Count); int x = 0; foreach (compression_codec_block def in block) { s.WriteLine("\t{0}\t\t{1}", (x++).ToString(), Util.ByteArrayToString(def.Guid.Data)); } s.WriteLine(); }
public static void Output(Blam.Halo3.CacheFileBase c, System.IO.StreamWriter s, TI.Block<cache_file_resource_gestalt_200_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}" ; s.WriteLine("{0}\tcache_file_resource_gestalt_200_block", block.Count); int x = 0; foreach (cache_file_resource_gestalt_200_block def in block) { if (def.TagIndex.Value != -1) s.WriteLine(format, x.ToString(), def.Unknown08.Value.ToString("X8"), def.Unknown0C.Value.ToString("X8"), c.GetTagIndexName((DatumIndex)def.TagIndex.Value, true) ); else s.WriteLine("NULL"); x++; } }
public static void Output(StreamWriter s, TI.Block<shared_cache_block> block) { s.WriteLine("{0}\tshared_cache_block", block.Count); int x = 0; foreach (shared_cache_block def in block) { s.WriteLine("\t{0}\t\t{1}\t{2}\t{3}\t{4}", (x++).ToString(), def.Unknown100.Value.ToString("X4"), def.Flags.Value.ToString("X4"), def.Unknown104.Value.ToString("X8"), def.CachePath.Value); } s.WriteLine(); }
public void Render(global_geometry_section_info_struct section_info, TI.Block<global_geometry_material_block> materials) { Section.Value.Render(section_info, materials); }
public static void Output(StreamWriter s, TI.Block<pages_block> block) { const string format = "\t{0}\t\t{1}\t{2}\t{3}\t{4}\t{5}" + Program.NewLine + "\t\t\t{6}\t{7}\t{8}" + Program.NewLine + "\t\t\t{9}" + Program.NewLine + "\t\t\t{10}" + Program.NewLine + "\t\t\t{11}" + Program.NewLine + "\t\t\t{12}" + Program.NewLine + "\t\t\t{13}\t{14}" ; const string format_minmax = "\t\t\t{0:X4},{1:X4}\t{2},{3}" + Program.NewLine + // Unknown006 short "\t\t\t{4:X4},{5:X4}\t{6},{7}" + Program.NewLine + // Unknown054 short "\t\t\t{8:X4},{9:X4}\t{10},{11}" // Unknown056 short ; short Unknown006_Min = short.MaxValue, Unknown006_Max = 0; int Unknown006_MinIndex = -1, Unknown006_MaxIndex = -1; short Unknown054_Min = short.MaxValue, Unknown054_Max = 0; int Unknown054_MinIndex = -1, Unknown054_MaxIndex = -1; short Unknown056_Min = short.MaxValue, Unknown056_Max = 0; int Unknown056_MinIndex = -1, Unknown056_MaxIndex = -1; short s_val; s.WriteLine("{0}\tpages_block", block.Count); int x = 0; foreach (pages_block def in block) { s.WriteLine(format, (x++).ToString(), def.Header.Value.ToString("X4"), def.Flags.Value.ToString("X2"), def.CompressionCodec.Value.ToString(), def.SharedCache.Value.ToString("X4"), def.Unknown006.Value.ToString("X4"), def.BlockOffset.Value.ToString("X8"), def.BlockSizeCompressed.Value.ToString("X8"), def.BlockSizeUncompressed.Value.ToString("X8"), def.Crc.Value.ToString("X8"), Util.ByteArrayToString(def.EntireBufferHash.Data), Util.ByteArrayToString(def.FirstChunkHash.Data), Util.ByteArrayToString(def.LastChunkHash.Data), def.Unknown054.Value.ToString("X4"), def.Unknown056.Value.ToString("X4")); s_val = def.Unknown006.Value; if (s_val < Unknown006_Min) { Unknown006_Min = s_val; Unknown006_MinIndex = x; } if (s_val > Unknown006_Max) { Unknown006_Max = s_val; Unknown006_MaxIndex = x; } s_val = def.Unknown054.Value; if (s_val < Unknown054_Min) { Unknown054_Min = s_val; Unknown054_MinIndex = x; } if (s_val > Unknown054_Max) { Unknown054_Max = s_val; Unknown054_MaxIndex = x; } s_val = def.Unknown056.Value; if (s_val < Unknown056_Min) { Unknown056_Min = s_val; Unknown056_MinIndex = x; } if (s_val > Unknown056_Max) { Unknown056_Max = s_val; Unknown056_MaxIndex = x; } } s.WriteLine(); s.WriteLine("Min\\Max"); s.WriteLine(format_minmax, Unknown006_Min, Unknown006_Max, Unknown006_MinIndex, Unknown006_MaxIndex, Unknown054_Min, Unknown054_Max, Unknown054_MinIndex, Unknown054_MaxIndex, Unknown056_Min, Unknown056_Max, Unknown056_MinIndex, Unknown056_MaxIndex ); s.WriteLine(); }
public void Render(TI.Block<global_geometry_material_block> materials) { RenderInfo.Value.Render(materials); }
static void UpdateVersion() { //Debug.Log ("update here"); TI.ClickRate(); }