using System;
using System.Collections.Generic;
using System.Text;
using Halo3Map.Data;

namespace Halo3Map.Tags.Layouts
{
    [Tag("shade45, Digital Marine", "play", 0.1)]
    public class play : H3Tag
    {
        public H3Reflexive<Unknown> unknown;
        [Size(16)]
        public class Unknown : Chunk
        {
            public int Unknown0;
            public int Unknown4;
            public int Unknown8;
            public int Unknown12;
        }

        //[Size(4)]
        //public byte[] unused8;

        public H3Reflexive<Unknown12> unknown12;
        [Size(264)]
        public class Unknown12 : Chunk
        {
            [String(32)]
            public string Map_Path;
            public int unknown;
            public int unknown36;
            public int unknown40;
            public int unknown44;
            public int unknown48;
            public int unknown52;
            public int unknown56;
            public int unknown60;
            public int unknown64;
            public int unknown68;
            public int unknown72;
            public int unknown76;
            public int unknown80;
            public int unknown84;
            public int unknown88;
            public int unknown92;
            public int unknown96;
            public int unknown100;
            public int unknown104;
            public int unknown108;
            public int unknown112;
            public int unknown116;
            public int unknown120;
            public int unknown124;
            public int unknown128;
            public int unknown132;
            public int unknown136;
            public int unknown140;
            [Size(12)]
            public byte[] unknown144;
            public int unknown156;
            public int unknown160;
            public int unknown164;
            public int unknown168;
            [Size(4)]
            public byte[] unknown172;
            public int unknown176;
            public int unknown180;
            public int unknown184;
            public int unknown188;
            public int unknown192;
            [Size(4)]
            public byte[] unknown196;
            public int unknown200;
            public int unknown204;
            public int unknown208;
            public int unknown212;
            public int unknown216;
            public int unknown220;
            public int unknown224;
            public int unknown228;
            public int unknown232;
            public int unknown236;
            public int unknown240;
            public int unknown244;
            [Size(4)]
            public byte[] unknown248;
            public int unknown252;
            public int unknown256;
            public int unknown260;
        }

        //[Size(4)]
        //public byte[] unused20;

        public H3Reflexive<Unknown24> unknown24;
        [Size(94)]
        public class Unknown24 : Chunk
        {
            public int unknown;
            public int unknown4;
            public int unknown8;
            public int unknown12;
            public int unknown16;
            public int unknown20;
            public int unknown24;
            public int unknown28;
            public int unknown32;
            public int unknown36;
            public int unknown40;
            public int unknown44;
            public int unknown48;
            public int unknown52;
            public int unknown56;
            public int unknown60;
            public int unknown64;
            public int unknown68;
            public int unknown72;
            public int unknown76;
            public int unknown80;
            public int unknown84;
            public int unknown88;
            public short unknown90;
        }

        //[Size(4)]
        //public byte[] unused32;

        public H3Reflexive<Unknown36> unknown36;
        [Size(16)]
        public class Unknown36 : Chunk
        {
            public int Unknown0;
            [Size(12)]
            public byte[] Reflex;
        }

        //[Size(4)]
        //public byte[] unused44;

        public H3Reflexive<Unknown48> unknown48;
        [Size(16)]
        public class Unknown48 : Chunk
        {
            public short Unknown0;
            public short Unknown2;
            public int Unknown4;
            public int Unknown8;
            public int Unknown12;
        }

        //[Size(4)]
        //public byte[] unused56;
    }
}
