package mii2studio
// Code generated by kaitai-struct-compiler from a .ksy source file. DO NOT EDIT.

import "github.com/kaitai-io/kaitai_struct_go_runtime/kaitai"

type Gen3Studio struct {
	FacialHairColor uint8
	BeardGoatee uint8
	BodyWeight uint8
	EyeStretch uint8
	EyeColor uint8
	EyeRotation uint8
	EyeSize uint8
	EyeType uint8
	EyeHorizontal uint8
	EyeVertical uint8
	EyebrowStretch uint8
	EyebrowColor uint8
	EyebrowRotation uint8
	EyebrowSize uint8
	EyebrowType uint8
	EyebrowHorizontal uint8
	EyebrowVertical uint8
	FaceColor uint8
	FaceMakeup uint8
	FaceType uint8
	FaceWrinkles uint8
	FavoriteColor uint8
	Gender uint8
	GlassesColor uint8
	GlassesSize uint8
	GlassesType uint8
	GlassesVertical uint8
	HairColor uint8
	HairFlip uint8
	HairType uint8
	BodyHeight uint8
	MoleSize uint8
	MoleEnable uint8
	MoleHorizontal uint8
	MoleVertical uint8
	MouthStretch uint8
	MouthColor uint8
	MouthSize uint8
	MouthType uint8
	MouthVertical uint8
	BeardSize uint8
	BeardMustache uint8
	BeardVertical uint8
	NoseSize uint8
	NoseType uint8
	NoseVertical uint8
	_io *kaitai.Stream
	_root *Gen3Studio
	_parent interface{}
}
func NewGen3Studio() *Gen3Studio {
	return &Gen3Studio{
	}
}

func (this *Gen3Studio) Read(io *kaitai.Stream, parent interface{}, root *Gen3Studio) (err error) {
	this._io = io
	this._parent = parent
	this._root = root

	tmp1, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.FacialHairColor = tmp1
	tmp2, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.BeardGoatee = tmp2
	tmp3, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.BodyWeight = tmp3
	tmp4, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeStretch = tmp4
	tmp5, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeColor = tmp5
	tmp6, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeRotation = tmp6
	tmp7, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeSize = tmp7
	tmp8, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeType = tmp8
	tmp9, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeHorizontal = tmp9
	tmp10, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyeVertical = tmp10
	tmp11, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowStretch = tmp11
	tmp12, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowColor = tmp12
	tmp13, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowRotation = tmp13
	tmp14, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowSize = tmp14
	tmp15, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowType = tmp15
	tmp16, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowHorizontal = tmp16
	tmp17, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.EyebrowVertical = tmp17
	tmp18, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.FaceColor = tmp18
	tmp19, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.FaceMakeup = tmp19
	tmp20, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.FaceType = tmp20
	tmp21, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.FaceWrinkles = tmp21
	tmp22, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.FavoriteColor = tmp22
	tmp23, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.Gender = tmp23
	tmp24, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.GlassesColor = tmp24
	tmp25, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.GlassesSize = tmp25
	tmp26, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.GlassesType = tmp26
	tmp27, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.GlassesVertical = tmp27
	tmp28, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.HairColor = tmp28
	tmp29, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.HairFlip = tmp29
	tmp30, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.HairType = tmp30
	tmp31, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.BodyHeight = tmp31
	tmp32, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MoleSize = tmp32
	tmp33, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MoleEnable = tmp33
	tmp34, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MoleHorizontal = tmp34
	tmp35, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MoleVertical = tmp35
	tmp36, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MouthStretch = tmp36
	tmp37, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MouthColor = tmp37
	tmp38, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MouthSize = tmp38
	tmp39, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MouthType = tmp39
	tmp40, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.MouthVertical = tmp40
	tmp41, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.BeardSize = tmp41
	tmp42, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.BeardMustache = tmp42
	tmp43, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.BeardVertical = tmp43
	tmp44, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.NoseSize = tmp44
	tmp45, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.NoseType = tmp45
	tmp46, err := this._io.ReadU1()
	if err != nil {
		return err
	}
	this.NoseVertical = tmp46
	return err
}

/**
 * Facial hair color. Ranges from 0 to 99. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{hair-color} for default colors and /maps.txt/{colors} for custom colors.
 */

/**
 * Beard (goatee) type. Ranges from 0 to 5.
 */

