diff --git a/include/rainbow.h b/include/rainbow.h index 6f9c056bf..62d46b51d 100644 --- a/include/rainbow.h +++ b/include/rainbow.h @@ -25,13 +25,14 @@ typedef struct Rainbow { Color_RGB8 color; u8 state; u8 speed; - bool allowDebug; + u8 bAllowDebug; + u8 bPause; } Rainbow; void Rainbow_Debug(Rainbow* this); void Rainbow_InitColor(Rainbow* this); void Rainbow_Init(Rainbow* this); -bool Rainbow_CheckColor(Rainbow* this, Color_RGB8 rgb); +u8 Rainbow_CheckColor(Rainbow* this, Color_RGB8 rgb); void Rainbow_UpdateColor(Rainbow* this); void Rainbow_UpdateState(Rainbow* this, RainbowTarget target); void Rainbow_Update(Rainbow* this); diff --git a/src/code/rainbow.c b/src/code/rainbow.c index 9357973f8..18629911b 100644 --- a/src/code/rainbow.c +++ b/src/code/rainbow.c @@ -32,11 +32,12 @@ void Rainbow_InitColor(Rainbow* this) { void Rainbow_Init(Rainbow* this) { this->state = STATE_RED_TO_YELLOW; this->speed = 8; - this->allowDebug = false; + this->bAllowDebug = false; + this->bPause = false; Rainbow_InitColor(this); } -bool Rainbow_CheckColor(Rainbow* this, Color_RGB8 rgb) { +u8 Rainbow_CheckColor(Rainbow* this, Color_RGB8 rgb) { return ((this->color.r == rgb.r) && (this->color.g == rgb.g) && (this->color.b == rgb.b)); } @@ -71,10 +72,12 @@ void Rainbow_UpdateState(Rainbow* this, RainbowTarget target) { } void Rainbow_Update(Rainbow* this) { - Rainbow_UpdateColor(this); - Rainbow_UpdateState(this, sRainbowTarget[this->state]); + if (!this->bPause) { + Rainbow_UpdateColor(this); + Rainbow_UpdateState(this, sRainbowTarget[this->state]); - if (this->allowDebug) { - Rainbow_Debug(this); + if (this->bAllowDebug) { + Rainbow_Debug(this); + } } }