예제 #1
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 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));
 }
예제 #3
0
        public bitmap_group() : base(25)
        {
            Add(Type   = new TI.Enum());
            Add(Format = new TI.Enum());
            Add(Usage  = new TI.Enum());
            Add(Flags  = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));

            Add(DetailFadeFactor = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
            Add(SharpenAmount    = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
            Add(BumpHeight       = new TI.Real());

            Add(SpriteBudgetSize  = new TI.Enum());
            Add(SpriteBudgetCount = new TI.ShortInteger());

            Add(ColorPlateWidth          = new TI.ShortInteger());
            Add(ColorPlateHeight         = new TI.ShortInteger());
            Add(CompressedColorPlateData = new TI.Data(this));
            Add(ProcessedPixelData       = new TI.Data(this, BlamLib.TagInterface.DataType.Bitmap));

            Add(BlurFilterSize = new TI.Real());
            Add(AlphaBias      = new TI.Real());
            Add(MipmapCount    = new TI.ShortInteger());

            Add(SpriteUsage   = new TI.Enum());
            Add(SpriteSpacing = new TI.ShortInteger());
            Add(ForceFormat   = new TI.Enum());

            Add(Sequences = new TI.Block <bitmap_group_sequence_block>(this, 256));
            Add(Bitmaps   = new TI.Block <bitmap_data_block>(this, 65536));

            AddPc(ColorCompressionQuality = new TI.ByteInteger());
            AddPc(AlphaCompressionQuality = new TI.ByteInteger());
            AddPc(Overlap          = new TI.ByteInteger());
            AddPc(ColorSubsampling = new TI.Enum(BlamLib.TagInterface.FieldType.ByteEnum));
        }
예제 #4
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));
                }
예제 #5
0
 public hud_message_text_group() : base(4)
 {
     Add(TextData        = new TI.Data(this));
     Add(MessageElements = new TI.Block <hud_message_elements_block>(this, 8192));
     Add(Messages        = new TI.Block <hud_messages_block>(this, 1024));
     Add(new TI.Pad(84));
 }
예제 #6
0
 public input_device_defaults_group() : base(4)
 {
     Add(DeviceType = new TI.Enum());
     Add(Flags      = new TI.Flags(TI.FieldType.WordFlags));
     Add(DeviceId   = new TI.Data(this));
     Add(Profile    = new TI.Data(this));
 }
예제 #7
0
        public tag_database_entry_block() : base(4)
        {
            Add(Name           = new TI.Data(this, TI.DataType.String));
            Add(GroupTag       = new TI.Tag());
            Add(HandleDataHigh = new TI.LongInteger());
            Add(Flags          = new TI.LongInteger());
            Add(ChildIds       = new TI.Block <tag_database_entry_reference_block>(this, 65535));
            Add(ReferenceIds   = new TI.Block <tag_database_entry_reference_block>(this, 65535));

            Add(new TI.Pad(12));
        }
예제 #8
0
 public sound_permutation_raw_info_block() : base(8)
 {
     Add(SkipFractionName = new TI.StringId());
     Add(Samples          = new TI.Data(this));
     Add(MouthData        = new TI.Data(this));
     Add(LipsyncData      = new TI.Data(this));
     Add(Markers          = new TI.Block <sound_permutation_marker_block>(this, 65535));
     Add(Compression      = new TI.Enum());
     Add(Language         = new TI.Enum(TI.FieldType.ByteEnum));
     Add(TI.Pad.Byte);
 }
예제 #9
0
        public multilingual_unicode_string_list_group() : base(20)
        {
            Add(StringRefs = new TI.Block <multilingual_unicode_string_reference_block>(this, 0));
            Add(BlockC     = new TI.Block <multilingual_unicode_string_list_C_block>(this, 0));
            Add(StringData = new TI.Data(this));

            LanguageHandles = new TI.LongInteger[(int)LanguageType.kMax];
            for (int x = 0; x < LanguageHandles.Length; x++)
            {
                Add(LanguageHandles[x] = new TI.LongInteger());
            }
        }
 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());
 }
예제 #11
0
파일: Sound.cs 프로젝트: CodeAsm/open-sauce
				public sound_permutations_block() : base(9)
				{
					Add(Name = new TI.String());
					Add(SkipFraction = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
					Add(Gain = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
					Add(Compression = new TI.Enum());
					Add(NextPermutationIndex = new TI.ShortInteger());
					Add(new TI.Pad(20));
					Add(Samples = new TI.Data(this, BlamLib.TagInterface.DataType.Sound));
					Add(Mouth = new TI.Data(this));
					Add(SubtitleData = new TI.Data(this));
				}
예제 #12
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());
			}
