borgware-2d/animations/ideenpark.c

116 lines
4.2 KiB
C

#include <stdint.h>
#include <assert.h>
#include "../compat/pgmspace.h"
#include "bitmapscroller.h"
#include "ideenpark.h"
static uint8_t const aIdeenparkBitmap[2][42][6] PROGMEM =
{{{0x00, 0x1f, 0xf0, 0x07, 0xf0, 0x00},
{0x00, 0x0f, 0xf0, 0x07, 0xf8, 0x00},
{0x00, 0x3f, 0xf8, 0x1f, 0xf8, 0x00},
{0x00, 0x1f, 0xf8, 0x0f, 0xfe, 0x00},
{0x00, 0x7f, 0xf8, 0x3f, 0xfc, 0x00},
{0x00, 0x7f, 0xfc, 0x1f, 0xff, 0x00},
{0x00, 0xff, 0xfc, 0x7f, 0xff, 0x00},
{0x00, 0x3f, 0xff, 0x7f, 0xfe, 0x00},
{0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00},
{0x00, 0x07, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x0f, 0xff, 0xff, 0xe0, 0x00},
{0x00, 0x03, 0xff, 0xff, 0xe0, 0x00},
{0x10, 0x07, 0xff, 0xff, 0xe0, 0x00},
{0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc},
{0x1f, 0xff, 0xff, 0xf3, 0xff, 0xfc},
{0x67, 0x7f, 0xff, 0xc3, 0xff, 0x3c},
{0x64, 0xb3, 0x9e, 0xc0, 0x9f, 0xb7},
{0x61, 0x7f, 0xff, 0x48, 0x7f, 0xd6},
{0xe5, 0xc4, 0x02, 0x0b, 0x24, 0x1f},
{0xe7, 0x6f, 0x71, 0x0b, 0xe5, 0x1e},
{0x67, 0xe0, 0x09, 0x0e, 0x03, 0x8f},
{0x61, 0x5f, 0xb9, 0x8e, 0xe5, 0x24},
{0x1c, 0x73, 0x9f, 0xff, 0x9f, 0xf8},
{0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc},
{0x10, 0x07, 0xff, 0xff, 0xe0, 0x00},
{0x00, 0x03, 0xff, 0xff, 0xe0, 0x00},
{0x00, 0x0f, 0xff, 0xff, 0xe0, 0x00},
{0x00, 0x07, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x00},
{0x00, 0x3f, 0xff, 0x3f, 0xff, 0x00},
{0x00, 0xff, 0xfc, 0x7f, 0xff, 0x00},
{0x00, 0x7f, 0xfc, 0x1f, 0xff, 0x00},
{0x00, 0x7f, 0xf8, 0x3f, 0xfc, 0x00},
{0x00, 0x1f, 0xf8, 0x0f, 0xfe, 0x00},
{0x00, 0x3f, 0xf8, 0x0f, 0xf8, 0x00},
{0x00, 0x0f, 0xe0, 0x07, 0xf8, 0x00}},
{{0x00, 0x0f, 0xe0, 0x07, 0xf8, 0x00},
{0x00, 0x1f, 0xf0, 0x0f, 0xf8, 0x00},
{0x00, 0x1f, 0xf0, 0x0f, 0xfc, 0x00},
{0x00, 0x3f, 0xf8, 0x1f, 0xfc, 0x00},
{0x00, 0x3f, 0xfc, 0x1f, 0xfe, 0x00},
{0x00, 0x7f, 0xfc, 0x3f, 0xfe, 0x00},
{0x00, 0x7f, 0xfe, 0x3f, 0xfe, 0x00},
{0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x00},
{0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00},
{0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00},
{0x00, 0x07, 0xff, 0xff, 0xf0, 0x00},
{0x00, 0x07, 0xff, 0xff, 0xe0, 0x00},
{0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8},
{0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8},
{0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc},
{0x2f, 0xbf, 0xff, 0xe1, 0xff, 0xbe},
{0x6f, 0x3f, 0xff, 0xed, 0xff, 0x3e},
{0xec, 0x21, 0x08, 0x6d, 0x88, 0x2f},
{0xe9, 0x29, 0x69, 0x61, 0xc9, 0x8f},
{0x69, 0x80, 0x0b, 0x67, 0x0b, 0x8f},
{0x69, 0x0f, 0x7b, 0x6f, 0x69, 0x26},
{0x2c, 0x21, 0x0b, 0x6f, 0x0b, 0xb6},
{0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc},
{0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8},
{0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8},
{0x00, 0x07, 0xff, 0xff, 0xe0, 0x00},
{0x00, 0x07, 0xff, 0xff, 0xf0, 0x00},
{0x00, 0x0f, 0xff, 0xff, 0xf0, 0x00},
{0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00},
{0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00},
{0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00},
{0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x00},
{0x00, 0x7f, 0xfe, 0x3f, 0xfe, 0x00},
{0x00, 0x7f, 0xfc, 0x3f, 0xfe, 0x00},
{0x00, 0x3f, 0xfc, 0x1f, 0xfe, 0x00},
{0x00, 0x3f, 0xf8, 0x1f, 0xfc, 0x00},
{0x00, 0x1f, 0xf0, 0x0f, 0xfc, 0x00},
{0x00, 0x1f, 0xf0, 0x0f, 0xf8, 0x00}}};
static uint8_t logo_Ideenpark_getChunk(unsigned char const nBitPlane,
unsigned char const nChunkX,
unsigned char const nChunkY,
unsigned int const nFrame)
{
assert(nBitPlane < 2);
assert(nChunkX < 6);
assert(nChunkY < 42);
return pgm_read_byte(&aIdeenparkBitmap[nBitPlane][nChunkY][nChunkX]);
}
void logo_Ideenpark()
{
// width 48, height 42, 2 bitplanes (4 colors), 600 frames à 50ms (20 fps)
// frame change and viewport movement after every cyle (both dividers are 1)
bitmap_scroll(48, 42, 2, 600, 50, 1, 1, logo_Ideenpark_getChunk);
}