Пример #1
0
                public structure_bsp_material_block() : base(28)
                {
                    Add(Shader            = new TI.TagReference(this, TagGroups.shdr));
                    Add(ShaderPermutation = new TI.ShortInteger());
                    Add(Flags             = new TI.Flags(TI.FieldType.WordFlags));
                    Add(Surfaces          = new TI.BlockIndex(TI.FieldType.LongBlockIndex));
                    Add(SurfaceCount      = new TI.LongInteger());
                    Add(Centroid          = new TI.RealPoint3D());
                    Add(AmbientColor      = new TI.RealColor());
                    Add(DistantLightCount = new TI.ShortInteger());
                    Add(new TI.Pad(2));

                    Add(DistantLightColor1     = new TI.RealColor());
                    Add(DistantLightDirection1 = new TI.RealVector3D());
                    Add(DistantLightColor2     = new TI.RealColor());
                    Add(DistantLightDirection2 = new TI.RealVector3D());
                    Add(new TI.Pad(12));
                    Add(ReflectionTint   = new TI.RealColor(TI.FieldType.RealArgbColor));
                    Add(ShadowVector     = new TI.RealVector3D());
                    Add(ShadowColor      = new TI.RealColor());
                    Add(Plane            = new TI.RealPlane3D());
                    Add(BreakableSurface = new TI.ShortInteger());
                    Add(new TI.Pad(2 + 4));
                    Add(VerticesCount      = new TI.LongInteger());
                    Add(VerticesStartIndex = new TI.LongInteger());
                    Add(new TI.Pad(8 + 4));
                    Add(LightmapVerticesCount      = new TI.LongInteger());
                    Add(LightmapVerticesStartIndex = new TI.LongInteger());
                    Add(new TI.Pad(8));
                    Add(UncompressedVertices = new TI.Data(this, TI.DataType.Vertex));
                    Add(CompressedVertices   = new TI.Data(this, TI.DataType.VertexCompressed));
                }
Пример #2
0
 public unknown_3C_block() : base(22)
 {
     Add(Unknown0 = new TI.Flags(TI.FieldType.ByteFlags));
     Add(Unknown1 = new TI.Flags(TI.FieldType.ByteFlags));
     Add(TI.Pad.Word);
     Add(Unknown4      = new TI.LongInteger());
     Add(Block8        = new TI.Block <unknown_8_block>(this, 0));
     Add(Unknown14     = new TI.LongInteger());                 // unknown
     Add(Unknown18     = new TI.LongInteger());                 // unknown
     Add(Unknown1C     = new TI.StringId());
     Add(Unknown20     = new TI.LongInteger());                 // unknown
     Add(CuiScreen     = new TI.TagReference(this, TagGroups.cusc));
     Add(SoundResponse = new TI.TagReference(this, TagGroups.sgrp));
     Add(Unknown44     = new TI.LongInteger());                 // unknown
     Add(Unknown48     = new TI.LongInteger());                 // unknown
     Add(Unknown4C     = new TI.Flags(TI.FieldType.ByteFlags));
     Add(TI.Pad.Byte);
     Add(Unknown4E = new TI.Flags(TI.FieldType.ByteFlags));
     Add(TI.Pad.Byte);
     Add(Unknown50  = new TI.StringId());
     Add(Unknown54  = new TI.LongInteger());                    // unknown
     Add(CuiScreen2 = new TI.TagReference(this, TagGroups.cusc));
     Add(Unknown68  = new TI.TagReference(this));
     Add(Unknown78  = new TI.LongInteger());                    // unknown
 }
Пример #3
0
 public structure_bsp_breakable_surface_block() : base(4)
 {
     Add(Centroid = new TI.RealPoint3D());
     Add(Radius   = new TI.Real());
     Add(CollisionSurfaceIndex = new TI.LongInteger());
     Add(new TI.Pad(28));
 }
Пример #4
0
		public vertex_shader_group() : base(4)
		{
			Add(Platform = new TI.Enum());
			Add(new TI.Pad(2));
			Add(GeometryClassifications = new TI.Block<vertex_shader_classification_block>(this, (int)GeometryClassifcationNames.Count));
			Add(OutputSwizzles = new TI.LongInteger());
		}