예제 #13
0
 public sound_permutations_block() : base(9)
 {
     Add(Name                 = new TI.String());
     Add(SkipFraction         = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
     Add(Gain                 = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
     Add(Compression          = new TI.Enum());
     Add(NextPermutationIndex = new TI.ShortInteger());
     Add(new TI.Pad(20));
     Add(Samples      = new TI.Data(this, BlamLib.TagInterface.DataType.Sound));
     Add(Mouth        = new TI.Data(this));
     Add(SubtitleData = new TI.Data(this));
 }
예제 #14
0
        public static void InteropReadStringData(Blam.CacheFile cf, int cache_offset,
                                                 out Util.StringPool strings_pool, byte k_pad_character)
        {
            strings_pool = new Util.StringPool();

            cf.InputStream.Seek(cache_offset, System.IO.SeekOrigin.Begin);
            var hs_strings = new BlamLib.TagInterface.Data();

            hs_strings.ReadHeader(cf);
            if (hs_strings.Size == 0)
            {
                return;
            }
            hs_strings.Read(cf);

            int  offset = 0;
            byte btchar = 0;

            while (true)
            {
                var stringEntry = new System.Text.StringBuilder();
                try
                {
                    do
                    {
                        if (offset < hs_strings.Size)
                        {
                            btchar = hs_strings[offset];

                            if (btchar != 0)
                            {
                                stringEntry.Append((char)btchar);
                            }
                        }

                        offset++;
                    } while ((btchar != 0 && btchar != k_pad_character) && offset < hs_strings.Size);
                }
                catch (IndexOutOfRangeException ex)
                {
                    throw new BlamLib.Debug.ExceptionLog("Offset was outside the bounds of the data array. {0}{1}", BlamLib.Program.NewLine, ex);
                }

                strings_pool.Add(stringEntry.ToString());

                if (btchar == k_pad_character)
                {
                    break;
                }
            }
        }
예제 #15
0
        public cache_file_resource_gestalt_group() : base(41)
        {
            Add(CacheType = new TI.Enum());
            Add(Flags     = TI.Flags.Word);
            /*0x04*/ Add(ResourceTypes          = new TI.Block <resource_type_block>(this, 0));
            /*0x10*/ Add(ResourceStructureTypes = new TI.Block <resource_structure_type_block>(this, 0));
            /*0x1C*/ Add(ResourceLayoutTable    = new TI.Struct <cache_file_resource_layout_table>(this));
            /*0x58*/ Add(TagResources           = new TI.Block <cache_file_resource_gestalt_tag_resource_block>(this, 0));
            /*0x64*/ Add(Block64 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // general
            /*0x70*/ Add(Block70 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] global
            /*0x7C*/ Add(Block7C = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78]? attached?
            /*0x88*/ Add(Block88 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] unattached // same structure as tag block two fields above
            /*0x94*/ Add(Block94 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] dvd_forbidden // ''
            /*0xA0*/ Add(BlockA0 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] dvd_always_streaming // ''
            /*0xAC*/ Add(BlockAC = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] bsp zones // '' -
            /*0xB8*/ Add(BlockB8 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] bsp zones // ''
            /*0xC4*/ Add(BlockC4 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] bsp zones // ''
            /*0xD0*/ Add(BlockD0 = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] ? (ex. '030la_highway') // ''
            /*0xDC*/ Add(BlockDC = new TI.Block <cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] zone sets // ''
            /*0xE8*/ Add(TI.UnknownPad.BlockHalo3);                                               // tag block [0x?]?
            /*0xF4*/ Add(TI.UnknownPad.BlockHalo3);                                               // tag block [0x?]?
            /*0x100*/ Add(Block100      = new TI.Block <cache_file_resource_gestalt_100_block>(this, 0));
            /*0x10C*/ Add(BspReferences = new TI.Block <field_block <TI.TagReference> >(this, 0));
            /*0x118*/ Add(TI.UnknownPad.BlockHalo3);                   // tag block [0x?]
            /*0x124*/ Add(TI.UnknownPad.BlockHalo3);                   // tag block [0x?]
            /*0x130*/ Add(TI.UnknownPad.BlockHalo3);                   // tag block [0x?]
            /*0x13C*/ Add(ResourceDefinitionData = new TI.Data(this)); // tag data
            /*0x150*/ Add(new TI.UnknownPad(20));                      // unknown [0x14]
            // dword
            // long
            // long
            // long
            // long (related to the UnknownOffset in 'cache_file_resource_gestalt_tag_resource_block', size of the buffer it refers to)
            /*0x164*/ Add(Block164 = new TI.Block <cache_file_resource_gestalt_164_block>(this, 0));
            /*0x170*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x17C*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x188*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x194*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x1A0*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x1AC*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x1B8*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x1C4*/ Add(TI.UnknownPad.BlockHalo3);                                         // tag block [0x?]?
            /*0x1D0*/ Add(Block1D0 = new TI.Block <field_block <TI.LongInteger> >(this, 0)); // datum index in nature
            /*0x1DC*/ Add(Block1DC = new TI.Block <cache_file_resource_gestalt_1DC_block>(this, 0));
            /*0x1E8*/ Add(Block1E8 = new TI.Block <cache_file_resource_gestalt_1E8_block>(this, 0));
            /*0x1F4*/ Add(Block1F4 = new TI.Block <cache_file_resource_gestalt_1F4_block>(this, 0));
            /*0x200*/ Add(Block200 = new TI.Block <cache_file_resource_gestalt_200_block>(this, 0));
            Add(MapId = Blam.MapId.SkipField);             // id used for mapinfo files

            //BspReferences.Definition.Value.ResetReferenceGroupTag(TagGroups.sbsp);
        }
 public resource() : base(11)
 {
     Add(Unknown00 = new TI.LongInteger());
     Add(Unknown04 = new TI.LongInteger());
     Add(Unknown08 = new TI.ShortInteger());
     Add(Unknown0A = new TI.ShortInteger());
     Add(Unknown0C = new TI.ByteInteger());
     Add(Unknown0D = new TI.ByteInteger());
     Add(Unknown0E = new TI.ShortInteger());
     Add(Unknown10 = new TI.LongInteger());
     Add(Unknown14 = new TI.LongInteger());
     Add(Unknown18 = new TI.LongInteger());
     Add(Data      = new TI.Data(this));
 }
예제 #17
0
 public sound_encoded_dialogue_section_block() : base(3)
 {
     Add(EncodedData       = new TI.Data(this));
     Add(SoundDialogueInfo = new TI.Block <sound_permutation_dialogue_info_block>(this, 288));
     Add(TI.Pad.BlockHalo3);             // will have the same count as SoundDialogueInfo
     // tag block [0x28]
     // real[4]
     // dword[3] // probably some more reals? only seen zeros here
     // tag block [0x8]
     // word
     // word
     // word
     // word
 }
예제 #18
0
 public font_group() : base(13)
 {
     Add(Flags           = new TI.Flags());
     Add(AscendingHeight = new TI.ShortInteger());
     Add(DecendingHeight = new TI.ShortInteger());
     Add(LeadingHeight   = new TI.ShortInteger());
     Add(LeadinWidth     = new TI.ShortInteger());
     Add(new TI.Pad(36));
     Add(CharacterTables = new TI.Block <font_character_tables_block>(this, 256));
     Add(Bold            = new TI.TagReference(this, TagGroups.font));
     Add(Italic          = new TI.TagReference(this, TagGroups.font));
     Add(Condense        = new TI.TagReference(this, TagGroups.font));
     Add(Underline       = new TI.TagReference(this, TagGroups.font));
     Add(Characters      = new TI.Block <character_block>(this, 20000));
     Add(Pixels          = new TI.Data(this));
 }
예제 #19
0
        public multilingual_unicode_string_list_group() : base(11)
        {
            Add(StringRefs = new TI.Block <multilingual_unicode_string_reference_block>(this, 9216));
            Add(StringData = new TI.Data(this));

            LanguageHandles = new TI.LongInteger[(int)LanguageType.kMax];
            for (int x = 0; x < LanguageHandles.Length; x++)
            {
                Add(LanguageHandles[x] = new TI.LongInteger());
            }

            // Alpha layout (stored in the actual tag data)):
            // tag block [languages]
            // tag block [strings]
            // string id [name]
            // tag data [string data]
        }
예제 #20
0
 public meter_group() : base(16)
 {
     Add(Flags                = new TI.Flags());
     Add(StencilBitmap        = new TI.TagReference(this, TagGroups.bitm));
     Add(SourceBitmap         = new TI.TagReference(this, TagGroups.bitm));
     Add(StencilSequenceIndex = new TI.ShortInteger());
     Add(SourceSequenceIndex  = new TI.ShortInteger());
     Add(new TI.Pad(16 + 4));
     Add(InterpolateColors = new TI.Enum());
     Add(AnchorColors      = new TI.Enum());
     Add(new TI.Pad(8));
     Add(EmptyColor = new TI.RealColor(TI.FieldType.RealArgbColor));
     Add(FullColor  = new TI.RealColor(TI.FieldType.RealArgbColor));
     Add(new TI.Pad(20));
     Add(UnmaskDist = new TI.Real());
     Add(MaskDist   = new TI.Real());
     Add(new TI.Pad(20));
     Add(EncodedStencil = new TI.Data(this));
 }
예제 #21
0
		public static void InteropReadStringData(Blam.CacheFile cf, int cache_offset, 
			out Util.StringPool strings_pool, byte k_pad_character)
		{
			strings_pool = new Util.StringPool();

			cf.InputStream.Seek(cache_offset, System.IO.SeekOrigin.Begin);
			var hs_strings = new BlamLib.TagInterface.Data();
			hs_strings.ReadHeader(cf);
			if (hs_strings.Size == 0) return;
			hs_strings.Read(cf);

			int offset = 0;
			byte btchar = 0;
			while (true)
			{
				var stringEntry = new System.Text.StringBuilder();
				try
				{
					do
					{
						if (offset < hs_strings.Size)
						{
							btchar = hs_strings[offset];

							if (btchar != 0) stringEntry.Append((char)btchar);
						}

						offset++;

					} while ((btchar != 0 && btchar != k_pad_character) && offset < hs_strings.Size);
				}
				catch (IndexOutOfRangeException ex)
				{
					throw new BlamLib.Debug.ExceptionLog("Offset was outside the bounds of the data array. {0}{1}", BlamLib.Program.NewLine, ex);
				}

				strings_pool.Add(stringEntry.ToString());

				if (btchar == k_pad_character) break;
			}
		}
예제 #22
0
파일: Hud.cs 프로젝트: CodeAsm/open-sauce
		public meter_group() : base(16)
		{
			Add(Flags = new TI.Flags());
			Add(StencilBitmap = new TI.TagReference(this, TagGroups.bitm));
			Add(SourceBitmap = new TI.TagReference(this, TagGroups.bitm));
			Add(StencilSequenceIndex = new TI.ShortInteger());
			Add(SourceSequenceIndex = new TI.ShortInteger());
			Add(new TI.Pad(16 + 4));
			Add(InterpolateColors = new TI.Enum());
			Add(AnchorColors = new TI.Enum());
			Add(new TI.Pad(8));
			Add(EmptyColor = new TI.RealColor(TI.FieldType.RealArgbColor));
			Add(FullColor = new TI.RealColor(TI.FieldType.RealArgbColor));
			Add(new TI.Pad(20));
			Add(UnmaskDist = new TI.Real());
			Add(MaskDist = new TI.Real());
			Add(new TI.Pad(20));
			Add(EncodedStencil = new TI.Data(this));
		}
예제 #23
0
        public structure_bsp_group() : base(52)
        {
            Add(LightmapBitmaps = new TI.TagReference(this, TagGroups.bitm));
            Add(VehicleFloor    = new TI.Real());
            Add(VehicleCeiling  = new TI.Real());
            Add(new TI.Pad(20));

            Add(DefaultAmbientColor = new TI.RealColor());
            Add(new TI.Pad(4));

            Add(DefaultDistantLight0Color          = new TI.RealColor());
            Add(DefaultDistantLight0ColorDirection = new TI.RealVector3D());
            Add(DefaultDistantLight1Color          = new TI.RealColor());
            Add(DefaultDistantLightColor1Direction = new TI.RealVector3D());
            Add(new TI.Pad(12));

            Add(DefaultReflectionTint = new TI.RealColor(BlamLib.TagInterface.FieldType.RealArgbColor));
            Add(DefaultShadowVector   = new TI.RealVector3D());
            Add(DefaultShadowColor    = new TI.RealColor());
            Add(new TI.Pad(4));

            Add(CollisionMaterials = new TI.Block <structure_collision_materials_block>(this, 512));
            Add(CollisionBsp       = new TI.Block <collision_bsp_block>(this, 1));
            Add(Nodes = new TI.Block <structure_bsp_node_block>(this, 131072));

            Add(WorldBoundsX = new TI.RealBounds());
            Add(WorldBoundsY = new TI.RealBounds());
            Add(WorldBoundsZ = new TI.RealBounds());

            Add(Leaves       = new TI.Block <structure_bsp_leaf_block>(this, 65536));
            Add(LeafSurfaces = new TI.Block <structure_bsp_surface_reference_block>(this, 262144));
            Add(Surfaces     = new TI.Block <structure_bsp_surface_block>(this, 131072));

            Add(Lightmaps = new TI.Block <structure_bsp_lightmap_block>(this, 128));
            Add(new TI.Pad(12));

            Add(LensFlares       = new TI.Block <structure_bsp_lens_flare_block>(this, 256));
            Add(LensFlareMarkers = new TI.Block <structure_bsp_lens_flare_marker_block>(this, 65536));

            Add(Clusters       = new TI.Block <structure_bsp_cluster_block>(this, 8192));
            Add(ClusterData    = new TI.Data(this));
            Add(ClusterPortals = new TI.Block <structure_bsp_cluster_portal_block>(this, 512));
            Add(new TI.Pad(12));

            Add(BreakableSurfaces = new TI.Block <structure_bsp_breakable_surface_block>(this, 256));
            Add(FogPlanes         = new TI.Block <structure_bsp_fog_plane_block>(this, 32));
            Add(FogRegions        = new TI.Block <structure_bsp_fog_region_block>(this, 32));
            Add(FogPalette        = new TI.Block <structure_bsp_fog_palette_block>(this, 32));
            Add(new TI.Pad(24));

            Add(WeatherPalette   = new TI.Block <structure_bsp_weather_palette_block>(this, 32));
            Add(WeatherPolyhedra = new TI.Block <structure_bsp_weather_polyhedron_block>(this, 32));
            Add(new TI.Pad(24));

            Add(PathfindingSurfaces = new TI.Block <field_block <TI.ByteInteger> >(this, 131072));
            Add(PathfindingEdges    = new TI.Block <field_block <TI.ByteInteger> >(this, 262144));

            Add(BackgroundSoundPalette  = new TI.Block <structure_bsp_background_sound_palette_block>(this, 64));
            Add(SoundEnvironmentPalette = new TI.Block <structure_bsp_sound_environment_palette_block>(this, 64));
            Add(SoundPASData            = new TI.Data(this));
            Add(new TI.Pad(24));

            Add(Markers       = new TI.Block <structure_bsp_marker_block>(this, 1024));
            Add(DetailObjects = new TI.Block <structure_bsp_detail_object_data_block>(this, 1));
            Add(RuntimeDecals = new TI.Block <structure_bsp_runtime_decal_block>(this, 6144));
            Add(new TI.Pad(8 +

                                // leaf_map
                           4)); // tag_block*, sizeof(0xC)
            Add(LeafMapLeaves  = new TI.Block <global_map_leaf_block>(this, 65536));
            Add(LeafMapPortals = new TI.Block <global_leaf_portal_block>(this, 524288));
        }
예제 #24
0
		public cache_file_resource_gestalt_group() : base(41)
		{
			Add(CacheType = new TI.Enum());
			Add(Flags = TI.Flags.Word);
			/*0x04*/Add(ResourceTypes = new TI.Block<resource_type_block>(this, 0));
			/*0x10*/Add(ResourceStructureTypes = new TI.Block<resource_structure_type_block>(this, 0));
			/*0x1C*/Add(ResourceLayoutTable = new TI.Struct<cache_file_resource_layout_table>(this));
			/*0x58*/Add(TagResources = new TI.Block<cache_file_resource_gestalt_tag_resource_block>(this, 0));
			/*0x64*/Add(Block64 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // general 
			/*0x70*/Add(Block70 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] global
			/*0x7C*/Add(Block7C = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78]? attached?
			/*0x88*/Add(Block88 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] unattached // same structure as tag block two fields above
			/*0x94*/Add(Block94 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] dvd_forbidden // ''
			/*0xA0*/Add(BlockA0 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] dvd_always_streaming // ''
			/*0xAC*/Add(BlockAC = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] bsp zones // '' -
			/*0xB8*/Add(BlockB8 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] bsp zones // ''
			/*0xC4*/Add(BlockC4 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] bsp zones // ''
			/*0xD0*/Add(BlockD0 = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] ? (ex. '030la_highway') // ''
			/*0xDC*/Add(BlockDC = new TI.Block<cache_file_resource_gestalt_64_block>(this, 0)); // tag block [0x78] zone sets // ''
			/*0xE8*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0xF4*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x100*/Add(Block100 = new TI.Block<cache_file_resource_gestalt_100_block>(this, 0));
			/*0x10C*/Add(BspReferences = new TI.Block<field_block<TI.TagReference>>(this, 0));
			/*0x118*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			/*0x124*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			/*0x130*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			/*0x13C*/Add(ResourceDefinitionData = new TI.Data(this)); // tag data
			/*0x150*/Add(new TI.UnknownPad(20)); // unknown [0x14]
				// dword
				// long
				// long
				// long
				// long (related to the UnknownOffset in 'cache_file_resource_gestalt_tag_resource_block', size of the buffer it refers to)
			/*0x164*/Add(Block164 = new TI.Block<cache_file_resource_gestalt_164_block>(this, 0));
			/*0x170*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x17C*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x188*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x194*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x1A0*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x1AC*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x1B8*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x1C4*/Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			/*0x1D0*/Add(Block1D0 = new TI.Block<field_block<TI.LongInteger>>(this, 0)); // datum index in nature
			/*0x1DC*/Add(Block1DC = new TI.Block<cache_file_resource_gestalt_1DC_block>(this, 0));
			/*0x1E8*/Add(Block1E8 = new TI.Block<cache_file_resource_gestalt_1E8_block>(this, 0));
			/*0x1F4*/Add(Block1F4 = new TI.Block<cache_file_resource_gestalt_1F4_block>(this, 0));
			/*0x200*/Add(Block200 = new TI.Block<cache_file_resource_gestalt_200_block>(this, 0));
			Add(MapId = Blam.MapId.SkipField); // id used for mapinfo files

			//BspReferences.Definition.Value.ResetReferenceGroupTag(TagGroups.sbsp);
		}
예제 #25
0
		public scenario_group()
		{
			Add(Type = new TI.Enum());
			Add(Flags = TI.Flags.Word);
			Add(/*map id = */ MapId.SkipField); // id used for mapinfo files
			Add(new TI.Skip(4));
			Add(SandboxBuget = new TI.Real());
			Add(StructureBsps = new TI.Block<scenario_structure_bsp_reference_block>(this, 16));
			Add(/*DontUse = */new TI.TagReference(this, TagGroups.sbsp)); // Its a tag reference here, but IDK if its for THIS exactly...
			Add(Skies = new TI.Block<scenario_sky_reference_block>(this, 32));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x2C]
				// long
				// long
				// tag block [0x4]
				// tag block [0x54]
					// tag block [0xC]
						// tag block [0x20]
							// tag block [0x4]
							// long
							// long
					// tag block [0xC]
						// tag block [0x20]
							// tag block [0x4]
							// long
							// long
					// tag block [0x1] // most likely a bitvector...
					// tag block [0x1] // most likely a bitvector...
					// tag block [0x?] // may be an unused tag block
					// tag block [0x4]
					// tag block [0xC]
						// unknown [0xC]
				// tag block [0x18]
					// unknown [0x18]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x64] zone sets
				// unknown [0x28]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x24] zone set related
				// string id [name]
				// dword
				// dword (only seen as zero)
				// dword
				// dword
				// dword
				// dword
				// long block index? (only seen as NONE)
				// long block index? (probably to the tag block before this one)
			Add(TI.UnknownPad.BlockHalo3); // tag block [0xC] zone set related
				// string id [name]
				// dword (seems to equal 1<<element_index)
				// dword
			Add(new TI.UnknownPad(0x44)); // unknown [0x44]
			#region scenario objects
			Add(ObjectNames = new TI.Block<scenario_object_names_block>(this, 0)); // I'm sure the max is now over 640...
			Add(TI.UnknownPad.BlockHalo3); // tag block [0xB4] Scenery
			Add(SceneryPalette = new TI.Block<scenario_scenery_palette_block>(this, 0)); // I'm sure the max is now over 256...
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x74] Bipeds
			Add(BipedsPalette = new TI.Block<scenario_biped_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0xA8] Vehicles
			Add(VehiclePalette = new TI.Block<scenario_vehicle_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x8C] Equipment
			Add(EquipmentPalette = new TI.Block<scenario_equipment_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0xA8] Weapons
			Add(WeaponPalette = new TI.Block<scenario_weapon_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x28] Device groups
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x70?] Machines
			Add(MachinePalette = new TI.Block<scenario_machine_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Terminals
			Add(TerminalPalette = new TI.Block<scenario_terminal_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x64?] Controls
			Add(ControlPalette = new TI.Block<scenario_control_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x70] Sound Scenery
			Add(SoundSceneryPalette = new TI.Block<scenario_sound_scenery_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Giants
			Add(GiantsPalette = new TI.Block<scenario_giant_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Effect Scenery
			Add(EffectSceneryPalette = new TI.Block<scenario_effect_scenery_palette_block>(this, 0)); // ''
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x70] Light Volumes
			Add(LightVolumesPalette = new TI.Block<scenario_light_palette_block>(this, 0)); // ''
			#endregion
			Add(/*Sandbox vehicles = */new TI.Block<scenario_sandbox_vehicle_settings_block>(this, 0)); // 0x1E8
			Add(/*Sandbox weapons = */new TI.Block<scenario_sandbox_weapon_settings_block>(this, 0));
			Add(/*Sandbox equipment = */new TI.Block<scenario_sandbox_equipment_settings_block>(this, 0));
			Add(/*Sandbox scenery = */new TI.Block<scenario_sandbox_scenery_settings_block>(this, 0));
			Add(/*Sandbox teleporters = */new TI.Block<scenario_sandbox_teleporter_settings_block>(this, 0));
			Add(/*Sandbox netgame flags = */new TI.Block<scenario_sandbox_netpoint_settings_block>(this, 0));
			Add(/*Sandbox spawns = */new TI.Block<scenario_sandbox_spawn_settings_block>(this, 0));
			Add(TI.UnknownPad.BlockHalo3); // 0x23C tag block [0xC], camera related
				// word
				// word?
				// string id
				// word
				// word?
			Add(/*PlayerStartingProfile = */new TI.Block<scenario_profiles_block>(this, 256));
			Add(/*PlayerStartingLocations = */new TI.Block<scenario_players_block>(this, 256));
			Add(/*KillTriggerVolumes = */new TI.Block<scenario_trigger_volume_block>(this, 256)); // 0x260
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x10], trigger volume related, zone set related
				// word
				// short block index
				// word
				// short block index
				// word
				// short block index
				// word
				// short block index
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x24] scenario_decal_systems_block 65536
			Add(/*DecalSystems = */new TI.Block<scenario_decal_system_palette_block>(this, 128));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(/*SquadGroups = */new TI.Block<squad_groups_block>(this, 100));
			Add(TI.UnknownPad.BlockHalo3); // Add(Squads = new TI.Block<squads_block>(this, 335));
			Add(/*Zones = */new TI.Block<zone_block>(this, 128));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] // Mission Scenes?
			Add(/*CharacterPalette = */new TI.Block<character_palette_block>(this, 64));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x6C]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
				// tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
				// unknown [0x54]
				// tag block [0x?]
				// tag block [0xC]
			#region scripting and cinematics
			Add(HsStringData = new TI.Data(this)); // 0x3E0, NOTE: memory region 3
			Add(HsScripts = new TI.Block<hs_scripts_block>(this, 1024));
			Add(HsGlobals = new TI.Block<hs_globals_block>(this, 256));
			Add(References = new TI.Block<hs_references_block>(this, 512));
			Add(SourceFiles = new TI.Block<H2.hs_source_files_block>(this, 8));
			Add(ScriptingData = new TI.Block<H2.cs_script_data_block>(this, 1));
			Add(CutsceneFlags = new TI.Block<scenario_cutscene_flag_block>(this, 512));
			Add(CutsceneCameraPoints = new TI.Block<scenario_cutscene_camera_point_block>(this, 512));
			Add(CutsceneTitles = new TI.Block<scenario_cutscene_title_block>(this, 128));
			Add(CustomObjectNames = new TI.TagReference(this, TagGroups.unic));
			Add(ChapterTitleText = new TI.TagReference(this, TagGroups.unic));
			Add(ScenarioResources = new TI.Block<scenario_resources_block>(this, 1));
			Add(HsUnitSeats = new TI.Block<hs_unit_seat_block>(this, 65536));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x2]
			Add(ScenarioKillTriggers = new TI.Block<scenario_kill_trigger_volumes_block>(this, 256)); // 0x498
			Add(HsScriptDatums = new TI.Block<syntax_datum_block>(this, 36864));
			#endregion
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Orders
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Triggers
			Add(/*BackgroundSoundPalette = */new TI.Block<structure_bsp_background_sound_palette_block>(this, 64));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] SoundEnvironmentPalette
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] WeatherPalette
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			version_construct_add_unnamed_null_blocks();
			Add(/*ScenarioClusterData = */new TI.Block<scenario_cluster_data_block>(this, 16));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			version_construct_add_unnamed_array();
			Add(/*SpawnData = */new TI.Block<scenario_spawn_data_block>(this, 1));
			Add(/*SoundEffectCollection = */new TI.TagReference(this, TagGroups.sfx_));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0xB0] Crates
			Add(/*CratesPalette = */new TI.Block<scenario_crate_palette_block>(this, 256));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x10] Flocks palette
				// tag reference
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x48] Flocks
			Add(/*Subtitles = */new TI.TagReference(this, TagGroups.unic));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Creatures
			Add(/*CreaturesPalette = */new TI.Block<scenario_creature_palette_block>(this, 256));
			Add(/*EditorFolders = */new TI.Block<g_scenario_editor_folder_block>(this, 32767));
			Add(/*TerritoryLocationNames = */new TI.TagReference(this, TagGroups.unic));
			Add(new TI.Pad(8));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] MissionDialogue
			Add(/*Objectives = */new TI.TagReference(this, TagGroups.unic));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] Interpolators
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] SharedReferences
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] ScreenEffectReferences
			Add(/*SimulationDefinitionTable = */new TI.Block<scenario_simulation_definition_table_block>(this, 0/*512*/)); // 0x6A4, 512 is no longer the maximum (i'm willing to bet 

			// everything after was added during halo3
			Add(/*Camere fx settings = */new TI.TagReference(this, TagGroups.cfxs));
			Add(/*? = */new TI.TagReference(this, TagGroups.sefc));
			Add(/*sky parameters= */new TI.TagReference(this, TagGroups.skya));
			Add(/*GlobalLighting = */new TI.TagReference(this, TagGroups.chmt));
			Add(/*lightmap = */new TI.TagReference(this, TagGroups.sLdT));
			Add(/*performance throttles = */new TI.TagReference(this, TagGroups.perf));
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x10]
				// real point 3d
				// short (index?) // or string id...
				// short (index?)
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?] (maybe 0x10)
				// real point 3d
				// string id
			Add(TI.UnknownPad.BlockHalo3); // tag block [0x?]?
		}
