#ifndef DNA_H
#define DNA_H

#include <cinttypes>
#include <array>

#include <raylib.h>

#define MAX_DEPTH 10

struct uint128
{
  uint32_t a;
  uint32_t b;
  uint32_t c;
  uint32_t d;
};

struct Moon
{
  float x;
  float y;
  float size;
};

struct Branch
{
  uint8_t colorR;
  uint8_t colorG;
  uint8_t colorB;
  uint8_t branch_count;
};

struct Dna
{
  Moon moon;
  int colorSet;
  int time;
  uint128 mountenSeed;
  uint128 starSeed;
  uint128 branchSeed;
  std::array<Branch, MAX_DEPTH> branches;
};

void newDna(Dna &dna);

#endif /* DNA_H */