/**
 * Body weight. Ranges from 0 to 127, small to large.
 */

/**
 * Eye stretch. Ranges from 0 to 6, small to large.
 */

/**
 * Eye color. Ranges from 0 to 99. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{eye-color} for default colors and /maps.txt/{colors} for custom colors.
 */

/**
 * Eye rotation. Ranges from 0 to 7, down to up. Note that some eye types have a default rotation. You can find more specifics at /rotation.txt/{eyes}.
 */

/**
 * Eye size. Ranges from 0 to 7, small to large.
 */

/**
 * Eye type. Ranges from 0 to 59. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{eyes}.
 */

/**
 * Eye X (horizontal) distance. Ranges from 0 to 12, close to far.
 */

/**
 * Eye Y (vertical) position. Ranges from 18 to 0, low to high.
 */

/**
 * Eyebrow stretch. Ranges from 0 to 6, small to large.
 */

/**
 * Eyebrow color. Ranges from 0 to 99. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{hair-color} for default colors and /maps.txt/{colors} for custom colors.
 */

/**
 * Eyebrow rotation. Ranges from 0 to 11, down to up. Note that some eyebrow types have a default rotation. You can find more specifics at /rotation.txt/{eyebrows}.
 */

/**
 * Eyebrow size. Ranges from 0 to 8, small to large.
 */

/**
 * Eyebrow type. Ranges from 0 to 23. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{eyebrows}.
 */

/**
 * Eyebrow X (horizontal) distance. Ranges from 0 to 12, close to far.
 */

/**
 * Eyebrow Y (vertical) distance. Ranges from 12 to 3, low to high.
 */

/**
 * Skin color. Ranges from 0 to 9. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{skin}.
 */

/**
 * Face makeup. Ranges from 0 to 11.
 */

/**
 * Face shape. Ranges from 0 to 11. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{face}.
 */

/**
 * Face wrinkles. Ranges from 0 to 11.
 */

/**
 * Favorite color. Ranges from 0 to 11.
 */

/**
 * Mii gender. 0 = male, 1 = female.
 */

/**
 * Glasses color. Ranges from 0 to 99. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{glasses-color} for default colors and /maps.txt/{colors} for custom colors.
 */

/**
 * Glasses size. Ranges from 0 to 7, small to large.
 */

/**
 * Glasses type. Ranges from 0 to 19. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{glasses}.
 */

/**
 * Glasses Y (vertical) position. Ranges from 20 to 0, low to high.
 */

/**
 * Hair color. Ranges from 0 to 99. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{hair-color} for default colors and /maps.txt/{colors} for custom colors.
 */

/**
 * Flip hair. 0 = no, 1 = yes.
 */

/**
 * Hair type. Ranges from 0 to 131. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{hair}.
 */

/**
 * Body height. Ranges from 0 to 127, short to tall.
 */

/**
 * Beauty mark size. Ranges from 0 to 8, small to large.
 */

/**
 * Enable beauty mark. 0 = no, 1 = yes.
 */

/**
 * Beauty mark X (horizontal) position. Ranges from 0 to 16, left to right.
 */

/**
 * Beauty mark Y (vertical) position. Ranges from 30 to 0, low to high.
 */

/**
 * Mouth stretch. Ranges from 0 to 6, small to large.
 */

/**
 * Mouth color. The default colors are ordered the same as visible in editor, ranging from 19 to 23. The custom colors are not and range from 0 to 99. A map of the internal values in correlation to the Mii editor is at /maps.txt/{colors} for custom colors.
 */

/**
 * Mouth size. Ranges from 0 to 8, small to large.
 */

/**
 * Mouth type. Ranges from 0 to 35. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{mouth}.
 */

/**
 * Mouth Y (vertical) position. Ranges from 18 to 0, low to high.
 */

/**
 * Mustache size. Ranges from 0 to 8, small to large.
 */

/**
 * Mustache type. Ranges from 0 to 5.
 */

/**
 * Mustache Y (vertical) position. Ranges from 16 to 0, low to high.
 */

/**
 * Nose size. Ranges from 0 to 8, small to large.
 */

/**
 * Nose type. Ranges from 0 to 17. Not ordered the same as visible in editor. A map of the internal values in correlation to the Mii editor is at /maps.txt/{nose}.
 */

/**
 * Nose Y (vertical) position. Ranges from 18 to 0, low to high.
 */