예제 #26
0
			public recorded_animation_block() : base(8)
			{
				Add(Name = new TI.String());
				Add(Version = new TI.ByteInteger());
				Add(RawAnimationData = new TI.ByteInteger());
				Add(UnitControlDataVersion = new TI.ByteInteger());
				Add(new TI.Pad(1));
				Add(LengthOfAnimation = new TI.ShortInteger());
				Add(new TI.Pad(2 + 4));
				Add(EventStream = new TI.Data(this));
			}
예제 #27
0
			public s_tag_d3d_index_buffer() : base(2)
			{
				Add(Unknown = new TI.LongInteger());
				Add(IndexBuffer = new TI.Data(this));
			}
예제 #28
0
			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));
			}
예제 #29
0
			public resource() : base(11)
			{
				Add(Unknown00 = new TI.LongInteger());
				Add(Unknown04 = new TI.LongInteger());
				Add(Unknown08 = new TI.ShortInteger());
				Add(Unknown0A = new TI.ShortInteger());
				Add(Unknown0C = new TI.ByteInteger());
				Add(Unknown0D = new TI.ByteInteger());
				Add(Unknown0E = new TI.ShortInteger());
				Add(Unknown10 = new TI.LongInteger());
				Add(Unknown14 = new TI.LongInteger());
				Add(Unknown18 = new TI.LongInteger());
				Add(Data = new TI.Data(this));
			}
