#if !defined(LD_GAME_NPC_LOOK_H_)
#define LD_GAME_NPC_LOOK_H_

typedef struct NPC_LOOK NPC_LOOK;
typedef enum NPC_HAIR_COLOUR NPC_HAIR_COLOUR;
typedef enum NPC_JACKET_COLOUR NPC_JACKET_COLOUR;
typedef enum NPC_JEANS_COLOUR NPC_JEANS_COLOUR;
typedef enum NPC_EYE_COLOUR NPC_EYE_COLOUR;
typedef enum NPC_SKIN_TONE NPC_SKIN_TONE;
typedef enum NPC_HAT NPC_HAT;
typedef enum NPC_FACIAL_FEATURE NPC_FACIAL_FEATURE;

enum NPC_HAIR_COLOUR {
  NPC_HAIR_COLOUR_UNKNOWN,
  NPC_HAIR_COLOUR_BLONDE,
  NPC_HAIR_COLOUR_BLACK,
  NPC_HAIR_COLOUR_BRUNETTE,
  NPC_HAIR_COLOUR_GIGNER,
};

enum NPC_JACKET_COLOUR {
  NPC_JACKET_COLOUR_UNKNOWN,
  NPC_JACKET_COLOUR_TAN,
  NPC_JACKET_COLOUR_BLUE,
  NPC_JACKET_COLOUR_WHITE,
};

enum NPC_JEANS_COLOUR {
  NPC_JEANS_COLOUR_UNKNOWN,
  NPC_JEANS_COLOUR_TAN,
  NPC_JEANS_COLOUR_BLACK,
  NPC_JEANS_COLOUR_BLUE,
  NPC_JEANS_COLOUR_WHITE,
};

enum NPC_EYE_COLOUR {
  NPC_EYE_COLOUR_UNKNOWN,
  NPC_EYE_COLOUR_GREEN,
  NPC_EYE_COLOUR_BLUE,
  NPC_EYE_COLOUR_BROWN,
};

enum NPC_SHOE_COLOUR {
  NPC_SHOE_COLOUR_UNKNOWN,
  NPC_SHOE_COLOUR_BLACK,
  NPC_SHOE_COLOUR_BROWN,
  NPC_SHOE_COLOUR_WHITE,
  NPC_SHOE_COLOUR_NAVY,
};

enum NPC_SKIN_TONE {
  NPC_SKIN_TONE_UNKNOWN,
  NPC_SKIN_TONE_WHITE,
  NPC_SKIN_TONE_BLACK,
};

enum NPC_FACIAL_FEATURE {
  NPC_FACIAL_FEATURE_UNKNOWN,
  NPC_FACIAL_FEATURE_BEARD,
  NPC_FACIAL_FEATURE_MUSTACHE,
  NPC_FACIAL_FEATURE_GLASSES,
};

enum NPC_HAT {
  NPC_HAT_UNKNOWN,
  NPC_HAT_TEN_GALLON,
  NPC_TOP_HAT,
  NPC_FLAT_CAP,
  NPC_NONE,
};

struct NPC_LOOK {
  NPC_HAIR_COLOUR hair;
  NPC_JACKET_COLOUR jacket;
  NPC_JEANS_COLOUR jeans;
  NPC_EYE_COLOUR eyes;
  NPC_SKIN_TONE skinTone;
  NPC_HAT hat;
  NPC_FACIAL_FEATURE facialFeature;
};

#endif  // LD_GAME_NPC_LOOK_H_
