Ejemplo n.º 1
0
        public GX_Object_0x48(BinaryReader reader) : base(reader)
        {
            header_const   = new GX_Header_Data(0x48, 0x54, 16 * 4);
            header_pointer = new GX_Pointer(header_const, reader);

            obj = new BaseObject[header_pointer.count];
            for (uint ui = 0; ui < obj.Length; ui++)
            {
                obj[ui] = new BaseObject(reader, header_pointer.address + ui * BaseObject.size);
            }
        }
Ejemplo n.º 2
0
        public SplineDataClass(BinaryReader reader) : base(reader)
        {
            // Initialize GX_Data
            header_const   = new GX_Header_Data(0x08, 0x0C, SplineData.Base.size);
            header_pointer = new GX_Pointer(header_const, reader);

            #region Load EditorData & EditorDataTable
            Base[] getAddresses = new Base[header_pointer.count];
            reader.BaseStream.Seek(header_pointer.address, SeekOrigin.Begin);

            //Debug.LogFormat("{0}:{1}\n{2}:{3}", header_const.address, header_instance.address, header_const.count, header_instance.count);

            for (int i = 0; i < getAddresses.Length; i++)
            {
                getAddresses[i] = new Base(reader);
            }

            EditorData      = new List <EditorData>();
            EditorDataTable = new Dictionary <uint, int>();
            foreach (Base c in getAddresses)
            {
                // If the index is not yet referenced
                if (!EditorDataTable.ContainsKey(c.EditorDataAddress))
                {
                    // Dredge data from file, add it to list
                    EditorData.Add(new EditorData(reader, c.EditorDataAddress, null));
                    // Add this index into table
                    // Index is EditorDataTable.Count (0, 1, 2...), references the new index made above
                    EditorDataTable.Add(c.EditorDataAddress, EditorDataTable.Count);
                }
            }
            #endregion
            #region Load Base and all sub components
            Base = new Base[header_pointer.count];
            for (uint i = 0; i < (uint)Base.Length; i++)
            {
                Base[i] = new Base(
                    reader,
                    header_pointer.address + i * header_const.size, // i * size indicates the address for the next entry
                    EditorDataTable
                    );
            }
            #endregion
        }
Ejemplo n.º 3
0
 public AiEffects(BinaryReader reader) : base(reader)
 {
     header_const   = new GX_Header_Data(0x10, 0x14, 5u * 4);
     header_pointer = new GX_Pointer(header_const, reader);
 }