예제 #30
0
		public structure_bsp_group() : base(52)
		{
			Add(LightmapBitmaps = new TI.TagReference(this, TagGroups.bitm));
			Add(VehicleFloor = new TI.Real());
			Add(VehicleCeiling = new TI.Real());
			Add(new TI.Pad(20));

			Add(DefaultAmbientColor = new TI.RealColor());
			Add(new TI.Pad(4));

			Add(DefaultDistantLight0Color = new TI.RealColor());
			Add(DefaultDistantLight0ColorDirection = new TI.RealVector3D());
			Add(DefaultDistantLight1Color = new TI.RealColor());
			Add(DefaultDistantLightColor1Direction = new TI.RealVector3D());
			Add(new TI.Pad(12));

			Add(DefaultReflectionTint = new TI.RealColor(BlamLib.TagInterface.FieldType.RealArgbColor));
			Add(DefaultShadowVector = new TI.RealVector3D());
			Add(DefaultShadowColor = new TI.RealColor());
			Add(new TI.Pad(4));

			Add(CollisionMaterials = new TI.Block<structure_collision_materials_block>(this, 512));
			Add(CollisionBsp = new TI.Block<collision_bsp_block>(this, 1));
			Add(Nodes = new TI.Block<structure_bsp_node_block>(this, 131072));

			Add(WorldBoundsX = new TI.RealBounds());
			Add(WorldBoundsY = new TI.RealBounds());
			Add(WorldBoundsZ = new TI.RealBounds());

			Add(Leaves = new TI.Block<structure_bsp_leaf_block>(this, 65536));
			Add(LeafSurfaces = new TI.Block<structure_bsp_surface_reference_block>(this, 262144));
			Add(Surfaces = new TI.Block<structure_bsp_surface_block>(this, 131072));

			Add(Lightmaps = new TI.Block<structure_bsp_lightmap_block>(this, 128));
			Add(new TI.Pad(12));

			Add(LensFlares = new TI.Block<structure_bsp_lens_flare_block>(this, 256));
			Add(LensFlareMarkers = new TI.Block<structure_bsp_lens_flare_marker_block>(this, 65536));

			Add(Clusters = new TI.Block<structure_bsp_cluster_block>(this, 8192));
			Add(ClusterData = new TI.Data(this));
			Add(ClusterPortals = new TI.Block<structure_bsp_cluster_portal_block>(this, 512));
			Add(new TI.Pad(12));

			Add(BreakableSurfaces = new TI.Block<structure_bsp_breakable_surface_block>(this, 256));
			Add(FogPlanes = new TI.Block<structure_bsp_fog_plane_block>(this, 32));
			Add(FogRegions = new TI.Block<structure_bsp_fog_region_block>(this, 32));
			Add(FogPalette = new TI.Block<structure_bsp_fog_palette_block>(this, 32));
			Add(new TI.Pad(24));

			Add(WeatherPalette = new TI.Block<structure_bsp_weather_palette_block>(this, 32));
			Add(WeatherPolyhedra = new TI.Block<structure_bsp_weather_polyhedron_block>(this, 32));
			Add(new TI.Pad(24));

			Add(PathfindingSurfaces = new TI.Block<field_block<TI.ByteInteger>>(this, 131072));
			Add(PathfindingEdges = new TI.Block<field_block<TI.ByteInteger>>(this, 262144));

			Add(BackgroundSoundPalette = new TI.Block<structure_bsp_background_sound_palette_block>(this, 64));
			Add(SoundEnvironmentPalette = new TI.Block<structure_bsp_sound_environment_palette_block>(this, 64));
			Add(SoundPASData = new TI.Data(this));
			Add(new TI.Pad(24));

			Add(Markers = new TI.Block<structure_bsp_marker_block>(this, 1024));
			Add(DetailObjects = new TI.Block<structure_bsp_detail_object_data_block>(this, 1));
			Add(RuntimeDecals = new TI.Block<structure_bsp_runtime_decal_block>(this, 6144));
			Add(new TI.Pad(8 + 
			
			// leaf_map
				4)); // tag_block*, sizeof(0xC)
			Add(LeafMapLeaves = new TI.Block<global_map_leaf_block>(this, 65536));
			Add(LeafMapPortals = new TI.Block<global_leaf_portal_block>(this, 524288));
		}
예제 #31
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));
				}
예제 #32
0
			public animation_pool_block() : base(29)
			{
				Add(Name = new TI.StringId());
				Add(NodeListChecksum = new TI.LongInteger());
				Add(ProductionChecksum = new TI.LongInteger());
				Add(ImportChecksum = new TI.LongInteger());
				Add(Type = new TI.Enum(TI.FieldType.ByteEnum));
				Add(FrameInfoType = new TI.Enum(TI.FieldType.ByteEnum));
				Add(BlendScreen = new TI.BlockIndex(TI.FieldType.ByteBlockIndex)); // 1 animation_blend_screen_block
				Add(NodeCount = new TI.ByteInteger());
				Add(FrameCount = new TI.ShortInteger());
				Add(InternalFlags = new TI.Flags(TI.FieldType.ByteFlags));
				Add(ProductionFlags = new TI.Flags(TI.FieldType.ByteFlags));

				Add(PlaybackFlags = new TI.Flags(TI.FieldType.WordFlags));
				Add(DesiredCompression = new TI.Enum(TI.FieldType.ByteEnum));
				Add(CurrentCompression = new TI.Enum(TI.FieldType.ByteEnum));
				Add(Weight = new TI.Real());

				AddXbox(ParentGraphIndex = new TI.LongInteger());
				AddXbox(ParentGraphBlockIndex = new TI.LongInteger());
				AddXbox(ParentGraphBlockOffset = new TI.LongInteger());
				AddXbox(ParentGraphStartingPoint = new TI.ShortInteger());
				
				Add(LoopFrameIndex = new TI.ShortInteger());
				Add(ParentAnimation = new TI.BlockIndex()); // 1 animation_pool_block
				Add(NextAnimation = new TI.BlockIndex()); // 1 animation_pool_block
				AddPc(new TI.Pad(2));
				Add(AnimationData = new TI.Data(this));

				Add(DataSizes = new TI.Struct<packed_data_sizes_struct>(this));
				Add(/*frame events = */ new TI.Block<animation_frame_event_block>(this, 512));
				Add(/*sound events = */ new TI.Block<animation_sound_event_block>(this, 512));
				Add(/*effect events = */ new TI.Block<animation_effect_event_block>(this, 512));
				Add(/*object-space parent nodes = */ new TI.Block<object_space_node_data_block>(this, 255));
			}
예제 #33
0
파일: Sound.cs 프로젝트: CodeAsm/open-sauce
		public sound_encoded_dialogue_section_block() : base(2)
		{
			Add(EncodedData = new TI.Data(this));
			Add(SoundDialogueInfo = new TI.Block<sound_permutation_dialogue_info_block>(this, 288));
		}
