diff --git a/inc/canvas/BackGround.hpp b/inc/canvas/BackGround.hpp index a24eca6..3cb7d64 100644 --- a/inc/canvas/BackGround.hpp +++ b/inc/canvas/BackGround.hpp @@ -18,7 +18,7 @@ private: void drawStars(); void drawSun(); void drawMounten(size_t mountenSegments, int min, int max, Color color, float scale); - + int getColorSet(); Dna *m_dna; uint128 mountenSeed; diff --git a/inc/values/Dna.hpp b/inc/values/Dna.hpp index 87d9f85..07d5ff6 100644 --- a/inc/values/Dna.hpp +++ b/inc/values/Dna.hpp @@ -50,9 +50,11 @@ struct Branch struct Dna { - Moon moon; - int colorSet; - int time; + uint8_t moonX; + uint8_t moonY; + uint8_t moonSize; + uint8_t colorSet; + uint128 mountenSeed; uint128 starSeed; uint128 branchSeed; diff --git a/src/canvas/BackGround.cpp b/src/canvas/BackGround.cpp index 6b64757..d76a6e6 100644 --- a/src/canvas/BackGround.cpp +++ b/src/canvas/BackGround.cpp @@ -28,10 +28,11 @@ void BackGround::draw(Dna *dna) m_dna = dna; mountenSeed = dna->mountenSeed; starSeed = dna->starSeed; + int time = std::floor(Remap(m_dna->moonY / 255.0f, 0, 1, 4, 0)); + int colorSet = getColorSet(); + BackGroundColors::setColor(colorSet, time); - BackGroundColors::setColor(m_dna->colorSet, m_dna->time); - - if (m_dna->colorSet == 3) + if (colorSet == 3) { ClearBackground(BackGroundColors::backGroundColor); drawStars(); @@ -89,21 +90,21 @@ void BackGround::drawStars() void BackGround::drawSun() { - int r = ((m_dna->moon.y * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize; - int xpos = Lerp(canvasSize * moonXOffset, canvasSize - canvasSize * moonXOffset, m_dna->moon.x); - int ypos = Lerp(canvasSize * moonXOffset, maxYPosOfMoon * canvasSize, m_dna->moon.y); + int r = ((m_dna->moonY / 255.0f * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize; + int xpos = Lerp(canvasSize * moonXOffset, canvasSize - canvasSize * moonXOffset, m_dna->moonX / 255.0f); + int ypos = Lerp(canvasSize * moonXOffset, maxYPosOfMoon * canvasSize, m_dna->moonY / 255.0f); - if (m_dna->colorSet == 3) + if (getColorSet() == 3) { Circle::setColor(BackGroundColors::moonColor); - r = ((m_dna->moon.size * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize; + r = (((m_dna->moonSize / 255.0f) * (maxSizeOfMoon - minSizeOfMoon)) + minSizeOfMoon) * canvasSize; } else { Color color = {0}; color.r = 255; - color.g = std::lerp(200, 50, m_dna->moon.y); - color.b = std::lerp(50, 0, m_dna->moon.y); + color.g = std::lerp(200, 50, m_dna->moonY / 255.0f); + color.b = std::lerp(50, 0, m_dna->moonY / 255.0f); color.a = 255; Circle::setColor(color); @@ -164,4 +165,16 @@ void BackGround::drawMounten(size_t mountenSegments, int min, int max, Color col } rlEnd(); rlSetTexture(0); +} + +int BackGround::getColorSet() +{ + uint8_t colorSet = m_dna->colorSet; + if (colorSet < 64) + return 0; + if (colorSet < 128) + return 1; + if (colorSet < 192) + return 2; + return 3; } \ No newline at end of file diff --git a/src/values/Dna.cpp b/src/values/Dna.cpp index 3f17e63..f3dc19a 100644 --- a/src/values/Dna.cpp +++ b/src/values/Dna.cpp @@ -7,10 +7,10 @@ void newDna(Dna &dna) { - TraceLog(LOG_INFO, "SIZE OF DNA:%d", sizeof(dna)); - dna.moon = {mrand::getFloat(), mrand::getFloat(), mrand::getFloat()}; - dna.colorSet = mrand::getValue(0, 3); - dna.time = std::floor(Remap(dna.moon.y, 0, 1, 4, 0)); + dna.moonX = mrand::getValue(0, 254); + dna.moonY = mrand::getValue(0, 254); + dna.moonSize = mrand::getValue(0, 254); + dna.colorSet = mrand::getValue(0, 254); dna.mountenSeed.a = mrand::getInt(); dna.mountenSeed.b = mrand::getInt();