I just learned that unintialized variables in C can lead to lots of unexpected and hard-to-debug behaviour... :-/
This commit is contained in:
parent
2072877159
commit
477edd1597
@ -43,12 +43,12 @@ protected:
|
|||||||
uint8_t currentFrame = 0;
|
uint8_t currentFrame = 0;
|
||||||
uint8_t* animation_data;
|
uint8_t* animation_data;
|
||||||
CRGB* colors;
|
CRGB* colors;
|
||||||
CRGB* fgColor;
|
CRGB* fgColor = NULL;
|
||||||
CRGB* bgColor = new CRGB(0x000000);
|
CRGB* bgColor = new CRGB(0x000000);
|
||||||
int8_t xOffset = 0;
|
int8_t xOffset = 0;
|
||||||
int8_t yOffset = 0;
|
int8_t yOffset = 0;
|
||||||
uint8_t startFrame;
|
uint8_t startFrame = 0;
|
||||||
uint8_t endFrame;
|
uint8_t endFrame = 0;
|
||||||
|
|
||||||
virtual CRGB* getColor(uint8_t color_index);
|
virtual CRGB* getColor(uint8_t color_index);
|
||||||
void drawFrame(Window* w, uint8_t frame_index);
|
void drawFrame(Window* w, uint8_t frame_index);
|
||||||
|
@ -139,7 +139,9 @@ bool Animation::advance() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Animation::drawPixel(Window* win, int index, CRGB* color) {
|
void Animation::drawPixel(Window* win, int index, CRGB* color) {
|
||||||
win->setPixel(this->xOffset + (index % this->data->w), this->yOffset + (index / this->data->h), color);
|
uint8_t x = this->xOffset + (index % this->data->w);
|
||||||
|
uint8_t y = this->yOffset + (index / this->data->h);
|
||||||
|
win->setPixel(x, y, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t Animation::getFrameDelay(int frame) {
|
uint16_t Animation::getFrameDelay(int frame) {
|
||||||
@ -149,6 +151,6 @@ uint16_t Animation::getFrameDelay(int frame) {
|
|||||||
|
|
||||||
CRGB* Animation::getColor(uint8_t index) {
|
CRGB* Animation::getColor(uint8_t index) {
|
||||||
if (index==1) return this->bgColor;
|
if (index==1) return this->bgColor;
|
||||||
else if (this->fgColor) return this->fgColor;
|
else if (this->fgColor != NULL) return this->fgColor;
|
||||||
else return &this->colors[index - 2];
|
else return &(this->colors[index - 2]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user