예제 #34
0
		public scenario_group() : base(69)
		{
			Add(DontUse = new TI.TagReference(this, TagGroups.sbsp));
			Add(WontUse = new TI.TagReference(this, TagGroups.sbsp));
			Add(CantUse = new TI.TagReference(this, TagGroups.sky_));
			Add(Skies = new TI.Block<field_block<TI.TagReference>>(this, 8));
			Add(Type = new TI.Enum());
			Add(Flags = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));
			Add(TI.Pad.BlockHalo1); // child scenarios, tag block data wasn't removed in stubbs for some reason
			Add(LocalNorth = new TI.Real(BlamLib.TagInterface.FieldType.Angle));
			Add(new TI.Pad(20 + 136));
			Add(PredictedResources = new TI.Block<predicted_resource_block>(this, 1024));
			Add(Functions = new TI.Block<scenario_function_block>(this, 32));
			Add(EditorData = new TI.Data(this));
			Add(Comments = new TI.Block<editor_comment_block>(this, 1024));
			Add(new TI.Pad(224));

			Add(ObjectNames = new TI.Block<scenario_object_names_block>(this, 512));
			Add(Scenery = new TI.Block<scenario_scenery_block>(this, 2000));
			Add(SceneryPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(Bipeds = new TI.Block<scenario_biped_block>(this, 128));
			Add(BipedPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(Vehicles = new TI.Block<scenario_vehicle_block>(this, 80));
			Add(VehiclePalette = new TI.Block<scenario_object_palette_block>(this, 100)); // silly bungie, why would u want to have up to 100 vehicle types to choose from when you could only possibly choose 80 of them?
			Add(Equipment = new TI.Block<scenario_equipment_block>(this, 256));
			Add(EquipmentPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(Weapons = new TI.Block<scenario_weapon_block>(this, 128));
			Add(WeaponsPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(DeviceGroups = new TI.Block<device_group_block>(this, 128));
			Add(Machines = new TI.Block<scenario_machine_block>(this, 400));
			Add(MachinesPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(Controls = new TI.Block<scenario_control_block>(this, 100));
			Add(ControlsPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(LightFixtures = new TI.Block<scenario_light_fixture_block>(this, 500));
			Add(LightFixturesPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(SoundScenery = new TI.Block<scenario_sound_scenery_block>(this, 256));
			Add(SoundSceneryPalette = new TI.Block<scenario_object_palette_block>(this, 100));
			Add(new TI.Pad(84));

			Add(PlayerStartingProfile = new TI.Block<scenario_profiles_block>(this, 256));
			Add(PlayerStartingLocations = new TI.Block<scenario_players_block>(this, 256));
			Add(TriggerVolumes = new TI.Block<scenario_trigger_volume_block>(this, 256));
			Add(RecordedAnimations = new TI.Block<recorded_animation_block>(this, 1024));
			Add(NetgameFlags = new TI.Block<scenario_netgame_flags_block>(this, 200));
			Add(NetgameEquipment = new TI.Block<scenario_netgame_equipment_block>(this, 200));
			Add(StartingEquipment = new TI.Block<scenario_starting_equipment_block>(this, 200));
			Add(BspSwitchTriggerVolumes = new TI.Block<scenario_bsp_switch_trigger_volume_block>(this, 256));
			Add(Decals = new TI.Block<scenario_decals_block>(this, 65536));
			Add(DecalPalette = new TI.Block<field_block<TI.TagReference>>(this, 128));
			Add(DetailObjectCollectionPalette = new TI.Block<field_block<TI.TagReference>>(this, 32));
			Add(new TI.Pad(84));

			Add(ActorPalette = new TI.Block<field_block<TI.TagReference>>(this, 64));
			Add(Encounters = new TI.Block<encounter_block>(this, 128));
			Add(CommandLists = new TI.Block<ai_command_list_block>(this, 256));
			Add(AiAnimationReferences = new TI.Block<ai_animation_reference_block>(this, 128));
			Add(AiScriptReferences = new TI.Block<ai_script_reference_block>(this, 128));
			Add(AiRecordingReferences = new TI.Block<ai_recording_reference_block>(this, 128));
			Add(AiConverstaions = new TI.Block<ai_conversation_block>(this, 128));

			Add(ScriptSyntaxData = new TI.Data(this, BlamLib.TagInterface.DataType.ScriptNode));
			Add(ScriptStringData = new TI.Data(this));
			Add(Scripts = new TI.Block<hs_scripts_block>(this, 512));
			Add(Globals = new TI.Block<hs_globals_block>(this, 128));
			Add(References = new TI.Block<hs_references_block>(this, 256));
			Add(SourceFiles = new TI.Block<hs_source_files_block>(this, 8));
			Add(new TI.Pad(24));

			Add(CutsceneFlags = new TI.Block<scenario_cutscene_flag_block>(this, 512));
			Add(CutsceneCameraPoints = new TI.Block<scenario_cutscene_camera_point_block>(this, 512));
			Add(CutsceneTitles = new TI.Block<scenario_cutscene_title_block>(this, 64));
			Add(new TI.Pad(108));

			Add(CustomObjectNames = new TI.TagReference(this, TagGroups.ustr));
			Add(IngameHelpText = new TI.TagReference(this, TagGroups.ustr));
			Add(HudMessages = new TI.TagReference(this, TagGroups.hmt_));
			Add(StructureBsps = new TI.Block<scenario_structure_bsps_block>(this, 16));

			//Skies.Definition.Value.ResetReferenceGroupTag(TagGroups.sky_);
			//SceneryPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.scen);
			//BipedPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.bipd);
			//VehiclePalette.Definition.Name.ResetReferenceGroupTag(TagGroups.vehi);
			//EquipmentPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.eqip);
			//WeaponsPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.weap);
			//MachinesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.mach);
			//ControlsPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.ctrl);
			//LightFixturesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.lifi);
			//SoundSceneryPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.ssce);
			//DecalPalette.Definition.Value.ResetReferenceGroupTag(TagGroups.deca);
			//ActorPalette.Definition.Value.ResetReferenceGroupTag(TagGroups.actr);
			//DetailObjectCollectionPalette.ResetReferenceGroupTag(TagGroups.dobc);
		}
예제 #35
0
		public sound_resource_definition() : base(1)
		{
			Add(Data = new TI.Data(this, TI.DataType.Sound));
		}
예제 #36
0
		public global_geometry_point_data_struct() : base(4)
		{
			Add(RawPoints = new TI.Block<global_geometry_raw_point_block>(this, 32767));
			Add(RuntimePointData = new TI.Data(this));
			Add(RigidPointGroups = new TI.Block<global_geometry_rigid_point_group_block>(this, 32767));
			Add(VertexPointIndices = new TI.Block<global_geometry_point_data_index_block>(this, 32767));
		}
예제 #37
0
 public sound_encoded_dialogue_section_block() : base(2)
 {
     Add(EncodedData       = new TI.Data(this));
     Add(SoundDialogueInfo = new TI.Block <sound_permutation_dialogue_info_block>(this, 288));
 }
예제 #38
0
파일: Misc.cs 프로젝트: CodeAsm/open-sauce
		public font_group() : base(13)
		{
			Add(Flags = new TI.Flags());
			Add(AscendingHeight = new TI.ShortInteger());
			Add(DecendingHeight = new TI.ShortInteger());
			Add(LeadingHeight = new TI.ShortInteger());
			Add(LeadinWidth = new TI.ShortInteger());
			Add(new TI.Pad(36));
			Add(CharacterTables = new TI.Block<font_character_tables_block>(this, 256));
			Add(Bold = new TI.TagReference(this, TagGroups.font));
			Add(Italic = new TI.TagReference(this, TagGroups.font));
			Add(Condense = new TI.TagReference(this, TagGroups.font));
			Add(Underline = new TI.TagReference(this, TagGroups.font));
			Add(Characters = new TI.Block<character_block>(this, 20000));
			Add(Pixels = new TI.Data(this));
		}
예제 #39
0
		private void version1_construct()
		{
			#region misc
			Add(DontUse = new TI.TagReference(this, TagGroups.sbsp));
			Add(/*Will not use.*/ new TI.TagReference(this, TagGroups.sbsp));
			Add(/*Cannot use.*/ new TI.TagReference(this, TagGroups.sky_));
			Add(Skies = new TI.Block<scenario_sky_reference_block>(this, 32));
			Add(Type = new TI.Enum());
			Add(Flags = new TI.Flags(TI.FieldType.WordFlags));
			Add(ChildScenarios = new TI.Block<scenario_child_scenario_block>(this, 16));
			Add(LocalNorth = new TI.Real(TI.FieldType.Angle));
			Add(new TI.Pad(20 + 136));
			Add(PredictedResources = new TI.Block<predicted_resource_block>(this, 2048));
			Add(Functions = new TI.Block<scenario_function_block>(this, 32));
			Add(EditorScenarioData = new TI.Data(this));
			Add(Comments = new TI.Block<editor_comment_block>(this, 65536));
			#endregion
			#region scenario objects
			Add(DontUseObjects = new TI.Block<dont_use_me_scenario_environment_object_block>(this, 4096));
			Add(new TI.Pad(212));
			version_construct_add_scenario_object_blocks();
			Add(new TI.Pad(60));
			#endregion
			Add(PlayerStartingProfile = new TI.Block<scenario_profiles_block>(this, 256));
			Add(PlayerStartingLocations = new TI.Block<scenario_players_block>(this, 256));
			Add(KillTriggerVolumes = new TI.Block<scenario_trigger_volume_block>(this, 256));
			Add(RecordedAnimations = new TI.Block<recorded_animation_block>(this, 1024));
			Add(NetgameFlags = new TI.Block<scenario_netpoints_block>(this, 200));
			Add(NetgameEquipment = new TI.Block<scenario_netgame_equipment_block>(this, 100));
			Add(StartingEquipment = new TI.Block<scenario_starting_equipment_block>(this, 200));
			Add(BspSwitchTriggerVolumes = new TI.Block<scenario_bsp_switch_trigger_volume_block>(this, 256));
			Add(Decals = new TI.Block<scenario_decals_block>(this, 65536));
			Add(DecalsPalette = new TI.Block<scenario_decal_palette_block>(this, 128));
			Add(DetailObjectCollectionPalette = new TI.Block<scenario_detail_object_collection_palette_block>(this, 32));
			Add(new TI.Pad(36));
			#region scenario ai
			Add(StylePalette = new TI.Block<style_palette_block>(this, 50));
			Add(SquadGroups = new TI.Block<squad_groups_block>(this, 100));
			Add(Squads = new TI.Block<squads_block>(this, 335));
			Add(Zones = new TI.Block<zone_block>(this, 128));
			Add(TI.Pad.BlockHalo1); // actor_palette_block
			//Add(MissionScenes = new TI.Block<ai_scene_block>(this, 100));
			Add(CharacterPalette = new TI.Block<character_palette_block>(this, 64));
			Add(AIPathfindingData = new TI.Block<pathfinding_data_block>(this, 16));
			Add(AIAnimationReferences = new TI.Block<ai_animation_reference_block>(this, 128));
			Add(AIScriptReferences = new TI.Block<ai_script_reference_block>(this, 128));
			Add(AIRecordingReferences = new TI.Block<ai_recording_reference_block>(this, 128));
			Add(AIConversations = new TI.Block<ai_conversation_block>(this, 128));
			#endregion
			#region scripting and cinematics
			Add(HsSyntaxData = new TI.Data(this));
			Add(HsStringData = new TI.Data(this));
			Add(HsScripts = new TI.Block<hs_scripts_block>(this, 1024));
			Add(HsGlobals = new TI.Block<hs_globals_block>(this, 256));
			Add(References = new TI.Block<hs_references_block>(this, 512));
			Add(SourceFiles = new TI.Block<hs_source_files_block>(this, 8));
			Add(ScriptingData = new TI.Block<cs_script_data_block>(this, 1));
			Add(new TI.Pad(12));
			Add(CutsceneFlags = new TI.Block<scenario_cutscene_flag_block>(this, 512));
			Add(CutsceneCameraPoints = new TI.Block<scenario_cutscene_camera_point_block>(this, 512));
			Add(CutsceneTitles = new TI.Block<scenario_cutscene_title_block>(this, 128));
			Add(new TI.Pad(108));
			Add(CustomObjectNames = new TI.TagReference(this, TagGroups.unic));
			//Add(ChapterTitleText = new TI.TagReference(this, TagGroups.unic));
			#endregion
			Add(/*In-Game Help Text*/ new TI.TagReference(this, TagGroups.unic));
			Add(HUDMessages = new TI.TagReference(this, TagGroups.hmt_));
			Add(StructureBsps = new TI.Block<scenario_structure_bsp_reference_block>(this, 16));

			//SceneryPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.scen);
			//BipedsPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.bipd);
			//VehiclePalette.Definition.Name.ResetReferenceGroupTag(TagGroups.vehi);
			//EquipmentPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.eqip);
			//WeaponPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.weap);
			//MachinePalette.Definition.Name.ResetReferenceGroupTag(TagGroups.mach);
			//ControlPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.ctrl);
			//LightFixturesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.lifi);
		}
예제 #40
0
		private void version1_construct()
		{
			Add(Resources = new TI.Struct<animation_graph_resources_struct>(this));
			Add(Content = new TI.Struct<animation_graph_contents_struct>(this));
			Add(RuntimeData = new TI.Struct<model_animation_runtime_data_struct>(this));
			Add(LastImportResults = new TI.Data(this));
			Add(AdditionalNodeData = new TI.Block<additional_node_data_block>(this, 255));
		}
예제 #41
0
		public void version_construct(BlamVersion engine)
		{
			bool is_alpha = engine == BlamVersion.Halo2_Alpha;

			#region misc
			Add(DontUse = new TI.TagReference(this, TagGroups.sbsp));
			Add(Skies = new TI.Block<scenario_sky_reference_block>(this, 32));
			Add(Type = new TI.Enum());
			Add(Flags = new TI.Flags(TI.FieldType.WordFlags));
			Add(ChildScenarios = new TI.Block<scenario_child_scenario_block>(this, 16));
			Add(LocalNorth = new TI.Real(TI.FieldType.Angle));
			Add(PredictedResources = new TI.Block<predicted_resource_block>(this, 2048));
			Add(Functions = new TI.Block<scenario_function_block>(this, 32));
			Add(EditorScenarioData = new TI.Data(this));
			Add(Comments = new TI.Block<editor_comment_block>(this, 65536));
			#endregion
			#region scenario objects
			Add(DontUseObjects = new TI.Block<dont_use_me_scenario_environment_object_block>(this, 4096));
			version_construct_add_scenario_object_blocks();
			#endregion
			Add(PlayerStartingProfile = new TI.Block<scenario_profiles_block>(this, 256));
			Add(PlayerStartingLocations = new TI.Block<scenario_players_block>(this, 256));
			Add(KillTriggerVolumes = new TI.Block<scenario_trigger_volume_block>(this, 256));
			Add(RecordedAnimations = new TI.Block<recorded_animation_block>(this, 1024));
			Add(NetgameFlags = new TI.Block<scenario_netpoints_block>(this, 200));
			Add(NetgameEquipment = new TI.Block<scenario_netgame_equipment_block>(this, 100));
			Add(StartingEquipment = new TI.Block<scenario_starting_equipment_block>(this, 200));
			Add(BspSwitchTriggerVolumes = new TI.Block<scenario_bsp_switch_trigger_volume_block>(this, 256));
			Add(Decals = new TI.Block<scenario_decals_block>(this, 65536));
			Add(DecalsPalette = new TI.Block<scenario_decal_palette_block>(this, 128));
			Add(DetailObjectCollectionPalette = new TI.Block<scenario_detail_object_collection_palette_block>(this, 32));
			#region scenario ai
			Add(StylePalette = new TI.Block<style_palette_block>(this, 50));
			Add(SquadGroups = new TI.Block<squad_groups_block>(this, 100));
			Add(Squads = new TI.Block<squads_block>(this, 335));
			Add(Zones = new TI.Block<zone_block>(this, 128));
			Add(MissionScenes = new TI.Block<ai_scene_block>(this, 100));
			Add(CharacterPalette = new TI.Block<character_palette_block>(this, 64));
			Add(AIPathfindingData = new TI.Block<pathfinding_data_block>(this, 16));
			Add(AIAnimationReferences = new TI.Block<ai_animation_reference_block>(this, 128));
			Add(AIScriptReferences = new TI.Block<ai_script_reference_block>(this, 128));
			Add(AIRecordingReferences = new TI.Block<ai_recording_reference_block>(this, 128));
			Add(AIConversations = new TI.Block<ai_conversation_block>(this, 128));
			#endregion
			#region scripting and cinematics
			Add(HsSyntaxData = new TI.Data(this));
			Add(HsStringData = new TI.Data(this));
			Add(HsScripts = new TI.Block<hs_scripts_block>(this, 1024));
			Add(HsGlobals = new TI.Block<hs_globals_block>(this, 256));
			Add(References = new TI.Block<hs_references_block>(this, 512));
			Add(SourceFiles = new TI.Block<hs_source_files_block>(this, 8));
			Add(ScriptingData = new TI.Block<cs_script_data_block>(this, 1));
			Add(CutsceneFlags = new TI.Block<scenario_cutscene_flag_block>(this, 512));
			Add(CutsceneCameraPoints = new TI.Block<scenario_cutscene_camera_point_block>(this, 512));
			Add(CutsceneTitles = new TI.Block<scenario_cutscene_title_block>(this, 128));
			Add(CustomObjectNames = new TI.TagReference(this, TagGroups.unic));
			Add(ChapterTitleText = new TI.TagReference(this, TagGroups.unic));
			#endregion
			Add(HUDMessages = new TI.TagReference(this, TagGroups.hmt_));
			Add(StructureBsps = new TI.Block<scenario_structure_bsp_reference_block>(this, 16));
			Add(ScenarioResources = new TI.Block<scenario_resources_block>(this, 1));
			Add(ScenarioResourcesUnused = new TI.Block<old_unused_strucure_physics_block>(this, 16));
			Add(HsUnitSeats = new TI.Block<hs_unit_seat_block>(this, 65536));
			Add(ScenarioKillTriggers = new TI.Block<scenario_kill_trigger_volumes_block>(this, 256));
			Add(HsScriptDatums = new TI.Block<syntax_datum_block>(this, 36864));
			Add(Orders = new TI.Block<orders_block>(this, 300));
			Add(Triggers = new TI.Block<triggers_block>(this, 256));
			Add(BackgroundSoundPalette = new TI.Block<structure_bsp_background_sound_palette_block>(this, 64));
			Add(SoundEnvironmentPalette = new TI.Block<structure_bsp_sound_environment_palette_block>(this, 64));
			Add(WeatherPalette = new TI.Block<structure_bsp_weather_palette_block>(this, 32));
			version_construct_add_unnamed_null_blocks();
			Add(ScenarioClusterData = new TI.Block<scenario_cluster_data_block>(this, 16));
			version_construct_add_unnamed_array();
			Add(SpawnData = new TI.Block<scenario_spawn_data_block>(this, 1));
			Add(SoundEffectCollection = new TI.TagReference(this, TagGroups.sfx_));
			Add(Crates = new TI.Block<scenario_crate_block>(this, 1024));
			Add(CratesPalette = new TI.Block<scenario_object_palette_block>(this, 256));
			Add(GlobalLighting = new TI.TagReference(this, TagGroups.gldf));
			Add(AtmosphericFogPalette = new TI.Block<scenario_atmospheric_fog_palette>(this, 127));
			Add(PlanarFogPalette = new TI.Block<scenario_planar_fog_palette>(this, 127));
			Add(Flocks = new TI.Block<flock_definition_block>(this, 20));
			Add(Subtitles = new TI.TagReference(this, TagGroups.unic));
			Add(Decorators = new TI.Block<decorator_placement_definition_block>(this, 1));
			Add(Creatures = new TI.Block<scenario_creature_block>(this, 128));
			Add(CreaturesPalette = new TI.Block<scenario_object_palette_block>(this, 256));
			Add(DecoratorsPalette = new TI.Block<scenario_decorator_set_palette_entry_block>(this, 32));
			Add(BspTransitionVolumes = new TI.Block<scenario_bsp_switch_transition_volume_block>(this, 256));
			Add(StructureBspLighting = new TI.Block<scenario_structure_bsp_spherical_harmonic_lighting_block>(this, 16));
			Add(EditorFolders = new TI.Block<g_scenario_editor_folder_block>(this, 32767));
			Add(LevelData = new TI.Block<scenario_level_data_block>(this, 1));
			Add(TerritoryLocationNames = new TI.TagReference(this, TagGroups.unic));
			Add(new TI.Pad(8));
			Add(MissionDialogue = new TI.Block<ai_scenario_mission_dialogue_block>(this, 1));
			Add(Objectives = new TI.TagReference(this, TagGroups.unic));
			if (!is_alpha)
			{
				Add(Interpolators = new TI.Block<scenario_interpolator_block>(this, 16));
				Add(SharedReferences = new TI.Block<hs_references_block>(this, 512));
				Add(ScreenEffectReferences = new TI.Block<scenario_screen_effect_reference_block>(this, 16));
				Add(SimulationDefinitionTable = new TI.Block<scenario_simulation_definition_table_block>(this, 512));
			}

			//SceneryPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.scen);
			//BipedsPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.bipd);
			//VehiclePalette.Definition.Name.ResetReferenceGroupTag(TagGroups.vehi);
			//EquipmentPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.eqip);
			//WeaponPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.weap);
			//MachinePalette.Definition.Name.ResetReferenceGroupTag(TagGroups.mach);
			//ControlPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.ctrl);
			//LightFixturesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.lifi);
			//LightVolumesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.ligh);
			//CratesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.bloc);
			//CreaturesPalette.Definition.Name.ResetReferenceGroupTag(TagGroups.crea);
		}
예제 #42
0
 public mapping_function()
 {
     Add(Data = new TI.Data(this));
 }
예제 #43
0
		void upgrade_build_version2_layout()
		{
			Add(Parts);
			Add(Subparts);
			Add(VisibilityBounds = new TI.Block<global_visibility_bounds_block>(this, 32768));
			Add(RawVertices);
			Add(StripIndices);
			Add(VisibilityMoppCode = new TI.Data(this));
			Add(MoppReorderTable = new TI.Block<global_geometry_section_strip_index_block>(this, 65535));
			Add(VertexBuffers);
			Add(TI.Pad.DWord);
		}
예제 #44
0
        public scenario_group()
        {
            Add(Type  = new TI.Enum());
            Add(Flags = TI.Flags.Word);
            Add(TI.UnknownPad.DWord);
            Add(/*map id = */ MapId.SkipField);             // id used for mapinfo files
            Add(new TI.Skip(4));
            Add(new TI.UnknownPad(4 + 4));
            Add(/*LocalNorth =*/ new TI.Real(TI.FieldType.Angle));
            Add(new TI.UnknownPad(20));
            Add(/*SandboxBuget =*/ new TI.Real());
            Add(TI.UnknownPad.DWord);
            Add(/*performance throttle = */ new TI.TagReference(this, TagGroups.gptd));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0xAC] StructureBsps
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x20] structure designs
            // tag reference [sddt]
            // tag reference [????]
            Add(TI.UnknownPad.ReferenceHalo3);
            Add(TI.UnknownPad.ReferenceHalo3);
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x30] Skies
            // tag reference [scen] (sky)
            // unknown 0xC bytes (tag block?)
            // tag reference [????]
            // short
            // short

            // TOOD: finish up from here
            Add(new TI.UnknownPad(0x3A0));

            #region scripting and cinematics
            Add(HsStringData = new TI.Data(this));             // 0x430, NOTE: stored in memory region 3
            Add(HsScripts    = new TI.Block <hs_scripts_block>(this, 1024));
            Add(HsGlobals    = new TI.Block <H3.hs_globals_block>(this, 256));
            Add(/*References =*/ new TI.Block <H3.hs_references_block>(this, 512));
            Add(/*SourceFiles =*/ new TI.Block <H2.hs_source_files_block>(this, 8));
            Add(/*ScriptingData =*/ new TI.Block <cs_script_data_block>(this, 1));
            Add(/*CutsceneFlags =*/ new TI.Block <H3.scenario_cutscene_flag_block>(this, 512));
            Add(/*CutsceneCameraPoints =*/ new TI.Block <H3.scenario_cutscene_camera_point_block>(this, 512));
            Add(/*CutsceneTitles =*/ new TI.Block <scenario_cutscene_title_block>(this, 128));
            // 0x4A4
            Add(/*CustomObjectNames =*/ new TI.TagReference(this, TagGroups.unic));
            Add(/*ChapterTitleText =*/ new TI.TagReference(this, TagGroups.unic));
            Add(/*ScenarioResources =*/ new TI.Block <H3.scenario_resources_block>(this, 1));
            Add(/*HsUnitSeats =*/ new TI.Block <hs_unit_seat_block>(this, 65536));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x4]
            // short
            // short
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            // 0x4F4
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x30] this is physics related ata
            // dword
            // tag block H3.mopp_code_block
            // dword
            // tag_reference?
            // real?
            // real
            // real
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(/*HsScriptDatums =*/ new TI.Block <H3.syntax_datum_block>(this, 0));
            #endregion
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] Orders
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] Triggers
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] BackgroundSoundPalette
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] SoundEnvironmentPalette
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] WeatherPalette
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x54] ScenarioClusterData
            // this is scenario_cluster_data_block but with an extra dword of data right after the tag reference
            version_construct_add_unnamed_array();
            Add(TI.UnknownPad.BlockHalo3);             // SpawnData?
            // 0x604
            Add(/*SoundEffectCollection = */ new TI.TagReference(this, TagGroups.sfx_));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0xD8] Crates
            Add(/*CratesPalette = */ new TI.Block <H3.scenario_crate_palette_block>(this, 256));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x10] Flocks palette
            // tag reference
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] Flocks
            Add(/*Subtitles = */ new TI.TagReference(this, TagGroups.unic));

            // Creatures & CreaturesPalette should be in one of these blocks
            Add(TI.UnknownPad.BlockHalo3);
            Add(TI.UnknownPad.BlockHalo3);
            Add(TI.UnknownPad.BlockHalo3);
            Add(/*EditorFolders = */ new TI.Block <H3.g_scenario_editor_folder_block>(this, 32767));
            Add(/*TerritoryLocationNames = */ new TI.TagReference(this, TagGroups.unic));
            Add(new TI.Pad(8));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] MissionDialogue
            Add(/*Objectives = */ new TI.TagReference(this, TagGroups.unic));
            Add(/*? = */ new TI.TagReference(this, TagGroups.sirp));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(/*Camere fx settings = */ new TI.TagReference(this, TagGroups.cfxs));
            Add(/*? = */ new TI.TagReference(this, TagGroups.sefc));
            Add(/*? = */ new TI.TagReference(this, TagGroups.ssao));
            Add(/*sky parameters= */ new TI.TagReference(this, TagGroups.skya));
            Add(/*atmosphere globals = */ new TI.TagReference(this, TagGroups.atgf));
            Add(/*GlobalLighting = */ new TI.TagReference(this, TagGroups.chmt));
            Add(/*lightmap = */ new TI.TagReference(this, TagGroups.sLdT));
            Add(/*performance throttles = */ new TI.TagReference(this, TagGroups.perf));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.ReferenceHalo3);
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]
            Add(TI.UnknownPad.ReferenceHalo3);
            Add(TI.UnknownPad.ReferenceHalo3);
            Add(TI.UnknownPad.ReferenceHalo3);
        }
 public sound_resource_definition() : base(1)
 {
     Add(Data = new TI.Data(this, TI.DataType.Sound));
 }