Пример #5
0
            //public TI.ShortInteger LowDetailMipmapCount;
            #endregion

            #region Ctor
            public bitmap_data_block() : base(14)
            {
                Add(Signature         = new TI.Tag());
                Add(Width             = new TI.ShortInteger());
                Add(Height            = new TI.ShortInteger());
                Add(Depth             = new TI.ByteInteger());
                Add(MoreFlags         = new TI.Flags(BlamLib.TagInterface.FieldType.ByteFlags));
                Add(Type              = new TI.Enum());
                Add(Format            = new TI.Enum());
                Add(Flags             = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
                Add(RegistrationPoint = new TI.Point2D());
                Add(MipmapCount       = new TI.ByteInteger());
                Add(new TI.Skip(1 +         //LowDetailMipmapCount?
                                1 +         // (just interleaved?) resource index
                                1));        //
                //Add(LowDetailMipmapCount = new TI.ShortInteger());
                Add(PixelsOffset = new TI.LongInteger());

                Add(new TI.Skip(4 +                 // pixels size
                                4 + 4));

                Add(new TI.LongInteger());

                Add(new TI.Skip(4));
            }
 public block_4() : base(4)
 {
     Add(Unknown00 = new TI.LongInteger());
     Add(Unknown04 = new TI.LongInteger());
     Add(Unknown08 = new TI.LongInteger());
     Add(Unknown0C = new TI.LongInteger());
 }
Пример #7
0
 public animation_block() : base(31)
 {
     Add(Name                = new TI.String());
     Add(Type                = new TI.Enum());
     Add(FrameCount          = new TI.ShortInteger());
     Add(FrameSize           = new TI.ShortInteger());
     Add(FrameInfoType       = new TI.Enum());
     Add(NodeListChecksum    = new TI.LongInteger());
     Add(NodeCount           = new TI.ShortInteger());
     Add(LoopFrameIndex      = new TI.ShortInteger());
     Add(Weight              = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
     Add(KeyFrameIndex       = new TI.ShortInteger());
     Add(SecondKeyFrameIndex = new TI.ShortInteger());
     Add(NextAnimation       = new TI.BlockIndex());
     Add(Flags               = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
     Add(Sound               = new TI.BlockIndex());
     Add(SoundFrameIndex     = new TI.ShortInteger());
     Add(LeftFootFrameIndex  = new TI.ByteInteger());
     Add(RightFootFrameIndex = new TI.ByteInteger());
     Add(new TI.Pad(2 + 4));
     Add(FrameInfo       = new TI.Data(this));
     Add(NodeTransFlags1 = new TI.LongInteger());
     Add(NodeTransFlags2 = new TI.LongInteger());
     Add(new TI.Pad(8));
     Add(NodeRotationFlags1 = new TI.LongInteger());
     Add(NodeRotationFlags2 = new TI.LongInteger());
     Add(new TI.Pad(8));
     Add(NodeScaleFlags1 = new TI.LongInteger());
     Add(NodeScaleFlags2 = new TI.LongInteger());
     Add(new TI.Pad(4));
     Add(OffsetToCompressedData = new TI.LongInteger());
     Add(DefaultData            = new TI.Data(this));
     Add(FrameData = new TI.Data(this));
 }
 public shared_cache_block() : base(4)
 {
     Add(CachePath  = new TI.String(TI.StringType.Ascii, 256));
     Add(Unknown100 = new TI.ShortInteger());
     Add(Flags      = new TI.Flags(TI.FieldType.WordFlags));
     Add(Unknown104 = new TI.LongInteger());
 }
 public s_tag_d3d_vertex_buffer() : base(4)
 {
     Add(VertexCount  = new TI.LongInteger());
     Add(VertxType    = new TI.Enum());
     Add(VertexSize   = new TI.ShortInteger());
     Add(VertexBuffer = new TI.Data(this));
 }
Пример #10
0
 public tag_database_entry_block() : base(4)
 {
     Add(Name     = new TI.String(TI.StringType.Ascii, 256));
     Add(GroupTag = new TI.Tag());
     Add(Flags    = new TI.LongInteger());
     Add(ChildIds = new TI.Block <tag_database_entry_reference_block>(this, 65535));
 }
Пример #11
0
            public bitmap_data_block() : base(23)
            {
                Add(Signature            = new TI.Tag());
                Add(Width                = new TI.ShortInteger());
                Add(Height               = new TI.ShortInteger());
                Add(Depth                = new TI.ByteInteger());
                Add(MoreFlags            = new TI.Flags(BlamLib.TagInterface.FieldType.ByteFlags));
                Add(Type                 = new TI.Enum());
                Add(Format               = new TI.Enum());
                Add(Flags                = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
                Add(RegistrationPoint    = new TI.Point2D());
                Add(MipmapCount          = new TI.ShortInteger());
                Add(LowDetailMipmapCount = new TI.ShortInteger());
                Add(PixelsOffset         = new TI.LongInteger());

                Add(Offsets[0] = new TI.LongInteger());
                Add(Offsets[1] = new TI.LongInteger());
                Add(Offsets[2] = new TI.LongInteger());
                Add(new TI.Skip(4 + 4 + 4));

                Add(Sizes[0] = new TI.LongInteger());
                Add(Sizes[1] = new TI.LongInteger());
                Add(Sizes[2] = new TI.LongInteger());
                Add(new TI.Skip(4 + 4 + 4));

                Add(new TI.Skip(
                        4 + 4 +
                        4                 // this is special...
                        ));
                Add(OwnerTagIndex = new TI.LongInteger());
                Add(new TI.Skip(
                        20 +
                        4
                        ));
            }
Пример #12
0
        public gbxmodel_group() : base(21)
        {
            Add(Flags            = new TI.Flags());
            Add(NodeListChecksum = new TI.LongInteger());

            Add(SuperHighDetailCutoff = new TI.Real());
            Add(HighDetailCutoff      = new TI.Real());
            Add(MediumDetailCutoff    = new TI.Real());
            Add(LowDetailCutoff       = new TI.Real());
            Add(SuperLowDetailCutoff  = new TI.Real());

            Add(SuperHighDetailNodeCount = new TI.ShortInteger());
            Add(HighDetailNodeCount      = new TI.ShortInteger());
            Add(MediumDetailNodeCount    = new TI.ShortInteger());
            Add(LowDetailNodeCount       = new TI.ShortInteger());
            Add(SuperLowDetailNodeCount  = new TI.ShortInteger());

            Add(new TI.Pad(2 + 8));
            Add(BaseMapUScale = new TI.Real());
            Add(BaseMapVScale = new TI.Real());
            Add(new TI.Pad(116));

            Add(Markers    = new TI.Block <model_group.model_markers_block>(this, 256));
            Add(Nodes      = new TI.Block <model_group.model_node_block>(this, 64));
            Add(Regions    = new TI.Block <model_group.model_region_block>(this, 32));
            Add(Geometries = new TI.Block <model_geometry_block>(this, 256));
            Add(Shaders    = new TI.Block <model_group.model_shader_reference_block>(this, 32));
        }
Пример #13
0
 public cache_file_sound_group() : base(17)
 {
     // 0x0
     Add(Flags      = new TI.Flags(TI.FieldType.WordFlags));
     Add(SoundClass = new TI.Enum(TI.FieldType.ByteEnum));
     Add(SampleRate = new TI.Enum(TI.FieldType.ByteEnum));
     // 0x4
     Add(Encoding      = new TI.Enum(TI.FieldType.ByteEnum));
     Add(CodecIndex    = new TI.ByteInteger());
     Add(PlaybackIndex = new TI.ShortInteger());
     // 0x8
     Add(Unknown08 = new TI.ShortInteger());             // TODO: UNKNOWN FIELD, index to something, but doesn't seem to be in the sound gestalt
     Add(Unknown0A = new TI.ShortInteger());             // TODO: UNKNOWN FIELD, maybe an index to the first block in the sound gestalt? or not a index...
     // 0xC
     Add(FirstPitchRangeIndex = new TI.ShortInteger());
     Add(PitchRangeIndex      = new TI.ByteInteger());
     Add(ScaleIndex           = new TI.ByteInteger());
     // 0x10
     Add(PromotionIndex      = new TI.ByteInteger());
     Add(CustomPlaybackIndex = new TI.ByteInteger());
     Add(ExtraInfoIndex      = new TI.ShortInteger());
     // 0x14
     Add(Unknown14 = new TI.LongInteger());             // TODO: UNKNOWN FIELD
     // 0x18
     Add(ResourceIndex = new TI.LongInteger());
     // 0x1C
     Add(MaximumPlayTime = new TI.LongInteger());
 }
 protected CacheFileLanguagePackResource()
 {
     Count            = new TI.LongInteger();
     Size             = new TI.LongInteger();
     OffsetReferences = new TI.LongInteger();
     OffsetStrings    = new TI.LongInteger();
 }
Пример #15
0
 public global_leaf_portal_block() : base(4)
 {
     Add(PlaneIndex     = new TI.LongInteger());
     Add(BackLeafIndex  = new TI.LongInteger());
     Add(FrontLeafIndex = new TI.LongInteger());
     Add(Vertices       = new TI.Block <field_block <TI.RealPoint3D> >(this, 64));
 }
 public unknown_4_block() : base(4)
 {
     Add(Flags = new TI.Flags(TI.FieldType.ByteFlags));
     Add(TI.Pad._24);
     Add(Unknown4 = new TI.LongInteger());                           // for multikills this is the count
     Add(Unknown8 = new TI.StringId());                              // for multikills this is 'kill', so it's probably the incident filter
 }
 public multiplayer_object_type_mapping_block() : base(7)
 {
     Add(TypeIndex = new TI.BlockIndex(TI.FieldType.LongBlockIndex));
     Add(TI.Pad.DWord);                 // Only ever seen as zero. Probably an unused string id
     Add(Unknown10 = new TI.Real());
     Add(Unknown14 = new TI.LongInteger());
 }
Пример #18
0
		public cache_file_sound_group() : base(17)
		{
			// 0x0
			Add(Flags = new TI.Flags(TI.FieldType.WordFlags));
			Add(SoundClass = new TI.Enum(TI.FieldType.ByteEnum));
			Add(SampleRate = new TI.Enum(TI.FieldType.ByteEnum));
			// 0x4
			Add(Encoding = new TI.Enum(TI.FieldType.ByteEnum));
			Add(CodecIndex = new TI.ByteInteger());
			Add(PlaybackIndex = new TI.ShortInteger());
			// 0x8
			Add(Unknown08 = new TI.ShortInteger()); // TODO: UNKNOWN FIELD, index to something, but doesn't seem to be in the sound gestalt
			Add(Unknown0A = new TI.ShortInteger()); // TODO: UNKNOWN FIELD, maybe an index to the first block in the sound gestalt? or not a index...
			// 0xC
			Add(FirstPitchRangeIndex = new TI.ShortInteger());
			Add(PitchRangeIndex = new TI.ByteInteger());
			Add(ScaleIndex = new TI.ByteInteger());
			// 0x10
			Add(PromotionIndex = new TI.ByteInteger());
			Add(CustomPlaybackIndex = new TI.ByteInteger());
			Add(ExtraInfoIndex = new TI.ShortInteger());
			// 0x14
			Add(Unknown14 = new TI.LongInteger()); // TODO: UNKNOWN FIELD
			// 0x18
			Add(ResourceIndex = new TI.LongInteger());
			// 0x1C
			Add(MaximumPlayTime = new TI.LongInteger());
		}
Пример #19
0
			public cache_file_resource_gestalt_64_block() : base(14)
			{
				Add(TI.UnknownPad.BlockHalo3); // 0x00 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x0C unused?
				Add(TI.UnknownPad.BlockHalo3); // 0x18 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x24 [4]
					// dword
				Add(Unknown030 = new TI.LongInteger()); // Resource location (page) offset
				Add(Unknown034 = new TI.LongInteger()); // ''
				Add(Unknown038 = new TI.LongInteger()); // ''
				Add(Unknown03C = new TI.LongInteger()); // ''
				Add(Unknown040 = new TI.LongInteger()); // ''
				Add(Unknown044 = new TI.LongInteger()); // ''
				Add(TI.UnknownPad.BlockHalo3); // 0x48 [0x14] bsp related? has same count has the bsp count for the cache
					// dword * 5

				// I think the following two are inserted fields
				Add(TI.UnknownPad.BlockHalo3); // 0x54 ?
				Add(TI.UnknownPad.BlockHalo3); // 0x60 ?

				Add(TI.UnknownPad.BlockHalo3); // 0x6C [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x78 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x84 unused?
				Add(new TI.UnknownPad(16)); // 0x90 ?
			}
Пример #20
0
            public cache_file_resource_gestalt_64_block() : base(14)
            {
                Add(TI.UnknownPad.BlockHalo3);                 // 0x00 [4]
                // dword
                Add(TI.UnknownPad.BlockHalo3);                 // 0x0C unused?
                Add(TI.UnknownPad.BlockHalo3);                 // 0x18 [4]
                // dword
                Add(TI.UnknownPad.BlockHalo3);                 // 0x24 [4]
                // dword
                Add(Unknown030 = new TI.LongInteger());        // Resource location (page) offset
                Add(Unknown034 = new TI.LongInteger());        // ''
                Add(Unknown038 = new TI.LongInteger());        // ''
                Add(Unknown03C = new TI.LongInteger());        // ''
                Add(Unknown040 = new TI.LongInteger());        // ''
                Add(Unknown044 = new TI.LongInteger());        // ''
                Add(TI.UnknownPad.BlockHalo3);                 // 0x48 [0x14] bsp related? has same count has the bsp count for the cache
                // dword * 5

                // I think the following two are inserted fields
                Add(TI.UnknownPad.BlockHalo3);              // 0x54 ?
                Add(TI.UnknownPad.BlockHalo3);              // 0x60 ?

                Add(TI.UnknownPad.BlockHalo3);              // 0x6C [4]
                // dword
                Add(TI.UnknownPad.BlockHalo3);              // 0x78 [4]
                // dword
                Add(TI.UnknownPad.BlockHalo3);              // 0x84 unused?
                Add(new TI.UnknownPad(16));                 // 0x90 ?
            }
Пример #21
0
		public hs_scripts_block() : base(5)
		{
			Add(Name = new TI.StringId());
			Add(ScriptType = new TI.Enum());
			Add(ReturnType = new TI.Enum());
			Add(RootExpressionIndex = new TI.LongInteger());
			Add(Parameters = new TI.Block<H3.hs_scripts_block.hs_scripts_parameters_block>(this, 0));
		}
Пример #22
0
				public surfaces_block() : base(5)
				{
					Add(Plane = new TI.LongInteger());
					Add(FirstEdge = new TI.LongInteger());
					Add(Flags = new TI.Flags(TI.FieldType.ByteFlags));
					Add(BreakableSurface = new TI.ByteInteger());
					Add(Material = new TI.ShortInteger());
				}
Пример #23
0
 public hs_scripts_block() : base(5)
 {
     Add(Name                = new TI.StringId());
     Add(ScriptType          = new TI.Enum());
     Add(ReturnType          = new TI.Enum());
     Add(RootExpressionIndex = new TI.LongInteger());
     Add(Parameters          = new TI.Block <H3.hs_scripts_block.hs_scripts_parameters_block>(this, 0));
 }
 public cache_file_resource_gestalt_164_block() : base(5)
 {
     Add(Unknown00 = new TI.LongInteger());
     Add(Unknown04 = new TI.LongInteger());
     Add(Unknown08 = new TI.LongInteger());
     Add(Unknown0C = new TI.LongInteger());
     Add(Unknown10 = new TI.LongInteger());
 }
            public TI.LongInteger DatumIndexBlock24;             // seems like only sounds use this...

            public page_segment_block() : base(5)
            {
                Add(RequiredPageIndex     = new TI.BlockIndex());
                Add(OptionalPageIndex     = new TI.BlockIndex());
                Add(RequiredSegmentOffset = new TI.LongInteger());
                Add(OptionalSegmentOffset = new TI.LongInteger());
                Add(DatumIndexBlock24     = new TI.LongInteger());
            }
Пример #26
0
 public sound_permutation_chunk_block() : base(5)
 {
     Add(FileOffset   = new TI.LongInteger());
     Add(SizeFlags    = new TI.LongInteger());
     Add(RuntimeIndex = new TI.LongInteger());
     Add(Unknown0C    = new TI.LongInteger());          // Only ever seen this eq '0' and '0x180'...may be an structure with bit encoded data
     Add(Unknown10    = new TI.LongInteger());
 }
Пример #27
0
 public surfaces_block() : base(5)
 {
     Add(Plane            = new TI.LongInteger());
     Add(FirstEdge        = new TI.LongInteger());
     Add(Flags            = new TI.Flags(TI.FieldType.ByteFlags));
     Add(BreakableSurface = new TI.ByteInteger());
     Add(Material         = new TI.ShortInteger());
 }
Пример #28
0
		public scenario_structure_bsps_block() : base(4)
		{
			// Offset to this bsp's scenario_structure_bsps_header
			Add(Offset = new TI.LongInteger());
			Add(Size = new TI.LongInteger());
			Add(Data = new TI.Skip(4 // address
				+ 4)); // pad
			Add(StructureBsp = new TI.TagReference(this, TagGroups.sbsp));
		}
Пример #29
0
 public edges_block() : base(6)
 {
     Add(StartVertex  = new TI.LongInteger());
     Add(EndVertex    = new TI.LongInteger());
     Add(ForwardEdge  = new TI.LongInteger());
     Add(ReverseEdge  = new TI.LongInteger());
     Add(LeftSurface  = new TI.LongInteger());
     Add(RightSurface = new TI.LongInteger());
 }
Пример #30
0
 public decorator_placement_block() : base(6)
 {
     Add(InternalData              = new TI.LongInteger());
     Add(CompressedPosition        = new TI.LongInteger());
     Add(TintColor                 = new TI.Color(TI.FieldType.RgbColor));
     Add(LightmapColor             = new TI.Color(TI.FieldType.RgbColor));
     Add(CompressedLightDirection  = new TI.LongInteger());
     Add(CompressedLight2Direction = new TI.LongInteger());
 }
Пример #31
0
 public text_value_pair_reference_block()
 {
     Add(Flags = new TI.Flags(TI.FieldType.ByteFlags));
     Add(Type  = new TI.Enum(TI.FieldType.ByteEnum));
     Add(TI.Pad.Word);
     Add(Integer     = new TI.LongInteger());
     Add(StringId    = new TI.StringId());
     Add(Name        = new TI.StringId());
     Add(Description = new TI.StringId());
 }
Пример #32
0
 public sound_permutations_block() : base(7)
 {
     Add(Name         = new TI.StringId());
     Add(SkipFraction = new TI.Real(TI.FieldType.RealFraction));
     Add(Gain         = new TI.Real());
     Add(SamplesSize  = new TI.LongInteger());
     Add(RawInfo      = new TI.BlockIndex());
     Add(LanguageNeutralMilliseconds = new TI.ShortInteger());
     Add(Chunks = new TI.Block <sound_permutation_chunk_block>(this, 32767));
 }
Пример #33
0
        public TI.LongInteger Offset;         // ResourcePtr

        public geometry_block_resource_block() : base(8)
        {
            Add(Type             = new TI.Enum(TI.FieldType.ByteEnum));
            Add(AlignmentBit     = new TI.ByteInteger());
            Add(FieldOffset      = new TI.ShortInteger());
            Add(PrimaryLocater   = new TI.ShortInteger());
            Add(SecondaryLocater = new TI.ShortInteger());
            Add(Size             = new TI.LongInteger());
            Add(Offset           = new TI.LongInteger());
        }
Пример #34
0
 public text_value_pair_reference_block() : base(7)
 {
     Add(Flags = new TI.Flags(TI.FieldType.ByteFlags));
     Add(TI.Pad._24);
     Add(Integer     = new TI.LongInteger());
     Add(Real        = new TI.Real());
     Add(StringId    = new TI.StringId());
     Add(Name        = new TI.StringId());
     Add(Description = new TI.StringId());
 }
Пример #35
0
		public TI.LongInteger Offset; // ResourcePtr

		public geometry_block_resource_block() : base(8)
		{
			Add(Type = new TI.Enum(TI.FieldType.ByteEnum));
			Add(AlignmentBit = new TI.ByteInteger());
			Add(FieldOffset = new TI.ShortInteger());
			Add(PrimaryLocater = new TI.ShortInteger());
			Add(SecondaryLocater = new TI.ShortInteger());
			Add(Size = new TI.LongInteger());
			Add(Offset = new TI.LongInteger());
		}
Пример #36
0
				public sandbox_text_value_pair_reference_block()
				{
					Add(Flags = new TI.Flags(TI.FieldType.ByteFlags));
					Add(Type = new TI.Enum(TI.FieldType.ByteEnum));
					Add(TI.Pad.Word);
					Add(Integer = new TI.LongInteger());
					Add(StringId = new TI.StringId());
					Add(Name = new TI.StringId());
					Add(Description = new TI.StringId());
				}
 public game_medal_globals_medals_block() : base(7)
 {
     Add(Name        = new TI.StringId());
     Add(Description = new TI.StringId());
     Add(Unknown8    = new TI.Real());
     Add(UnknownC    = new TI.Real());
     Add(Unknown10   = new TI.ShortInteger());
     Add(Unknown12   = new TI.Flags(TI.FieldType.WordFlags));
     Add(Unknown14   = new TI.LongInteger());
 }
Пример #38
0
            public multilingual_unicode_string_reference_block() : base(10)
            {
                Add(StringId = new TI.StringId());

                LanguageOffsets = new TI.LongInteger[(int)LanguageType.kMax];
                for (int x = 0; x < LanguageOffsets.Length; x++)
                {
                    Add(LanguageOffsets[x] = new TI.LongInteger());
                }
            }
Пример #39
0
			public bitmap_texture_interop_resource() : base(4)
			{
				Add(BitmapData = new TI.Data(this));
				Add(UnknownData = new TI.Data(this));
				Add(Width = new TI.ShortInteger());
				Add(Height = new TI.ShortInteger());
				Add(Unknown2C = new TI.ByteInteger());
				Add(Unknown2D = new TI.ByteInteger());
				Add(Unknown2E = new TI.ByteInteger());
				Add(Unknown2F = new TI.ByteInteger());
				Add(Unknown30 = new TI.LongInteger());
			}
Пример #40
0
		public s_cache_language_pack(TI.Definition parent)
		{
			parent.Add(new TI.Pad(
				4 // Index runtime hashing handle 
				+
				4 // Table runtime hashing handle 
				));
			parent.Add(Count = new TI.LongInteger());
			parent.Add(Size = new TI.LongInteger());
			parent.Add(OffsetIndex = new TI.LongInteger());
			parent.Add(OffsetTable = new TI.LongInteger());
			parent.Add(new TI.Skip(20)); // index SHA1 hash
			parent.Add(new TI.Skip(20)); // strings SHA1 hash
			parent.Add(new TI.Pad(1 + 3));
		}
Пример #41
0
			public bitmap_data_block() : base(14)
			{
				Add(Signature = new TI.Tag());
				Add(Width = new TI.ShortInteger());
				Add(Height = new TI.ShortInteger());
				Add(Depth = new TI.ShortInteger());
				Add(Type = new TI.Enum());
				Add(Format = new TI.Enum());
				Add(Flags = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
				Add(RegistrationPoint = new TI.Point2D());
				Add(MipmapCount = new TI.ShortInteger());
				Add(new TI.Pad(2));
				Add(PixelsOffset = new TI.LongInteger());
				Add(new TI.Skip(12));
				Add(HardwareFormat = new TI.LongInteger());
				Add(BaseAddress = new TI.LongInteger());
			}
Пример #42
0
		/// <summary>
		/// Initialize the language pack to a tag definition or as a stand-alone
		/// </summary>
		/// <param name="parent"></param>
		public s_cache_language_pack(TI.Definition parent)
		{
			Count = new TI.LongInteger();
			Size = new TI.LongInteger();
			OffsetReferences = new TI.LongInteger();
			OffsetStrings = new TI.LongInteger();

			if (parent != null)
			{
				parent.Add(new TI.Pad(4 + 4)); // runtime pointers
					// s_cache_unicode_string_reference* references_buffer
					// byte* strings_buffer
				parent.Add(Count);
				parent.Add(Size);
				parent.Add(OffsetReferences);
				parent.Add(OffsetStrings);
				parent.Add(new TI.Pad(1 + 3));
			}
		}
Пример #43
0
			public hs_globals_block() : base(5)
			{
				Add(Name = new TI.String());
				Add(Type = new TI.Enum());
				Add(new TI.Pad(2 + 4));
				Add(InitExpressionIndex = new TI.LongInteger());
				Add(new TI.Pad(48));
			}
Пример #44
0
			public hs_scripts_block() : base(5)
			{
				Add(Name = new TI.String());
				Add(ScriptType = new TI.Enum());
				Add(ReturnType = new TI.Enum());
				Add(RootExpressionIndex = new TI.LongInteger());
				Add(new TI.Pad(52));
			}
Пример #45
0
					public move_positions_block() : base(8)
					{
						Add(Position = new TI.RealPoint3D());
						Add(Facing = new TI.Real(BlamLib.TagInterface.FieldType.Angle));
						Add(Weight = new TI.Real());
						Add(Time = new TI.RealBounds());
						Add(Animation = new TI.BlockIndex());
						Add(SequenceID = new TI.ByteInteger());
						Add(new TI.Pad(1 + 44));
						Add(SurfaceIndex = new TI.LongInteger());
					}
Пример #46
0
		public sound_gestalt_permutations_block() : base(8)
		{
			Add(Name = new TI.BlockIndex()); // 1 sound_gestalt_import_names_block
			Add(EncodedSkipFraction = new TI.ShortInteger());
			Add(EncodedGain = new TI.ByteInteger());
			Add(PermutationInfoIndex = new TI.ByteInteger());
			Add(LanguageNeutralTime = new TI.ShortInteger());
			Add(SampleSize = new TI.LongInteger());
			Add(FirstChunk = new TI.BlockIndex()); // 1 sound_permutation_chunk_block
			Add(ChunkCount = new TI.ShortInteger());
		}
Пример #47
0
		public cache_file_sound_group() : base(13)
		{
			Add(Flags = new TI.Flags(TI.FieldType.WordFlags));
			Add(SoundClass = new TI.Enum(TI.FieldType.ByteEnum));
			Add(SampleRate = new TI.Enum(TI.FieldType.ByteEnum));
			Add(Encoding = new TI.Enum(TI.FieldType.ByteEnum));
			Add(Compression = new TI.Enum(TI.FieldType.ByteEnum));
			Add(PlaybackIndex = new TI.ShortInteger());
			Add(FirstPitchRangeIndex = new TI.ShortInteger());
			Add(PitchRangeIndex = new TI.ByteInteger());
			Add(ScaleIndex = new TI.ByteInteger());
			Add(PromotionIndex = new TI.ByteInteger());
			Add(CustomPlaybackIndex = new TI.ByteInteger());
			Add(ExtraInfoIndex = new TI.ShortInteger());
			Add(MaximumPlayTime = new TI.LongInteger());
		}
Пример #48
0
			public cache_file_resource_gestalt_64_block() : base(14)
			{
				Add(TI.UnknownPad.BlockHalo3); // 0x00 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x0C unused?
				Add(TI.UnknownPad.BlockHalo3); // 0x18 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x24 [4]
					// dword
				Add(Unknown030 = new TI.LongInteger()); // Resource location (page) offset
				Add(Unknown034 = new TI.LongInteger()); // ''
				Add(Unknown038 = new TI.LongInteger()); // ''
				Add(Unknown03C = new TI.LongInteger()); // ''
				Add(Unknown040 = new TI.LongInteger()); // ''
				Add(Unknown044 = new TI.StringId()); // transition zone name related
				Add(TI.UnknownPad.BlockHalo3); // 0x48 [0x14] bsp related? has same count has the bsp count for the cache
					// dword * 5
				Add(TI.UnknownPad.BlockHalo3); // 0x54 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x60 [4]
					// dword
				Add(TI.UnknownPad.BlockHalo3); // 0x6C unused?
			}
Пример #49
0
		public syntax_datum_block() : base(8)
		{
			Add(DatumHeader = new TI.ShortInteger());
			Add(TypeUnion/*Script Index/Function Index/Constant Type Union*/= new TI.ShortInteger());
			Add(Type = new TI.ShortInteger());
			Add(Flags = new TI.ShortInteger());
			Add(NextNodeIndex = new TI.LongInteger());
			Add(Pointer = new TI.LongInteger());
			Add(Data = new TI.LongInteger());
			Add(LineNumber = new TI.ShortInteger());
			Add(LineNumberPadding = new TI.ShortInteger());
		}
Пример #50
0
		public pathfinding_data_block() : base(13)
		{
			Add(Sectors = new TI.Block<sector_block>(this, 65534));
			Add(Links = new TI.Block<sector_link_block>(this, 262144));
			Add(Refs = new TI.Block<ref_block>(this, 131072));
			Add(Bsp2dNodes = new TI.Block<sector_bsp2d_nodes_block>(this, 131072));
			// no more surface flags block
			Add(Vertices = new TI.Block<sector_vertex_block>(this, 65535));
			Add(ObjectRefs = new TI.Block<environment_object_refs>(this, 2000)); // i think max is just 1 now?
			Add(PathfindingHints = new TI.Block<pathfinding_hints_block>(this, 32767));
			Add(InstancedGeometryRefs = new TI.Block<instanced_geometry_reference_block>(this, 1024));
			Add(StructureChecksum = new TI.LongInteger());
			Add(TI.UnknownPad.BlockHalo3); // ??
			Add(TI.UnknownPad.BlockHalo3); // ??
			Add(TI.UnknownPad.BlockHalo3); // [0xC]
				// tag block [0x4] long
			Add(new TI.UnknownPad(28)); // maybe 2 tag blocks plus 1 dword?
		}
Пример #51
0
		public tag_database_entry_block() : base(4)
		{
			Add(Name = new TI.String(TI.StringType.Ascii, 256));
			Add(GroupTag = new TI.Tag());
			Add(Flags = new TI.LongInteger());
			Add(ChildIds = new TI.Block<tag_database_entry_reference_block>(this, 65535));
		}
Пример #52
0
			public bitmap_data_block() : base(23)
			{
				Add(Signature = new TI.Tag());
				Add(Width = new TI.ShortInteger());
				Add(Height = new TI.ShortInteger());
				Add(Depth = new TI.ByteInteger());
				Add(MoreFlags = new TI.Flags(BlamLib.TagInterface.FieldType.ByteFlags));
				Add(Type = new TI.Enum());
				Add(Format = new TI.Enum());
				Add(Flags = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
				Add(RegistrationPoint = new TI.Point2D());
				Add(MipmapCount = new TI.ShortInteger());
				Add(LowDetailMipmapCount = new TI.ShortInteger());
				Add(PixelsOffset = new TI.LongInteger());
				
				Add(Offsets[0] = new TI.LongInteger());
				Add(Offsets[1] = new TI.LongInteger());
				Add(Offsets[2] = new TI.LongInteger());
				Add(new TI.Skip(4 + 4 + 4));

				Add(Sizes[0] = new TI.LongInteger());
				Add(Sizes[1] = new TI.LongInteger());
				Add(Sizes[2] = new TI.LongInteger());
				Add(new TI.Skip(4 + 4 + 4));

				Add(new TI.Skip(
					4 + 4 + 
					4 // this is special...
					));
				Add(OwnerTagIndex = new TI.LongInteger());
				Add(new TI.Skip(
					20 +
					4
					));
			}
Пример #53
0
			public character_block() : base(9)
			{
				Add(Character = new TI.ShortInteger());
				Add(CharacterWidth = new TI.ShortInteger());
				Add(BitmapWidth = new TI.ShortInteger());
				Add(BitmapHeight = new TI.ShortInteger());
				Add(BitmapOriginX = new TI.ShortInteger());
				Add(BitmapOriginY = new TI.ShortInteger());
				Add(HardwardCharacterIndex = new TI.ShortInteger());
				Add(new TI.Pad(2));
				Add(PixelsOffset = new TI.LongInteger());
			}
Пример #54
0
		public scenario_structure_bsps_header()
		{
			Add(PtrBsp = new TI.LongInteger());
			Add(new TI.Pad(16));
			Add(Signature = new TI.Tag());
		}
Пример #55
0
		public scenario_structure_bsp_group()
		{
			Add(new TI.UnknownPad(12));
				// dword (structure checksum?)
				// long?
				// dword
			Add(TI.UnknownPad.BlockHalo3); // [0x28]
				// unknown [0x10] (seems when this is zero, the first tag block is filled with NONE, and the second isnt even used)
				// tag block [0x4]
					// long
				// tag block [0x16]
					// long
					// real_point3d
			Add(TI.UnknownPad.BlockHalo3); // [0x4]
				// long (pretty sure block index)
			Add(CollisionMaterials = new TI.Block<structure_collision_materials_block>(this, 512));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x1], Cluster Data?
			Add(/*World Bounds x = */ new TI.RealBounds());
			Add(/*World Bounds y = */ new TI.RealBounds());
			Add(/*World Bounds z = */ new TI.RealBounds());
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x4]
				// short
				// short
			// 0x60
			Add(TI.UnknownPad.BlockHalo3); // [0x4] Surface References?
				// short
				// short // sound enviorn palette ref?
			Add(ClusterPortals = new TI.Block<structure_bsp_cluster_portal_block>(this, 512));
			Add(TI.UnknownPad.BlockHalo3); // ??
			Add(TI.UnknownPad.BlockHalo3); // [0x8] // fog related
				// string id
				// short
				// short
			Add(TI.UnknownPad.BlockHalo3); // camera fx
				// string id (name)
				// reference (cfxs, settings)
				// byte (enum?)
				// unknown [3]
				// real
				// dword (real?)
				// real
				// real
				// real
				// dword (real?)
			Add(TI.UnknownPad.BlockHalo3); // ?? Weather Polyhedra?
			// 0xA8
			Add(TI.UnknownPad.BlockHalo3); // [0x34] Detail Objects (pretty sure)
				// unknown [0x34] (only seen it as zeros)
			Add(Clusters = new TI.Block<structure_bsp_cluster_block>(this, 512));
			// 0xC0
			Add(Materials = new TI.Block<global_geometry_material_block>(this, 1024));
			Add(/*Sky Owner Cluster = */ new TI.Block<structure_bsp_sky_owner_cluster_block>(this, 32));
			Add(TI.UnknownPad.BlockHalo3); // conveyor surfaces
			Add(TI.UnknownPad.BlockHalo3); // breakable surfaces
			// 0xF0
			Add(/*Pathfinding Data = */ new TI.Block<pathfinding_data_block>(this, 16));
			Add(TI.UnknownPad.BlockHalo3); // pathfinding edges
			Add(/*Sound Environment Palette = */ new TI.Block<structure_bsp_sound_environment_palette_block>(this, 64));
			// 0x114
			Add(new TI.UnknownPad(44)); // 1 tag data, 2 tag blocks but idk the order
			Add(/*Markers = */ new TI.Block<structure_bsp_marker_block>(this, 1024));
			Add(TI.UnknownPad.BlockHalo3); // ?? Runtime Decals?
			Add(TI.UnknownPad.BlockHalo3); // [0x2]
				// short (block index?)
				// short (i think this is a index too)
			Add(/*Compression Infos = */ new TI.Block<global_geometry_compression_info_block>(this, 0));
			// 0x170
			Add(/*Environment Object Palette = */ new TI.Block<structure_bsp_environment_object_palette_block>(this, 100));
			Add(/*Environment Objects = */ new TI.Block<structure_bsp_environment_object_block>(this, 16384));
			Add(TI.UnknownPad.BlockHalo3); // Old Lightmaps
			Add(new TI.Pad(4));
			Add(TI.UnknownPad.BlockHalo3); // Old Leaf Map Leaves
			Add(TI.UnknownPad.BlockHalo3); // Old Leaf Map Connections
			// 0x1B0
			Add(InstancedGeometryInstances = new TI.Block<structure_bsp_instanced_geometry_instances_block>(this, 1024));
			Add(/*Decorator Palette = */ new TI.Block<structure_decorator_palette_block>(this, 0));
			Add(TI.UnknownPad.DWord);
			Add(new TI.UnknownPad(120));
			Add(BspRenderResourcesIndex = new TI.LongInteger()); // resource id (render_geometry_api_resource_definition)
			Add(TI.UnknownPad.DWord);
			// 0x24C
			Add(TI.UnknownPad.BlockHalo3); // structure_bsp_sound_cluster_block (Ambience Sound Clusters?)
			Add(TI.UnknownPad.BlockHalo3); // structure_bsp_sound_cluster_block (Reverb Sound Clusters?)
			Add(TI.UnknownPad.BlockHalo3); // structure_bsp_sound_cluster_block (? Sound Clusters)
			// 0x270
			Add(/*Transparent Planes = */ new TI.Block<transparent_planes_block>(this, 32768));
			Add(TI.UnknownPad.BlockHalo3); // breakable_surface_key_table_block?
			Add(/*structure_physics = */ new TI.Struct<global_structure_physics_struct>(this));
			Add(TI.UnknownPad.BlockHalo3); // [0x20] (i think this may be cluster related)
				// short (block index)
				// byte
				// byte
				// long
				// real bounds[3] (xyz bounds)
			Add(new TI.UnknownPad(24));
			Add(TI.UnknownPad.DWord);
			
			// 0x2E4
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x4C] render_model_section_block
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x2C] global_geometry_compression_info_block
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x30]
				// unknown [0x10]
				// real[4] (might be a hkVector4 or just a real_point3d + real)
				// long (might byte 4 byte indexers)
				// real
				// real
				// real
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x18] functions
				// string id (input)
				// mapping_function
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x20] (count matches render_model_section_block)
				// tag data
			Add(TI.UnknownPad.BlockHalo3); // ?
			Add(TI.UnknownPad.BlockHalo3); // ? (should be a 0xC block)
			Add(TI.UnknownPad.BlockHalo3); // ?
			// 0x350
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x10]
			// 0x35C
			Add(new TI.UnknownPad(8 + 12));
				// resource id (will point to a null item, render_geometry_api_resource_definition)
				// dword
				// tag block

			Add(TI.UnknownPad.BlockHalo3); // tag block? maybe this points to the structure_bsp_tag_resources block data in the zone tag
			
			Add(BspTagResourcesIndex = new TI.LongInteger()); // resource id (structure_bsp_tag_resources)
			Add(TI.Pad.DWord);
			
			Add(TI.Pad.DWord);
		}
