pub struct Position {
pub x: u8,
pub y: u8,
}
pub struct PositionY {
pub y: u8,
}
pub struct Scale {
pub w: u8,
pub h: u8,
}
pub struct ScaleX {
pub w: u8,
}
pub struct ScaleY {
pub h: u8,
}
pub struct Rotation {
pub ang: u8,
}
pub enum GenericColor {
CafeTable(usize),
NxTable(usize),
}
pub struct FavoriteColor(usize);
pub struct Eye {
pub ty: u8,
pub color: GenericColor,
pub pos: Position,
pub scale: ScaleY,
pub rotation: Rotation,
}
pub struct Eyebrow {
pub ty: u8,
pub color: GenericColor,
pub pos: Position,
pub scale: Scale,
pub rotation: Rotation,
}
pub struct Nose {
pub ty: u8,
pub pos: PositionY,
pub scale: ScaleX,
}
pub struct Mouth {
pub ty: u8,
pub color: GenericColor,
pub pos: PositionY,
pub scale: Scale,
}
pub struct Faceline {
pub ty: u8,
pub color: GenericColor,
pub wrinkle_ty: u8,
pub makeup_ty: u8,
}
pub struct Hair {
pub ty: u8,
pub color: GenericColor,
pub flip: bool,
}
pub struct Beard {
pub ty: u8,
pub color: GenericColor,
}
pub struct Mustache {
pub ty: u8,
pub color: GenericColor,
pub scale: ScaleY,
}
pub struct Glass {
pub ty: u8,
pub color: GenericColor,
pub pos: PositionY,
pub scale: ScaleX,
}
pub struct Mole {
pub ty: u8,
pub pos: Position,
pub scale: ScaleX,
}
pub enum Gender {
Male,
Female,
}
pub struct Body {
pub gender: Gender, pub height: u8,
pub build: u8,
}
pub struct MetaData {
pub special: bool,
pub favorite_color: FavoriteColor,
}
pub struct CtrCreationData {}
pub struct NxCreationData {}
pub enum CreationData {
Ctr(CtrCreationData),
Nx(NxCreationData),
}
pub struct GenericChar {
pub name: String,
pub meta_data: MetaData,
pub creation_data: CreationData,
pub body: Body,
pub faceline: Faceline,
pub hair: Hair,
pub eye: Eye,
pub eyebrow: Eyebrow,
pub nose: Nose,
pub mouth: Mouth,
pub beard: Beard,
pub mustache: Mustache,
pub glass: Glass,
pub mole: Mole,
}