예제 #46
0
파일: Hud.cs 프로젝트: CodeAsm/open-sauce
		public hud_message_text_group() : base(4)
		{
			Add(TextData = new TI.Data(this));
			Add(MessageElements = new TI.Block<hud_message_elements_block>(this, 8192));
			Add(Messages = new TI.Block<hud_messages_block>(this, 1024));
			Add(new TI.Pad(84));
		}
예제 #47
0
		public physics_model_group() : base(34)
		{
			Add(/*flags = */ new TI.Flags());
			Add(/*mass = */ new TI.Real());
			Add(/*low freq. deactivation scale = */ new TI.Real());
			Add(/*high freq. deactivation scale = */ new TI.Real());
			Add(new TI.Pad(24));
			Add(/*phantom types = */ new TI.Block<phantom_types_block>(this, 16));
			Add(/*node edges = */ new TI.Block<physics_model_node_constraint_edge_block>(this, 4096));
			Add(RigidBodies = new TI.Block<rigid_bodies_block>(this, 64));
			Add(Materials = new TI.Block<materials_block>(this, 64));
			Add(Spheres = new TI.Block<spheres_block>(this, 1024));
			Add(MultiSpheres = new TI.Block<multi_spheres_block>(this, 1024));
			Add(Pills = new TI.Block<pills_block>(this, 1024));
			Add(Boxes = new TI.Block<boxes_block>(this, 1024));
			Add(Triangles = new TI.Block<triangles_block>(this, 1024));
			Add(Polyhedra = new TI.Block<polyhedra_block>(this, 1024));
			Add(PolyhedraFourVectors = new TI.Block<polyhedron_four_vectors_block>(this, 4096));
			Add(PolyhedraPlaneEquations = new TI.Block<polyhedron_plane_equations_block>(this, 1024));
			Add(MassDistributions = new TI.Block<mass_distributions_block>(this, 256));
			Add(Lists = new TI.Block<lists_block>(this, 64));
			Add(ListShapes = new TI.Block<list_shapes_block>(this, 256));
			Add(Mopps = new TI.Block<mopps_block>(this, 64));
			Add(MoppCodes = new TI.Data(this));
			Add(/*hinge constraints = */ new TI.Block<hinge_constraints_block>(this, 64));
			Add(/*ragdoll constraints = */ new TI.Block<ragdoll_constraints_block>(this, 64));
			Add(/*regions = */ new TI.Block<regions_block>(this, 16));
			Add(/*nodes = */ new TI.Block<nodes_block>(this, 255));
			Add(ImportInfo = new TI.Block<global_tag_import_info_block>(this, 1));
			Add(Errors = new TI.Block<global_error_report_categories_block>(this, 64));
			Add(/*point to path curves = */ new TI.Block<point_to_path_curve_block>(this, 64));
			Add(/*limited hinge constraints = */ new TI.Block<limited_hinge_constraints_block>(this, 64));
			Add(/*ball and socket constraints = */ new TI.Block<ball_and_socket_constraints_block>(this, 64));
			Add(/*stiff spring constraints = */ new TI.Block<stiff_spring_constraints_block>(this, 64));
			Add(/*prismatic constraints = */ new TI.Block<prismatic_constraints_block>(this, 64));
			Add(Phantoms = new TI.Block<phantoms_block>(this, 1024));
		}
