|
|
|
|
@ -161,8 +161,6 @@ public:
|
|
|
|
|
for (uint8_t x = 0; x < DISPLAY_CHAR_WIDTH; ++x) {
|
|
|
|
|
if (*(symbolBit++)) {
|
|
|
|
|
set(xPos + x, yPos + y, color);
|
|
|
|
|
} else {
|
|
|
|
|
set(xPos + x, yPos + y, BLACK);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -182,8 +180,6 @@ public:
|
|
|
|
|
for (int x = 0; x < countof(sym[0]); ++x) {
|
|
|
|
|
if (sym[y][x]) {
|
|
|
|
|
set(xPos + x, yPos + y, color);
|
|
|
|
|
} else {
|
|
|
|
|
set(xPos + x, yPos + y, BLACK);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -235,6 +231,184 @@ public:
|
|
|
|
|
return countof(sym[0]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO REMOVE QUICK & DIRTY
|
|
|
|
|
uint8_t printHeart(uint8_t xPos, uint8_t yPos) {
|
|
|
|
|
bool a[1][1] = {
|
|
|
|
|
{X},
|
|
|
|
|
};
|
|
|
|
|
bool b[3][3] = {
|
|
|
|
|
{X, _, X},
|
|
|
|
|
{X, X, X},
|
|
|
|
|
{_, X, _},
|
|
|
|
|
};
|
|
|
|
|
bool c[5][5] = {
|
|
|
|
|
{_, X, _, X, _},
|
|
|
|
|
{X, _, X, _, X},
|
|
|
|
|
{X, _, _, _, X},
|
|
|
|
|
{_, X, _, X, _},
|
|
|
|
|
{_, _, X, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool d[7][7] = {
|
|
|
|
|
{_, X, X, _, X, X, _},
|
|
|
|
|
{X, _, _, X, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool e[9][9] = {
|
|
|
|
|
{_, _, X, _, _, _, X, _, _},
|
|
|
|
|
{_, X, _, X, _, X, _, X, _},
|
|
|
|
|
{X, _, _, _, X, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, _, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, X, _, _, _},
|
|
|
|
|
{_, _, _, _, X, _, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool f[11][11] = {
|
|
|
|
|
{_, _, X, X, _, _, _, X, X, _, _},
|
|
|
|
|
{_, X, _, _, X, _, X, _, _, X, _},
|
|
|
|
|
{X, _, _, _, _, X, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, _, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, _, _, _, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, _, _, X, _, _, _},
|
|
|
|
|
{_, _, _, _, X, _, X, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, X, _, _, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool g[13][13] = {
|
|
|
|
|
{_, _, _, X, _, _, _, _, _, X, _, _, _},
|
|
|
|
|
{_, _, X, _, X, _, _, _, X, _, X, _, _},
|
|
|
|
|
{_, X, _, _, _, X, _, X, _, _, _, X, _},
|
|
|
|
|
{X, _, _, _, _, _, X, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, _, _, _, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, _, _, _, _, _, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, _, _, _, _, X, _, _, _},
|
|
|
|
|
{_, _, _, _, X, _, _, _, X, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, X, _, X, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, X, _, _, _, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool h[15][15] = {
|
|
|
|
|
{_, _, _, X, X, _, _, _, _, _, X, X, _, _, _},
|
|
|
|
|
{_, _, X, _, _, X, _, _, _, X, _, _, X, _, _},
|
|
|
|
|
{_, X, _, _, _, _, X, _, X, _, _, _, _, X, _},
|
|
|
|
|
{X, _, _, _, _, _, _, X, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, _, _, _, _, _, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, _, _, _, _, _, _, _, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, _, _, _, _, _, _, X, _, _, _},
|
|
|
|
|
{_, _, _, _, X, _, _, _, _, _, X, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, X, _, _, _, X, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, X, _, X, _, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, _, X, _, _, _, _, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool i[17][17] = {
|
|
|
|
|
{_, _, _, _, X, _, _, _, _, _, _, _, X, _, _, _, _},
|
|
|
|
|
{_, _, _, X, _, X, _, _, _, _, _, X, _, X, _, _, _},
|
|
|
|
|
{_, _, X, _, _, _, X, _, _, _, X, _, _, _, X, _, _},
|
|
|
|
|
{_, X, _, _, _, _, _, X, _, X, _, _, _, _, _, X, _},
|
|
|
|
|
{X, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, _, _, _, _, _, _, _, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, _, _, _, _, _, _, _, _, _, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, _, _, _, _, _, _, _, _, X, _, _, _},
|
|
|
|
|
{_, _, _, _, X, _, _, _, _, _, _, _, X, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, X, _, _, _, _, _, X, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, X, _, _, _, X, _, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, _, X, _, X, _, _, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
bool j[19][19] = {
|
|
|
|
|
{_, _, _, _, X, X, _, _, _, _, _, _, _, X, X, _, _, _, _},
|
|
|
|
|
{_, _, _, X, _, _, X, _, _, _, _, _, X, _, _, X, _, _, _},
|
|
|
|
|
{_, _, X, _, _, _, _, X, _, _, _, X, _, _, _, _, X, _, _},
|
|
|
|
|
{_, X, _, _, _, _, _, _, X, _, X, _, _, _, _, _, _, X, _},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X},
|
|
|
|
|
{_, X, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X, _},
|
|
|
|
|
{_, _, X, _, _, _, _, _, _, _, _, _, _, _, _, _, X, _, _},
|
|
|
|
|
{_, _, _, X, _, _, _, _, _, _, _, _, _, _, _, X, _, _, _},
|
|
|
|
|
{_, _, _, _, X, _, _, _, _, _, _, _, _, _, X, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, X, _, _, _, _, _, _, _, X, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, X, _, _, _, _, _, X, _, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, _, X, _, _, _, X, _, _, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, _, _, X, _, X, _, _, _, _, _, _, _, _},
|
|
|
|
|
{_, _, _, _, _, _, _, _, _, X, _, _, _, _, _, _, _, _, _},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const auto now = millis();
|
|
|
|
|
static auto step = 0;
|
|
|
|
|
static auto last = now;
|
|
|
|
|
if (now - last >= 100) {
|
|
|
|
|
last = now;
|
|
|
|
|
step = (step + 1) % 30;
|
|
|
|
|
}
|
|
|
|
|
bool *s;
|
|
|
|
|
|
|
|
|
|
switch (step) {
|
|
|
|
|
case 0:
|
|
|
|
|
s = (bool *) a;
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
s = (bool *) b;
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
s = (bool *) c;
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
s = (bool *) d;
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
s = (bool *) e;
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
s = (bool *) f;
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
s = (bool *) g;
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
s = (bool *) h;
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
s = (bool *) i;
|
|
|
|
|
break;
|
|
|
|
|
case 9:
|
|
|
|
|
s = (bool *) j;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto size = step * 2 + 1;
|
|
|
|
|
for (int y = 0; y < size; ++y) {
|
|
|
|
|
for (int x = 0; x < size; ++x) {
|
|
|
|
|
if (s[y * size + x]) {
|
|
|
|
|
set(xPos + x - step, yPos + y - step, RED);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO REMOVE QUICK & DIRTY
|
|
|
|
|
uint8_t printI(uint8_t xPos, uint8_t yPos, Color color) {
|
|
|
|
|
for (int y = 0; y < 5; ++y) {
|
|
|
|
|
@ -248,7 +422,7 @@ public:
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void set(uint8_t x, uint8_t y, Color color) {
|
|
|
|
|
if (x >= width || y >= height) {
|
|
|
|
|
if (x < 0 || y < 0 || x >= width || y >= height) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if ((y % 2) != 0) {
|
|
|
|
|
|