//========= CONSTRUCTORS =========
        #region Constructors

        /**<summary>Constructs the default attraction car header.</summary>*/
        public CarHeader()
        {
            LastRotationFrame         = 0;
            NumVerticalFramesUnused   = 0;
            NumHorizontalFramesUnused = 0;

            Spacing       = 0;
            CarFriction   = 0;
            CarTabHeight  = 0;
            RiderSettings = 0;
            SpriteFlags   = CarSpriteFlags.None;

            SpriteWidth          = 0;
            SpriteHeightPositive = 0;
            SpriteHeightNegative = 0;

            Animation     = 0;
            Flags         = CarFlags.None;
            BaseNumFrames = 0;

            Reserved0x18 = new byte[60];
            for (int i = 0; i < Reserved0x18.Length; i++)
            {
                Reserved0x18[i] = 0;
            }

            RiderSprites     = 0;
            SpinningInertia  = 0;
            SpinningFriction = 0;

            FrictionSoundID = 0;
            Unknown0x58     = 0;
            SoundRange      = 0;
            Unknown0x5A     = 0;

            PoweredAcceleration = 0;
            PoweredMaxSpeed     = 0;
            CarVisual           = CarVisuals.Default;
            EffectVisual        = CarEffectVisuals.Default;
            DrawOrder           = 0;
            SpecialFrames       = 0;
            Reserved0x61        = 0;
        }
        //=========== READING ============
        #region Reading

        /**<summary>Reads the object header.</summary>*/
        public void Read(BinaryReader reader)
        {
            LastRotationFrame = reader.ReadUInt16();

            NumVerticalFramesUnused   = reader.ReadByte();
            NumHorizontalFramesUnused = reader.ReadByte();

            Spacing       = reader.ReadUInt32();
            CarFriction   = reader.ReadUInt16();
            CarTabHeight  = reader.ReadSByte();
            RiderSettings = reader.ReadByte();
            SpriteFlags   = (CarSpriteFlags)reader.ReadUInt16();

            SpriteWidth          = reader.ReadByte();
            SpriteHeightPositive = reader.ReadByte();
            SpriteHeightNegative = reader.ReadByte();

            Animation     = reader.ReadByte();
            Flags         = (CarFlags)reader.ReadUInt32();
            BaseNumFrames = reader.ReadUInt16();

            reader.Read(Reserved0x18, 0, Reserved0x18.Length);

            RiderSprites     = reader.ReadByte();
            SpinningInertia  = reader.ReadByte();
            SpinningFriction = reader.ReadByte();

            FrictionSoundID = reader.ReadByte();
            Unknown0x58     = reader.ReadByte();
            SoundRange      = reader.ReadByte();
            Unknown0x5A     = reader.ReadByte();

            PoweredAcceleration = reader.ReadByte();
            PoweredMaxSpeed     = reader.ReadByte();
            CarVisual           = (CarVisuals)reader.ReadByte();
            EffectVisual        = (CarEffectVisuals)reader.ReadByte();
            DrawOrder           = reader.ReadByte();
            SpecialFrames       = reader.ReadByte();

            Reserved0x61 = reader.ReadUInt32();
        }