Public Access
331 lines
9.6 KiB
C++
331 lines
9.6 KiB
C++
// Pixel art for the KonoSuba pages, generated by tools/konosuba_sprites.py;
|
|||
|
|
// edit the art there. Original 1-bit fan art, '#' = lit pixel.
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <stdint.h>
|
||
|
|
|
||
|
|
namespace esphome::el512::konosuba {
|
||
|
|
|
||
|
|
struct Sprite {
|
||
|
|
uint8_t w, h;
|
||
|
|
const char *const *rows;
|
||
|
|
};
|
||
|
|
|
||
|
|
static const char *const MEGUMIN_ROWS[] = {
|
||
|
|
"...............####.........",
|
||
|
|
"..............######........",
|
||
|
|
".............###...##.......",
|
||
|
|
"............####.....#......",
|
||
|
|
"...........#####............",
|
||
|
|
"..........######............",
|
||
|
|
"..........#######...........",
|
||
|
|
".........########...........",
|
||
|
|
".........#########..........",
|
||
|
|
"........##########..........",
|
||
|
|
"........#.........#.........",
|
||
|
|
"........###########.........",
|
||
|
|
"##########################..",
|
||
|
|
".########################...",
|
||
|
|
".....###############........",
|
||
|
|
".....##.#.##..#.#.##........",
|
||
|
|
".....#.............#........",
|
||
|
|
".....#..##....####.#........",
|
||
|
|
".....#..##....####.#........",
|
||
|
|
".....#.........#...#........",
|
||
|
|
".....##.............#.......",
|
||
|
|
"......#.....##.....#........",
|
||
|
|
".....###..........###.......",
|
||
|
|
"....####.##....##.####......",
|
||
|
|
"...######.######.######.....",
|
||
|
|
"..#######..####..#######....",
|
||
|
|
"..######...####...#######...",
|
||
|
|
".#######...#..#...#######...",
|
||
|
|
".######....#..#....######...",
|
||
|
|
".######...#....#...######...",
|
||
|
|
"#######...#....#...#######..",
|
||
|
|
"######...#......#...######..",
|
||
|
|
"######..##########..######..",
|
||
|
|
"#####...#........#...#####..",
|
||
|
|
"#####..#..........#..#####..",
|
||
|
|
"####...############...####..",
|
||
|
|
"........#......#............",
|
||
|
|
"........#......#............",
|
||
|
|
"........#......#............",
|
||
|
|
"........#......#............",
|
||
|
|
".......###....###...........",
|
||
|
|
".......####...####..........",
|
||
|
|
};
|
||
|
|
static constexpr Sprite MEGUMIN{28, 42, MEGUMIN_ROWS};
|
||
|
|
|
||
|
|
static const char *const STAFF_ROWS[] = {
|
||
|
|
"..#####..",
|
||
|
|
".#.....#.",
|
||
|
|
"#..###..#",
|
||
|
|
"#.#####.#",
|
||
|
|
"#.#####.#",
|
||
|
|
"#..###..#",
|
||
|
|
".#.....#.",
|
||
|
|
"..#...#..",
|
||
|
|
"...#.#...",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"...##....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....##...",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"...##....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....##...",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
"....#....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite STAFF{9, 42, STAFF_ROWS};
|
||
|
|
|
||
|
|
static const char *const MEGUMIN_DOWN_ROWS[] = {
|
||
|
|
"....###......................................................",
|
||
|
|
"...#####.....................................................",
|
||
|
|
"..######.....................................................",
|
||
|
|
"..#######....................................................",
|
||
|
|
".########.##.................................................",
|
||
|
|
".#########..##.........#######...............................",
|
||
|
|
"###########...##.....###########.............................",
|
||
|
|
"#.........#.....#...##.#.#.#.#.##..#####################.....",
|
||
|
|
"###########......#..#.#.#.#.#.#.#.########################...",
|
||
|
|
"...................##############.###########.##########.###.",
|
||
|
|
"....................############..#####...........######...##",
|
||
|
|
"......................########....####.............####......",
|
||
|
|
};
|
||
|
|
static constexpr Sprite MEGUMIN_DOWN{61, 12, MEGUMIN_DOWN_ROWS};
|
||
|
|
|
||
|
|
static const char *const KAZUMA_ROWS[] = {
|
||
|
|
"....######......",
|
||
|
|
"...########.....",
|
||
|
|
"..##########....",
|
||
|
|
"..#.#.##.#.#....",
|
||
|
|
"..#........#....",
|
||
|
|
"..#..#..#..#....",
|
||
|
|
"..#........#....",
|
||
|
|
"...#..##..#.....",
|
||
|
|
"....######......",
|
||
|
|
"..##########....",
|
||
|
|
".###.####.###...",
|
||
|
|
".##..#..#..##...",
|
||
|
|
".##..#..#..##.#.",
|
||
|
|
".##..####..##.#.",
|
||
|
|
".##..#..#..##.#.",
|
||
|
|
"..#..#..#..#.###",
|
||
|
|
"....#....#....#.",
|
||
|
|
"....#....#......",
|
||
|
|
"...##....##.....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite KAZUMA{16, 19, KAZUMA_ROWS};
|
||
|
|
|
||
|
|
static const char *const AQUA_ROWS[] = {
|
||
|
|
".....####.......",
|
||
|
|
"....#....#......",
|
||
|
|
".....####.......",
|
||
|
|
"....######......",
|
||
|
|
"...########.....",
|
||
|
|
"..##########....",
|
||
|
|
"..#........#....",
|
||
|
|
"..#..#..#..#....",
|
||
|
|
"..#........#....",
|
||
|
|
"..##..##..##....",
|
||
|
|
"..###....###....",
|
||
|
|
".####.##.####...",
|
||
|
|
".##..####..##...",
|
||
|
|
".##.#....#.##...",
|
||
|
|
".#.#......#.#...",
|
||
|
|
".#.#......#.#...",
|
||
|
|
"...########.....",
|
||
|
|
"....#....#......",
|
||
|
|
"....#....#......",
|
||
|
|
"...##....##.....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite AQUA{16, 20, AQUA_ROWS};
|
||
|
|
|
||
|
|
static const char *const MEGUMIN_S_ROWS[] = {
|
||
|
|
".......##.......",
|
||
|
|
"......####......",
|
||
|
|
".....######.....",
|
||
|
|
"....########....",
|
||
|
|
"....#......#....",
|
||
|
|
"################",
|
||
|
|
"...##########...",
|
||
|
|
"...#........#...",
|
||
|
|
"...#.#...##.#...",
|
||
|
|
"...#........#...",
|
||
|
|
"....#..##..#....",
|
||
|
|
".....######.....",
|
||
|
|
"...##########...",
|
||
|
|
"..############..",
|
||
|
|
"..###.####.###..",
|
||
|
|
"..##..#..#..##..",
|
||
|
|
"..##..####..##..",
|
||
|
|
"..############..",
|
||
|
|
".....#....#.....",
|
||
|
|
".....#....#.....",
|
||
|
|
"....##....##....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite MEGUMIN_S{16, 21, MEGUMIN_S_ROWS};
|
||
|
|
|
||
|
|
static const char *const DARKNESS_ROWS[] = {
|
||
|
|
"....######......",
|
||
|
|
"...########.###.",
|
||
|
|
"..##########.##.",
|
||
|
|
"..#.##..##.#..#.",
|
||
|
|
"..#........#....",
|
||
|
|
"..#..#..#..#....",
|
||
|
|
"..#........#....",
|
||
|
|
"...#..##..#.....",
|
||
|
|
"....######......",
|
||
|
|
"############....",
|
||
|
|
"##.########.##..",
|
||
|
|
"#..#.#..#.#..#..",
|
||
|
|
"...#.####.#.....",
|
||
|
|
"...#.#..#.#.....",
|
||
|
|
"...#.####.#.....",
|
||
|
|
"...########.....",
|
||
|
|
"....#....#......",
|
||
|
|
"....##...##.....",
|
||
|
|
"...###...###....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite DARKNESS{16, 19, DARKNESS_ROWS};
|
||
|
|
|
||
|
|
static const char *const TOAD_ROWS[] = {
|
||
|
|
"......####............####......",
|
||
|
|
".....#....#..........#....#.....",
|
||
|
|
"....#..##..#........#..##..#....",
|
||
|
|
"....#..##..##########..##..#....",
|
||
|
|
"...##.....#..........#.....##...",
|
||
|
|
"..#..........................#..",
|
||
|
|
".#....#..........#.......#....#.",
|
||
|
|
"#..............................#",
|
||
|
|
"#.....##....#.........##...#...#",
|
||
|
|
"#..............................#",
|
||
|
|
"#..####################........#",
|
||
|
|
"#......................#.......#",
|
||
|
|
".#........#.......#...........#.",
|
||
|
|
"..#..##..................##..#..",
|
||
|
|
"...##..#................#..##...",
|
||
|
|
"..#.....#..............#.....#..",
|
||
|
|
".#..###..#............#..###..#.",
|
||
|
|
"##########............##########",
|
||
|
|
};
|
||
|
|
static constexpr Sprite TOAD{32, 18, TOAD_ROWS};
|
||
|
|
|
||
|
|
static const char *const TOAD_TONGUE_ROWS[] = {
|
||
|
|
"......####............####......",
|
||
|
|
".....#....#..........#....#.....",
|
||
|
|
"....#..##..#........#..##..#....",
|
||
|
|
"....#..##..##########..##..#....",
|
||
|
|
"...##.....#..........#.....##...",
|
||
|
|
"..#..........................#..",
|
||
|
|
".#....#..........#.......#....#.",
|
||
|
|
"#..............................#",
|
||
|
|
"#.....##....#.........##...#...#",
|
||
|
|
"#..............................#",
|
||
|
|
"#..####################........#",
|
||
|
|
"#...#..................#.......#",
|
||
|
|
".#...#....#.......#...........#.",
|
||
|
|
"..#...#..##..............##..#..",
|
||
|
|
"...##..#.##.............#..##...",
|
||
|
|
"..#.....####...........#.....#..",
|
||
|
|
".#..###..##...........#..###..#.",
|
||
|
|
"##########............##########",
|
||
|
|
};
|
||
|
|
static constexpr Sprite TOAD_TONGUE{32, 18, TOAD_TONGUE_ROWS};
|
||
|
|
|
||
|
|
static const char *const CABBAGE_A_ROWS[] = {
|
||
|
|
"#..............#",
|
||
|
|
"##...######...##",
|
||
|
|
".##.#..#...#.##.",
|
||
|
|
"..##.#.#..#.##..",
|
||
|
|
"...#..###...#...",
|
||
|
|
"...#.#.#.#..#...",
|
||
|
|
"....#..#...#....",
|
||
|
|
".....######.....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite CABBAGE_A{16, 8, CABBAGE_A_ROWS};
|
||
|
|
|
||
|
|
static const char *const CABBAGE_B_ROWS[] = {
|
||
|
|
"................",
|
||
|
|
".....######.....",
|
||
|
|
"....#..#...#....",
|
||
|
|
"...#.#.#..#.#...",
|
||
|
|
"####..###...####",
|
||
|
|
"##.#.#.#.#..#.##",
|
||
|
|
"#...#..#...#...#",
|
||
|
|
".....######.....",
|
||
|
|
};
|
||
|
|
static constexpr Sprite CABBAGE_B{16, 8, CABBAGE_B_ROWS};
|
||
|
|
|
||
|
|
static const char *const MEGUMIN_BLINK_ROWS[] = {
|
||
|
|
"...............####.........",
|
||
|
|
"..............######........",
|
||
|
|
".............###...##.......",
|
||
|
|
"............####.....#......",
|
||
|
|
"...........#####............",
|
||
|
|
"..........######............",
|
||
|
|
"..........#######...........",
|
||
|
|
".........########...........",
|
||
|
|
".........#########..........",
|
||
|
|
"........##########..........",
|
||
|
|
"........#.........#.........",
|
||
|
|
"........###########.........",
|
||
|
|
"##########################..",
|
||
|
|
".########################...",
|
||
|
|
".....###############........",
|
||
|
|
".....##.#.##..#.#.##........",
|
||
|
|
".....#.............#........",
|
||
|
|
".....#........####.#........",
|
||
|
|
".....#..##....####.#........",
|
||
|
|
".....#.........#...#........",
|
||
|
|
".....##.............#.......",
|
||
|
|
"......#.....##.....#........",
|
||
|
|
".....###..........###.......",
|
||
|
|
"....####.##....##.####......",
|
||
|
|
"...######.######.######.....",
|
||
|
|
"..#######..####..#######....",
|
||
|
|
"..######...####...#######...",
|
||
|
|
".#######...#..#...#######...",
|
||
|
|
".######....#..#....######...",
|
||
|
|
".######...#....#...######...",
|
||
|
|
"#######...#....#...#######..",
|
||
|
|
"######...#......#...######..",
|
||
|
|
"######..##########..######..",
|
||
|
|
"#####...#........#...#####..",
|
||
|
|
"#####..#..........#..#####..",
|
||
|
|
"####...############...####..",
|
||
|
|
"........#......#............",
|
||
|
|
"........#......#............",
|
||
|
|
"........#......#............",
|
||
|
|
"........#......#............",
|
||
|
|
".......###....###...........",
|
||
|
|
".......####...####..........",
|
||
|
|
};
|
||
|
|
static constexpr Sprite MEGUMIN_BLINK{28, 42, MEGUMIN_BLINK_ROWS};
|
||
|
|
|
||
|
|
} // namespace esphome::el512::konosuba
|