#pragma once

/**
 * @struct glColour
 *
 * @brief Represents a colour via it's RGBA values.
 */
typedef struct glColour_ {
  double r;   /**< Red value of the colour    (0 to 1). */
  double g;   /**< Green value of the colour  (0 to 1). */
  double b;   /**< Blue value of the colour   (0 to 1). */
  double a;   /**< Alpha value of the colour  (0 to 1). */
} glColour;

/* Default colors. */
/* -- Greyscale. */
extern glColour cWhite;
#define cGrey   cGrey70
extern glColour cBlack;

/* Greys */
extern glColour cGrey90;
extern glColour cGrey80;
extern glColour cGrey70;
extern glColour cGrey60;
extern glColour cGrey50;
extern glColour cGrey40;
extern glColour cGrey30;
extern glColour cGrey20;
extern glColour cGrey10;

extern glColour cGreen;
extern glColour cDarkRed;
extern glColour cRed;
extern glColour cYellow;
extern glColour cDarkBlue;
extern glColour cBlue;
extern glColour cPurple;

/* Game specific. */
extern glColour cConsole;
extern glColour cDConsole;
/* Toolkit. */
extern glColour cHilight;
/* Objects. */
extern glColour cInert;
extern glColour cNeutral;
extern glColour cFriend;
extern glColour cHostile;
/* Radar. */
extern glColour cRadar_player;
extern glColour cRadar_targ;
extern glColour cRadar_weap;
/* Health. */
extern glColour cShield;
extern glColour cArmour;
extern glColour cEnergy;

