From a96ba1f43f9cf94fb665f77592c4817852eb7648 Mon Sep 17 00:00:00 2001 From: Nikola Petrov Date: Thu, 2 Jan 2025 23:07:36 +0100 Subject: [PATCH] Fix bug and update newDna bug: if moonY was 0 time would become 4 and it colors would be wrong --- inc/canvas/BackGround.hpp | 2 ++ src/canvas/BackGround.cpp | 14 +++++++++++++- src/values/Dna.cpp | 20 ++------------------ 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/inc/canvas/BackGround.hpp b/inc/canvas/BackGround.hpp index 3cb7d64..8a07630 100644 --- a/inc/canvas/BackGround.hpp +++ b/inc/canvas/BackGround.hpp @@ -19,6 +19,8 @@ private: void drawSun(); void drawMounten(size_t mountenSegments, int min, int max, Color color, float scale); int getColorSet(); + int getTime(); + Dna *m_dna; uint128 mountenSeed; diff --git a/src/canvas/BackGround.cpp b/src/canvas/BackGround.cpp index d76a6e6..ef9f32f 100644 --- a/src/canvas/BackGround.cpp +++ b/src/canvas/BackGround.cpp @@ -28,7 +28,7 @@ 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 time = getTime(); int colorSet = getColorSet(); BackGroundColors::setColor(colorSet, time); @@ -177,4 +177,16 @@ int BackGround::getColorSet() if (colorSet < 192) return 2; return 3; +} + +int BackGround::getTime() +{ + uint8_t ret = m_dna->moonY; + if (ret < 64) + return 0; + if (ret < 128) + return 1; + if (ret < 192) + return 2; + return 3; } \ No newline at end of file diff --git a/src/values/Dna.cpp b/src/values/Dna.cpp index b33a672..ee0f76e 100644 --- a/src/values/Dna.cpp +++ b/src/values/Dna.cpp @@ -8,26 +8,10 @@ void newDna(Dna &dna) { - dna.mountenSeed.a = mrand::getInt(); - dna.mountenSeed.b = mrand::getInt(); - dna.mountenSeed.c = mrand::getInt(); - dna.mountenSeed.d = mrand::getInt(); - - dna.starSeed.a = mrand::getInt(); - dna.starSeed.b = mrand::getInt(); - dna.starSeed.c = mrand::getInt(); - dna.starSeed.d = mrand::getInt(); - - dna.branchSeed.a = mrand::getInt(); - dna.branchSeed.b = mrand::getInt(); - dna.branchSeed.c = mrand::getInt(); - dna.branchSeed.d = mrand::getInt(); - uint8_t *array = (uint8_t *)&dna; - for (size_t i = offsetof(Dna, moonX); i < sizeof(Dna); i++) + for (size_t i = 0; i < sizeof(Dna); i++) { - array[i] = mrand::getValue(0, 254); + array[i] = mrand::getValue(0, 255); } - return; }