예제 #48
0
파일: Sound.cs 프로젝트: CodeAsm/open-sauce
		public sound_permutation_raw_info_block() : base(8)
		{
			Add(SkipFractionName = new TI.StringId());
			Add(Samples = new TI.Data(this));
			Add(MouthData = new TI.Data(this));
			Add(LipsyncData = new TI.Data(this));
			Add(Markers = new TI.Block<sound_permutation_marker_block>(this, 65535));
			Add(Compression = new TI.Enum());
			Add(Language = new TI.Enum(TI.FieldType.ByteEnum));
			Add(TI.Pad.Byte);
		}
예제 #49
0
		public bitmap_group() : base(25)
		{
			Add(Type = new TI.Enum());
			Add(Format = new TI.Enum());
			Add(Usage = new TI.Enum());
			Add(Flags = new TI.Flags(BlamLib.TagInterface.FieldType.WordFlags));

			Add(DetailFadeFactor = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
			Add(SharpenAmount = new TI.Real(BlamLib.TagInterface.FieldType.RealFraction));
			Add(BumpHeight = new TI.Real());

			Add(SpriteBudgetSize = new TI.Enum());
			Add(SpriteBudgetCount = new TI.ShortInteger());

			Add(ColorPlateWidth = new TI.ShortInteger());
			Add(ColorPlateHeight = new TI.ShortInteger());
			Add(CompressedColorPlateData = new TI.Data(this));
			Add(ProcessedPixelData = new TI.Data(this, BlamLib.TagInterface.DataType.Bitmap));

			Add(BlurFilterSize = new TI.Real());
			Add(AlphaBias = new TI.Real());
			Add(MipmapCount = new TI.ShortInteger());

			Add(SpriteUsage = new TI.Enum());
			Add(SpriteSpacing = new TI.ShortInteger());
			Add(ForceFormat = new TI.Enum());

			Add(Sequences = new TI.Block<bitmap_group_sequence_block>(this, 256));
			Add(Bitmaps = new TI.Block<bitmap_data_block>(this, 65536));

			AddPc(ColorCompressionQuality = new TI.ByteInteger());
			AddPc(AlphaCompressionQuality = new TI.ByteInteger());
			AddPc(Overlap = new TI.ByteInteger());
			AddPc(ColorSubsampling = new TI.Enum(BlamLib.TagInterface.FieldType.ByteEnum));
		}
예제 #50
0
			public hs_source_files_block() : base(2)
			{
				Add(Name = new TI.String());
				Add(Source = new TI.Data(this));
			}
예제 #51
0
		public multilingual_unicode_string_list_group() : base(11)
		{
			Add(StringRefs = new TI.Block<multilingual_unicode_string_reference_block>(this, 9216));
			Add(StringData = new TI.Data(this));

			LanguageHandles = new TI.LongInteger[(int)LanguageType.kMax];
			for (int x = 0; x < LanguageHandles.Length; x++)
				Add(LanguageHandles[x] = new TI.LongInteger());

			// Alpha layout (stored in the actual tag data)):
			// tag block [languages]
				// tag block [strings]
					// string id [name]
					// tag data [string data]
		}
예제 #52
0
			public editor_comment_block() : base(3)
			{
				Add(Position = new TI.RealPoint3D());
				Add(TI.Pad.ReferenceHalo1);
				Add(Comment = new TI.Data(this));
			}
 public s_tag_d3d_index_buffer() : base(2)
 {
     Add(Unknown     = new TI.LongInteger());
     Add(IndexBuffer = new TI.Data(this));
 }
예제 #54
0
        public scenario_group()
        {
            Add(Type  = new TI.Enum());
            Add(Flags = TI.Flags.Word);
            Add(/*map id = */ MapId.SkipField);             // id used for mapinfo files
            Add(new TI.Skip(4));
            Add(SandboxBuget  = new TI.Real());
            Add(StructureBsps = new TI.Block <H3.scenario_structure_bsp_reference_block>(this, 16));

            // ODST:
            Add(ScenarioPda = new BlamLib.TagInterface.TagReference(this, TagGroups.spda));
            Add(TI.UnknownPad.BlockHalo3);                                       // tag block [0x?]

            Add(/*DontUse = */ new TI.TagReference(this, Halo3.TagGroups.sbsp)); // Its a tag reference here, but IDK if its for THIS exactly...
            Add(Skies = new TI.Block <H3.scenario_sky_reference_block>(this, 32));
            Add(TI.UnknownPad.BlockHalo3);                                       // tag block [0x2C], see Halo3
            Add(TI.UnknownPad.BlockHalo3);                                       // tag block [0x64], see Halo3
            Add(TI.UnknownPad.BlockHalo3);                                       // tag block [0x24], see Halo3
            Add(TI.UnknownPad.BlockHalo3);                                       // tag block [0xC], see Halo3

            // ODST:
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x4], campaign players
            // string id [player model name] // player #<element_index> uses this player model

            Add(new TI.UnknownPad(0x44));                                                        // unknown [0x44]
            #region scenario objects
            Add(ObjectNames = new TI.Block <H3.scenario_object_names_block>(this, 0));           // I'm sure the max is now over 640...
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0xB4] Scenery
            Add(SceneryPalette = new TI.Block <H3.scenario_scenery_palette_block>(this, 0));     // I'm sure the max is now over 256...
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0x74] Bipeds
            Add(BipedsPalette = new TI.Block <H3.scenario_biped_palette_block>(this, 0));        // ''
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0xA8] Vehicles
            Add(VehiclePalette = new TI.Block <H3.scenario_vehicle_palette_block>(this, 0));     // ''
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0x8C] Equipment
            Add(EquipmentPalette = new TI.Block <H3.scenario_equipment_palette_block>(this, 0)); // ''
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0xA8] Weapons
            Add(WeaponPalette = new TI.Block <H3.scenario_weapon_palette_block>(this, 0));       // ''
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0x28] Device groups
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0x88] Machines
            Add(MachinePalette = new TI.Block <H3.scenario_machine_palette_block>(this, 0));     // ''
            Add(TI.UnknownPad.BlockHalo3);                                                       // tag block [0x78] Terminals
            Add(TerminalPalette = new TI.Block <H3.scenario_terminal_palette_block>(this, 0));   // ''

            // ODST:
            Add(TI.UnknownPad.BlockHalo3);                                                                   // tag block [0xB8] Arg Devices
            Add(ArgDevicesPalette = new TI.Block <scenario_arg_device_palette_block>(this, 0));              // ''

            Add(TI.UnknownPad.BlockHalo3);                                                                   // tag block [0x7C] Controls
            Add(ControlPalette = new TI.Block <H3.scenario_control_palette_block>(this, 0));                 // ''
            Add(TI.UnknownPad.BlockHalo3);                                                                   // tag block [0x70] Sound Scenery
            Add(SoundSceneryPalette = new TI.Block <H3.scenario_sound_scenery_palette_block>(this, 0));      // ''
            Add(TI.UnknownPad.BlockHalo3);                                                                   // tag block [0x84] Giants
            Add(GiantsPalette = new TI.Block <H3.scenario_giant_palette_block>(this, 0));                    // ''
            Add(TI.UnknownPad.BlockHalo3);                                                                   // tag block [0x54] Effect Scenery
            Add(EffectSceneryPalette = new TI.Block <H3.scenario_effect_scenery_palette_block>(this, 0));    // ''
            Add(TI.UnknownPad.BlockHalo3);                                                                   // tag block [0x70] Light Volumes
            Add(LightVolumesPalette = new TI.Block <H3.scenario_light_palette_block>(this, 0));              // ''
            #endregion
            Add(/*Sandbox vehicles = */ new TI.Block <H3.scenario_sandbox_vehicle_settings_block>(this, 0)); // 0x228
            Add(/*Sandbox weapons = */ new TI.Block <H3.scenario_sandbox_weapon_settings_block>(this, 0));
            Add(/*Sandbox equipment = */ new TI.Block <H3.scenario_sandbox_equipment_settings_block>(this, 0));
            Add(/*Sandbox scenery = */ new TI.Block <H3.scenario_sandbox_scenery_settings_block>(this, 0));
            Add(/*Sandbox teleporters = */ new TI.Block <H3.scenario_sandbox_teleporter_settings_block>(this, 0));
            Add(/*Sandbox netgame flags = */ new TI.Block <H3.scenario_sandbox_netpoint_settings_block>(this, 0));
            Add(/*Sandbox spawns = */ new TI.Block <H3.scenario_sandbox_spawn_settings_block>(this, 0));
            Add(TI.UnknownPad.BlockHalo3);             // 0x27C tag block [0xC], see Halo3
            Add(/*PlayerStartingProfile = */ new TI.Block <H3.scenario_group.scenario_profiles_block>(this, 256));
            Add(/*PlayerStartingLocations = */ new TI.Block <H3.scenario_group.scenario_players_block>(this, 256));
            Add(/*KillTriggerVolumes = */ new TI.Block <H3.scenario_trigger_volume_block>(this, 256)); // 0x260
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?] // recorded animations?
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x10], see Halo3
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x24] scenario_decal_systems_block 65536
            Add(/*DecalSystems = */ new TI.Block <H3.scenario_decal_system_palette_block>(this, 128));
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                                                             // tag block [0x?]
            Add(/*SquadGroups = */ new TI.Block <H3.squad_groups_block>(this, 100));
            Add(TI.UnknownPad.BlockHalo3);                                                             // squads, see Halo3
            Add(/*Zones = */ new TI.Block <zone_block>(this, 128));

            // ODST: I think this new block was added AFTER what I'm thinking may be 'Mission Scenes'
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] // Mission Scenes?
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]

            Add(/*CharacterPalette = */ new TI.Block <H3.character_palette_block>(this, 64));
            Add(TI.UnknownPad.BlockHalo3);                 // tag block [0x?]
            Add(TI.UnknownPad.BlockHalo3);                 // tag block [0x6C], see Halo3
            Add(TI.UnknownPad.BlockHalo3);                 // tag block [0x?], see Halo3
            #region scripting and cinematics
            Add(HsStringData         = new TI.Data(this)); // 0x42C
            Add(HsScripts            = new TI.Block <H3.hs_scripts_block>(this, 1024));
            Add(HsGlobals            = new TI.Block <H3.hs_globals_block>(this, 256));
            Add(References           = new TI.Block <H3.hs_references_block>(this, 512));
            Add(SourceFiles          = new TI.Block <H2.hs_source_files_block>(this, 8));
            Add(ScriptingData        = new TI.Block <H2.cs_script_data_block>(this, 1));
            Add(CutsceneFlags        = new TI.Block <H3.scenario_cutscene_flag_block>(this, 512));
            Add(CutsceneCameraPoints = new TI.Block <H3.scenario_cutscene_camera_point_block>(this, 512));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] Add(CutsceneTitles = new TI.Block<scenario_cutscene_title_block>(this, 128));
            Add(CustomObjectNames = new TI.TagReference(this, Halo3.TagGroups.unic));
            Add(ChapterTitleText  = new TI.TagReference(this, Halo3.TagGroups.unic));
            Add(ScenarioResources = new TI.Block <H3.scenario_resources_block>(this, 1));
            Add(HsUnitSeats       = new TI.Block <H3.hs_unit_seat_block>(this, 65536));
            Add(TI.UnknownPad.BlockHalo3);                                                                // tag block [0x2]
            Add(ScenarioKillTriggers = new TI.Block <H3.scenario_kill_trigger_volumes_block>(this, 256)); // 0x498
            Add(HsScriptDatums       = new TI.Block <H3.syntax_datum_block>(this, 36864));
            #endregion
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] Orders
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] Triggers
            Add(/*BackgroundSoundPalette = */ new TI.Block <H3.structure_bsp_background_sound_palette_block>(this, 64));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] SoundEnvironmentPalette
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?] WeatherPalette
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            version_construct_add_unnamed_null_blocks();
            Add(/*ScenarioClusterData = */ new TI.Block <H3.scenario_cluster_data_block>(this, 16));
            Add(TI.UnknownPad.BlockHalo3);             // tag block [0x?]?
            version_construct_add_unnamed_array();
            // 0x618


            // crate: 0x634, 0x640, 0xB0
            // creature: 0x674, 0x680, 0x54
        }
예제 #55
0
		void version2_construct()
		{
			Add(Parts = new TI.Block<global_geometry_part_block_new>(this, 255));
			Add(Subparts = new TI.Block<global_subparts_block>(this, 32768));
			Add(VisibilityBounds = new TI.Block<global_visibility_bounds_block>(this, 32768));
			Add(RawVertices = new TI.Block<global_geometry_section_raw_vertex_block>(this, 32767));
			Add(StripIndices = new TI.Block<global_geometry_section_strip_index_block>(this, 65535));
			Add(VisibilityMoppCode = new TI.Data(this));
			Add(MoppReorderTable = new TI.Block<global_geometry_section_strip_index_block>(this, 65535));
			Add(VertexBuffers = new TI.Block<global_geometry_section_vertex_buffer_block>(this, 512));
			Add(TI.Pad.DWord); // pointer to stuff when used in tools
		}