Пример #56
0
			//public TI.ShortInteger LowDetailMipmapCount;
			#endregion

			#region Ctor
			public bitmap_data_block() : base(14)
			{
				Add(Signature = new TI.Tag());
				Add(Width = new TI.ShortInteger());
				Add(Height = new TI.ShortInteger());
				Add(Depth = new TI.ByteInteger());
				Add(MoreFlags = new TI.Flags(BlamLib.TagInterface.FieldType.ByteFlags));
				Add(Type = new TI.Enum());
				Add(Format = new TI.Enum());
				Add(Flags = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
				Add(RegistrationPoint = new TI.Point2D());
				Add(MipmapCount = new TI.ByteInteger());
				Add(new TI.Skip(1 + //LowDetailMipmapCount?
					1 + // (just interleaved?) resource index
					1)); //
				//Add(LowDetailMipmapCount = new TI.ShortInteger());
				Add(PixelsOffset = new TI.LongInteger());

				Add(new TI.Skip(4 + // pixels size
					4 + 4));

				Add(new TI.LongInteger());

				Add(new TI.Skip(4));
			}
Пример #57
0
			public structure_bsp_instanced_geometry_definition_block()
			{
				Add(Unknown00 = new TI.LongInteger());
				Add(BoundingSphereCenter = new TI.RealPoint3D());
				Add(BoundingSphereRadis = new TI.Real());
				Add(CollisionInfo = new TI.Struct<global_collision_bsp_struct>(this));

				// collision_bsp_physics_struct
				Add(/*bsps = */ new TI.Block<global_collision_bsp_block>(this, 0));
				Add(new TI.Block<mopp_code_block>(this, 0));
				Add(TI.UnknownPad.BlockHalo3); // [0x?] (physics related)

				Add(Unknown98 = new TI.Block<block_98>(this, 0));
				Add(UnknownA4 = new TI.Block<block_A4>(this, 0));
				Add(UnknownB0 = new TI.ShortInteger());
				Add(UnknownB2 = new TI.ShortInteger());
				Add(UnknownB4 = new TI.Real());
			}
Пример #58
0
		public sound_permutation_chunk_block() : base(3)
		{
			Add(FileOffset = new TI.LongInteger());
			Add(SizeFlags = new TI.LongInteger());
			Add(RuntimeIndex = new TI.LongInteger());
		}
Пример #59
0
		public sound_permutations_block() : base(7)
		{
			Add(Name = new TI.StringId());
			Add(SkipFraction = new TI.Real(TI.FieldType.RealFraction));
			Add(Gain = new TI.Real());
			Add(SamplesSize = new TI.LongInteger());
			Add(RawInfo = new TI.BlockIndex());
			Add(LanguageNeutralMilliseconds = new TI.ShortInteger());
			Add(Chunks = new TI.Block<sound_permutation_chunk_block>(this, 32767));
		}
Пример #60
0
			public bitmap_cache_resource_data_block()
			{
				Add(ResourceIndex = new TI.LongInteger());
				Add(new TI.Skip(4));
			}