Pokitto-Raycasting/demo2.cpp
2018-09-27 14:52:31 +02:00

1150 lines
61 KiB
C++

/**
Raycasting demo 2 for Pokitto.
This demo shows a simple version (wolf3D-like) raycasting. It has a fairly
high FPS.
There is a number of compile-time settings you can try! Look at the defines
below.
Don't forget to compile with -O3!
author: Miloslav "drummyfish" Ciz
license: CC0 1.0
*/
// settings:
//#define SUBSAMPLE 1
/* ^ Turns high resolution in X direction on, which means twice as many rays
that will be cast. The result looks beautiful but dramatically decreases
FPS. */
//#define RENDER_COMPLEX
/* ^ Turns on rendering using a more precise but slower algorithm. This can
be seen at less shaky head bobbing when moving. However it doesn't
support many other features, so the result actually looks worse. */
//#define NO_TEXTURES
/* ^ Turns off textures and only uses colors, which increases FPS. */
#define RCL_COMPUTE_FLOOR_TEXCOORDS 1
/* ^ Turns on computation of texture coordinates for the floor in raycastlib
and makes this demo render the textures. */
#define TEXTURE_CEILING
/* ^ Turns on texture on ceiling (RCL_COMPUTE_FLOOR_TEXCOORDS must be turned
on as well for this to work). */
#define FLOOR_TEXTURE_SCALE 2
/* ^ Scales the floor texture if RCL_COMPUTE_FLOOR_TEXCOORDS is on. */
//#define RCL_ACCURATE_WALL_TEXTURING 1
/* ^ This turns on extra accurate wall texturing, but is noticable slower. */
//#define HEAD_BOB
/* ^ Turns on head bobbing. */
//#define NO_SHADING
/* ^ Turns off shading (fog) which increases FPS. */
//#define NO_MIRROR
/* ^ Turns off the floor mirror effect, which should increase FPS. */
//#define RCL_USE_DIST_APPROX 1
/* ^ Turns on distance approximation, which won't compute exact distances but
only approximations - this should increase performance a little, but
results in slightly distorted walls. */
//#define RCL_USE_COS_LUT 2
/* ^ Turns on cos look up tables (128 items, USE_COS_LUT 1 will use only 64
items), which should theoretically be faster, but will take additional
memory and turning can be less precise (can be seen a lot with 64 item
LUT). */
#define DOOR_ROLL_SIGN -1
/* ^ Defines how the door roll: -1 opens the door to the left, 1 to the
right, 0 to both. */
#ifdef NO_TEXTURES
#define RCL_COMPUTE_WALL_TEXCOORDS 0
#endif
#define FPS 255
#define HEAD_BOB_HEIGHT 200
#define HEAD_BOB_STEP 20
#define PLAYER_SPEED (5 * RCL_UNITS_PER_SQUARE)
#define TEXTURE_W 32 // for the sake of performance we require prespecified sizes
#define TEXTURE_H 32
#ifndef RCL_COMPUTE_FLOOR_TEXCOORDS
#define RCL_COMPUTE_CEILING_DEPTH 0
#endif
#include "general.hpp"
#define LEVEL_X_RES 32
#define LEVEL_Y_RES 16
Player player;
#define SHOT_SPEED 10 * RCL_UNITS_PER_SQUARE
#define INFO_BAR_START 70
#define TEXTURE_MAX_DISTANCE (RCL_UNITS_PER_SQUARE * 6)
#define TEXTURE_MAX_DISTANCE_FLOOR (RCL_UNITS_PER_SQUARE * 6 + RCL_UNITS_PER_SQUARE / 2)
#define RESOLUTION_Y (INFO_BAR_START + 1)
// temporary defines for better visibility of walls and floors below
#define D 6
#define o 0
const unsigned char level[] =
{
/* 10 12 14 16 18 20 22 24 26 28 30
0 1 2 3 4 5 6 7 8 9 11 13 15 17 19 21 23 25 27 29 31 */
4,o,o,4,o,o,4,o,o,4,o,o,2,4,o,4,4,o,o,o,o,D,o,2,o,o,o,o,o,o,o,2, // 0 15
o,o,o,o,o,o,o,o,o,o,o,o,3,4,o,o,o,o,1,3,2,4,o,4,o,o,o,o,o,o,o,o, // 1 14
o,o,o,o,o,o,o,o,o,o,o,o,2,4,o,o,o,o,1,o,o,o,o,3,o,o,o,o,o,o,o,o, // 2 13
o,o,5,o,o,o,o,o,o,o,o,o,2,4,4,o,3,1,1,o,2,1,2,3,o,o,1,o,1,o,o,2, // 3 12
o,o,o,o,o,o,o,o,o,o,o,o,2,o,o,o,o,2,o,o,o,2,o,o,o,o,o,o,o,o,o,2, // 4 11
o,o,o,o,o,o,o,o,o,o,o,o,2,o,o,o,o,2,3,o,2,2,o,o,o,o,o,o,o,o,o,2, // 5 10
4,o,3,1,3,1,o,2,2,2,3,2,2,2,o,o,3,2,o,o,o,o,o,o,o,o,o,o,o,o,o,o, // 6 9
o,o,2,o,o,o,o,o,o,5,o,o,o,o,o,o,o,5,o,o,o,o,1,2,o,5,5,o,o,o,o,o, // 7 8
o,o,1,o,o,o,o,o,o,5,o,o,o,o,o,o,o,D,o,o,o,o,4,o,o,o,5,o,o,2,o,o, // 8 7
o,o,2,o,o,o,o,o,o,2,3,2,4,o,o,o,2,2,4,1,4,o,4,4,4,3,2,o,o,4,2,2, // 9 6
o,o,4,4,4,o,o,o,o,o,o,o,o,o,o,3,3,4,o,o,o,o,o,1,o,o,o,o,o,o,o,4, // 10 5
2,o,o,o,3,o,o,o,o,o,o,o,o,o,3,3,2,4,o,o,o,o,o,1,o,o,4,o,o,3,o,1, // 11 4
1,3,1,o,4,4,4,2,2,1,2,D,2,2,3,o,o,1,4,o,o,o,3,3,3,5,2,o,o,o,o,2, // 12 3
o,o,o,o,o,o,o,o,o,4,o,o,o,o,2,o,o,o,o,o,o,o,o,o,o,o,o,o,o,3,o,1, // 13 2
o,o,o,3,o,5,o,3,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,4, // 14 1
o,o,o,o,o,o,o,o,o,4,o,o,o,o,2,o,o,5,o,o,4,o,o,1,o,3,o,3,o,3,o,1 // 15 0
};
#undef D
#undef o
const unsigned char texture1[] =
{ 32, 32 // width, height
,0x71,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x04,0x03,0x03,0x71,0x71,0x05,0x03,0x04,0x04,0x04,0x04,0x04,0x03,0x03
,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03
,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x71,0x71,0x04,0x04,0x03,0x03,0x03
,0x04,0x03,0x13,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,0x05,0x04,0x04
,0x03,0x03,0x03,0x03,0x04,0x03,0x04,0x03,0x03,0x03,0x03,0x71,0x71,0x04
,0x04,0x04,0x03,0x04,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x05,0x05,0x05
,0x06,0x06,0x05,0x05,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x03
,0x03,0x71,0x71,0x04,0x03,0x04,0x04,0x11,0x02,0x02,0x11,0x02,0x02,0x02
,0x03,0x04,0x25,0x26,0x27,0x26,0x04,0x03,0x02,0x02,0x02,0x02,0x02,0x02
,0x03,0x04,0x03,0x03,0x03,0x71,0x71,0x05,0x03,0x03,0x04,0x02,0x11,0x11
,0x11,0x11,0x12,0x12,0x13,0x27,0x28,0x2a,0x2f,0x2b,0x26,0x24,0x03,0x12
,0x02,0x02,0x03,0x02,0x03,0x03,0x04,0x03,0x03,0x71,0x71,0x04,0x04,0x03
,0x03,0x11,0x11,0x05,0x05,0x05,0x06,0x03,0x24,0x27,0x29,0x2b,0x2f,0x2b
,0x27,0x25,0x03,0x02,0x02,0x11,0x02,0x02,0x04,0x03,0x03,0x03,0x03,0x71
,0x71,0x04,0x04,0x04,0x04,0x71,0x11,0x05,0x06,0x03,0x05,0x02,0x13,0x26
,0x27,0x29,0x29,0x29,0x26,0x13,0x03,0x02,0x02,0x02,0x03,0x02,0x04,0x04
,0x04,0x04,0x03,0x71,0x71,0x05,0x04,0x04,0x04,0x02,0x11,0x05,0x06,0x03
,0x05,0x12,0x13,0x05,0x27,0x29,0x29,0x29,0x25,0x24,0x12,0x02,0x02,0x02
,0x12,0x02,0x04,0x04,0x04,0x03,0x03,0x71,0x71,0x04,0x03,0x03,0x03,0x71
,0x11,0x05,0x06,0x03,0x03,0x12,0x24,0x27,0x29,0x2b,0x2f,0x2b,0x27,0x24
,0x03,0x02,0x02,0x11,0x02,0x02,0x03,0x03,0x03,0x03,0x13,0x71,0x71,0x04
,0x04,0x04,0x04,0x71,0x11,0x05,0x06,0x03,0x05,0x03,0x14,0x27,0x2a,0x2c
,0x2f,0x2c,0x27,0x15,0x03,0x02,0x12,0x02,0x03,0x12,0x04,0x04,0x04,0x03
,0x03,0x71,0x71,0x04,0x04,0x04,0x03,0x71,0x11,0x06,0x05,0x05,0x06,0x12
,0x13,0x26,0x27,0x29,0x29,0x29,0x25,0x14,0x03,0x02,0x12,0x02,0x03,0x02
,0x04,0x04,0x03,0x04,0x03,0x71,0x71,0x04,0x04,0x03,0x03,0x11,0x02,0x02
,0x11,0x02,0x02,0x02,0x23,0x05,0x27,0x29,0x29,0x29,0x25,0x13,0x02,0x12
,0x02,0x02,0x12,0x02,0x04,0x03,0x03,0x03,0x03,0x71,0x71,0x05,0x04,0x03
,0x04,0x02,0x12,0x02,0x02,0x12,0x12,0x12,0x14,0x28,0x29,0x2b,0x2f,0x2b
,0x27,0x25,0x03,0x12,0x02,0x02,0x03,0x02,0x04,0x03,0x04,0x03,0x13,0x71
,0x71,0x04,0x04,0x04,0x04,0x11,0x03,0x12,0x11,0x03,0x12,0x03,0x14,0x27
,0x29,0x2c,0x2f,0x2c,0x27,0x15,0x03,0x12,0x02,0x71,0x03,0x02,0x04,0x04
,0x04,0x04,0x03,0x71,0x71,0x04,0x04,0x03,0x03,0x71,0x12,0x02,0x02,0x12
,0x02,0x02,0x04,0x25,0x27,0x29,0x29,0x29,0x25,0x24,0x12,0x02,0x02,0x02
,0x12,0x02,0x04,0x03,0x03,0x03,0x03,0x71,0x71,0x05,0x03,0x03,0x03,0x02
,0x12,0x02,0x02,0x02,0x02,0x12,0x24,0x05,0x27,0x29,0x29,0x29,0x25,0x04
,0x12,0x02,0x02,0x01,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x71,0x71,0x05
,0x04,0x04,0x04,0x71,0x12,0x02,0x02,0x02,0x02,0x12,0x25,0x27,0x29,0x2b
,0x2f,0x2b,0x27,0x25,0x03,0x12,0x12,0x11,0x03,0x02,0x04,0x04,0x04,0x03
,0x03,0x71,0x71,0x04,0x04,0x03,0x04,0x11,0x02,0x02,0x02,0x02,0x02,0x12
,0x25,0x27,0x29,0x2b,0x2f,0x2c,0x27,0x25,0x03,0x02,0x02,0x71,0x12,0x02
,0x04,0x03,0x04,0x03,0x03,0x71,0x71,0x04,0x04,0x03,0x03,0x11,0x02,0x02
,0x02,0x02,0x11,0x02,0x13,0x26,0x28,0x29,0x29,0x29,0x25,0x24,0x03,0x02
,0x02,0x02,0x12,0x12,0x04,0x03,0x03,0x03,0x03,0x71,0x71,0x04,0x04,0x04
,0x04,0x02,0x03,0x05,0x05,0x05,0x06,0x03,0x04,0x26,0x27,0x28,0x29,0x29
,0x25,0x24,0x03,0x02,0x02,0x02,0x03,0x02,0x04,0x04,0x04,0x03,0x03,0x71
,0x71,0x04,0x04,0x03,0x04,0x02,0x03,0x05,0x06,0x03,0x05,0x02,0x14,0x27
,0x29,0x2b,0x2f,0x2b,0x27,0x25,0x03,0x02,0x02,0x02,0x03,0x02,0x04,0x03
,0x04,0x03,0x03,0x71,0x71,0x04,0x04,0x03,0x04,0x02,0x02,0x05,0x06,0x03
,0x05,0x12,0x14,0x28,0x2a,0x2c,0x2f,0x2c,0x27,0x25,0x03,0x02,0x02,0x02
,0x03,0x02,0x04,0x03,0x04,0x03,0x03,0x71,0x71,0x04,0x04,0x04,0x04,0x02
,0x03,0x05,0x06,0x03,0x03,0x12,0x13,0x26,0x27,0x29,0x29,0x29,0x25,0x13
,0x03,0x02,0x02,0x02,0x12,0x02,0x04,0x04,0x04,0x04,0x03,0x71,0x71,0x04
,0x04,0x03,0x04,0x02,0x12,0x05,0x06,0x03,0x05,0x03,0x13,0x05,0x27,0x29
,0x29,0x29,0x25,0x13,0x03,0x02,0x02,0x11,0x02,0x02,0x04,0x03,0x04,0x03
,0x03,0x71,0x71,0x04,0x04,0x03,0x04,0x02,0x12,0x06,0x05,0x05,0x06,0x12
,0x14,0x27,0x29,0x2b,0x2f,0x2b,0x27,0x24,0x03,0x02,0x02,0x02,0x03,0x12
,0x04,0x03,0x04,0x03,0x03,0x71,0x71,0x04,0x03,0x04,0x04,0x02,0x12,0x02
,0x11,0x02,0x02,0x02,0x23,0x26,0x28,0x2b,0x2f,0x2b,0x27,0x14,0x03,0x02
,0x02,0x02,0x03,0x12,0x03,0x04,0x04,0x03,0x03,0x71,0x71,0x04,0x04,0x04
,0x04,0x11,0x12,0x02,0x11,0x02,0x02,0x12,0x03,0x04,0x25,0x26,0x27,0x27
,0x04,0x03,0x03,0x12,0x12,0x02,0x02,0x02,0x04,0x04,0x04,0x03,0x03,0x71
,0x71,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x04,0x04
,0x05,0x05,0x06,0x06,0x05,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x03,0x03
,0x03,0x03,0x03,0x71,0x71,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x03
,0x04,0x03,0x04,0x04,0x04,0x05,0x05,0x05,0x04,0x04,0x03,0x03,0x04,0x03
,0x03,0x13,0x04,0x03,0x04,0x03,0x03,0x71,0x71,0x05,0x03,0x04,0x04,0x04
,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04
,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x71,0x71,0x03
,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03
,0x03,0x71
};
const unsigned char texture2[] =
{ 32, 32 // width, height
,0x21,0x01,0x02,0x12,0x03,0x03,0x03,0x34,0x03,0x34,0x34,0x34,0x34,0x53
,0x53,0x03,0x53,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x45,0x03,0x02,0x11,0x21,0x02,0x03,0x03,0x34,0x44,0x44,0x44,0x44
,0x44,0x44,0x44,0x44,0x44,0x45,0x45,0x45,0x44,0x44,0x44,0x44,0x44,0x44
,0x44,0x44,0x44,0x43,0x03,0x45,0x03,0x02,0x11,0x21,0x12,0x03,0x34,0x04
,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x4a,0x03,0x03,0x03,0x03,0x35,0x44
,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x43,0x03,0x45,0x03,0x02,0x11,0x21
,0x12,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x4b,0x35,0x35
,0x23,0x33,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x4b
,0x03,0x02,0x11,0x21,0x12,0x02,0x44,0x44,0x45,0x45,0x45,0x45,0x45,0x45
,0x34,0x4b,0xba,0xba,0x34,0x33,0x44,0x45,0x44,0x44,0x44,0x44,0x44,0x44
,0x44,0x43,0x03,0x45,0x03,0x02,0x11,0x21,0x12,0x02,0x44,0x45,0x45,0x45
,0x45,0x45,0x45,0x03,0x34,0x4a,0x03,0x03,0x03,0x34,0x35,0x45,0x45,0x44
,0x44,0x44,0x44,0x44,0x44,0x43,0x03,0x45,0x03,0x02,0x02,0x21,0x12,0x02
,0x44,0x45,0x45,0x45,0x45,0x45,0x45,0x44,0x34,0x47,0x47,0x45,0x45,0x45
,0x45,0x45,0x45,0x44,0x03,0x44,0x44,0x44,0x44,0x43,0x03,0x45,0x03,0x02
,0x02,0x21,0x12,0x03,0x44,0x34,0x03,0x03,0x03,0x03,0x44,0x44,0x03,0x54
,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x34,0x34,0x02,0x02,0x02,0x21
,0x01,0x4b,0x03,0x02,0x02,0x11,0x03,0x03,0x03,0x43,0x45,0x45,0x44,0x44
,0x43,0x43,0x43,0x43,0x43,0x43,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x02,0x02,0x44,0x03,0x02,0x02,0x02,0x03,0x44,0x45,0x03
,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11
,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x45,0x03,0x02,0x02,0x02
,0x44,0x45,0x5f,0x03,0x4a,0x4b,0x4a,0x49,0x49,0x47,0x46,0x45,0x45,0x35
,0x35,0x45,0x45,0x35,0x35,0x35,0x34,0x34,0x35,0x34,0x34,0x34,0x12,0x45
,0x03,0x02,0x12,0x02,0x44,0x46,0x6e,0xc8,0x4a,0x4b,0x4b,0x4b,0x49,0x48
,0x46,0x37,0x45,0x45,0x45,0x45,0x45,0x45,0x35,0x35,0x35,0x35,0x35,0x34
,0x34,0x34,0x12,0x45,0x03,0x02,0x02,0x02,0x45,0x46,0x6e,0xc8,0x49,0x4b
,0x4b,0x4b,0x49,0x48,0x47,0x46,0x45,0x45,0x45,0x45,0x45,0x45,0x35,0x35
,0x35,0x35,0x35,0x34,0x34,0x34,0x12,0x45,0x03,0x02,0x12,0x12,0x44,0x47
,0x6e,0xcb,0x4b,0x0b,0x4b,0x4b,0x49,0x48,0x47,0x46,0x45,0x45,0x45,0x45
,0x45,0x45,0x35,0x35,0x35,0x35,0x35,0x34,0x34,0x34,0x12,0x45,0x03,0x02
,0x12,0x02,0x45,0xc8,0x6f,0xcb,0x4b,0x0b,0x4b,0x4a,0x49,0x48,0x03,0x03
,0x03,0x03,0x03,0x45,0x45,0x45,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x34
,0x12,0x45,0x03,0x02,0x12,0x12,0x45,0xc8,0x6f,0xcb,0x4b,0x0b,0x4b,0x4b
,0x49,0x47,0x34,0x37,0x45,0x45,0x03,0x45,0x45,0x45,0x03,0x34,0x35,0x35
,0x34,0x34,0x03,0x34,0x12,0x45,0x03,0x02,0x02,0x02,0x45,0xc8,0x6f,0xcb
,0x49,0x49,0x49,0x49,0x49,0x45,0x34,0x46,0x45,0x45,0x03,0x03,0x03,0x03
,0x03,0x35,0x35,0x35,0x35,0x35,0x03,0x03,0x12,0x45,0x03,0x02,0x12,0x02
,0x45,0x47,0x6e,0xcb,0x4b,0x4b,0x4b,0x4b,0x49,0x48,0x47,0x46,0x45,0x34
,0x35,0xba,0x34,0x35,0x35,0x35,0x35,0x35,0x35,0x34,0x34,0x34,0x12,0x45
,0x03,0x02,0x12,0x12,0x44,0x47,0x6e,0xcb,0x4b,0x4b,0x4a,0x4a,0x49,0x48
,0x47,0x37,0x45,0x35,0x35,0xba,0x33,0x34,0x35,0x35,0x35,0x35,0x35,0x34
,0x34,0x34,0x12,0x45,0x03,0x02,0x12,0x02,0x44,0x46,0x6e,0xc9,0x4a,0x4b
,0x4b,0x49,0x49,0x48,0x47,0x45,0x45,0x45,0x37,0x45,0x45,0x34,0x35,0x35
,0x35,0x35,0x35,0x34,0x34,0x34,0x12,0x45,0x03,0x02,0x12,0x02,0x44,0x46
,0x6e,0xc8,0x49,0x4b,0x4a,0x49,0x49,0x47,0x46,0x45,0x45,0x45,0x45,0x45
,0x35,0x34,0x35,0x35,0x35,0x35,0x35,0x34,0x34,0x34,0x12,0x45,0x03,0x02
,0x02,0x02,0x43,0x45,0x5f,0x03,0x4a,0x4b,0x4b,0x49,0x49,0x47,0x46,0x45
,0x45,0x35,0x45,0x45,0x35,0x34,0x35,0x35,0x35,0x35,0x35,0x34,0x34,0x34
,0x22,0x45,0x03,0x02,0x02,0x02,0x03,0x44,0x45,0x03,0x11,0x11,0x11,0x11
,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11
,0x11,0x11,0x11,0x11,0x11,0x45,0x03,0x02,0x02,0x11,0x03,0x03,0x44,0x43
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02
,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x45,0x03,0x02,0x02,0x11
,0x03,0x03,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x54,0x54,0x44
,0x44,0x45,0x45,0x45,0x45,0x45,0x44,0x44,0x34,0x03,0x03,0x02,0x02,0x45
,0x03,0x02,0x11,0x11,0x03,0x02,0x44,0x44,0x44,0x45,0x45,0x45,0x45,0x45
,0x45,0x54,0x54,0x44,0x44,0x35,0x34,0x45,0x45,0x44,0x44,0x44,0x44,0x04
,0x04,0x43,0x02,0x45,0x03,0x02,0x11,0x21,0x12,0x02,0x44,0x44,0x44,0x45
,0x45,0x45,0x45,0x45,0x45,0x54,0x54,0x44,0x54,0x34,0x34,0x35,0x44,0x44
,0x44,0x44,0x44,0x34,0x04,0x43,0x03,0x45,0x03,0x02,0x11,0x21,0x12,0x02
,0x34,0x44,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x54,0x53,0x44,0x54,0x35
,0x35,0x35,0x44,0x44,0x44,0x44,0x44,0x34,0x04,0x43,0x03,0x45,0x03,0x02
,0x11,0x21,0x12,0x12,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x11
,0x11,0x11,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
,0x02,0x4b,0x03,0x02,0x11,0x21,0x12,0x03,0x34,0x44,0x45,0x45,0x45,0x45
,0x45,0x45,0x44,0x53,0x53,0x44,0x43,0x45,0x44,0x44,0x44,0x44,0x44,0x44
,0x44,0x44,0x44,0x43,0x03,0x45,0x03,0x02,0x11,0x21,0x12,0x03,0x34,0x44
,0x44,0x44,0x45,0x45,0x45,0x44,0x44,0x54,0x54,0x44,0x54,0x44,0x45,0x44
,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x43,0x03,0x45,0x03,0x02,0x21,0x01
,0x02,0x03,0x03,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x53,0x53,0x43
,0x53,0x34,0x34,0x34,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x45
,0x03,0x02
};
const unsigned char texture3[] =
{ 32, 32 // width, height
,0x22,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x09,0x08,0x08,0x08,0x07,0x02
,0x03,0x03,0x02,0x03,0x22,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x08
,0x08,0x07,0x06,0x02,0x03,0x03,0x02,0x03,0x22,0x08,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a
,0x0a,0x09,0x09,0x08,0x08,0x07,0x06,0x02,0x03,0x03,0x02,0x03,0x22,0x08
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x08,0x08,0x07,0x21,0x02,0x02
,0x02,0x43,0x22,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x08,0x08
,0x07,0x21,0x02,0x02,0x02,0x03,0x32,0x08,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a
,0x09,0x09,0x08,0x08,0x07,0x21,0x02,0x02,0x02,0x03,0x22,0x08,0x03,0x03
,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x0c,0x0c,0x0b,0x0b,0x0b
,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x08,0x07,0x21,0x03,0x02,0x02,0x03
,0x32,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x0c,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x08,0x07,0x21
,0x03,0x02,0x03,0x03,0x22,0x08,0x03,0x05,0x08,0x08,0x07,0x07,0x07,0x05
,0x07,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09
,0x08,0x08,0x07,0x21,0x21,0x02,0x02,0x03,0x22,0x08,0x03,0x04,0x08,0x04
,0x04,0x05,0x07,0x05,0x05,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a
,0x0a,0x0a,0x09,0x09,0x08,0x08,0x07,0x21,0x03,0x02,0x03,0x04,0x22,0x08
,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x07,0x05,0x0c,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x08,0x07,0x03,0x03,0x04
,0x03,0x03,0x22,0x08,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x04,0x0c
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09
,0x07,0x03,0x03,0x03,0x03,0x03,0x22,0x08,0x03,0x04,0x05,0x04,0x05,0x05
,0x07,0x04,0x07,0x05,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a
,0x09,0x09,0x09,0x09,0x07,0x03,0x03,0x03,0x02,0x03,0x22,0x08,0x03,0x08
,0x07,0x07,0x04,0x05,0x08,0x04,0x04,0x05,0x04,0x0c,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x07,0x03,0x03,0x03,0x03,0x04
,0x22,0x08,0x03,0x04,0x05,0x07,0x04,0x04,0x08,0x05,0x04,0x05,0x04,0x0c
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x07,0x03
,0x03,0x03,0x03,0x03,0x22,0x08,0x03,0x04,0x04,0x07,0x08,0x04,0x05,0x07
,0x07,0x07,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09
,0x09,0x08,0x07,0x03,0x03,0x03,0x03,0x03,0x22,0x08,0x03,0x04,0x04,0x04
,0x08,0x04,0x05,0x05,0x04,0x04,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a
,0x0a,0x0a,0x09,0x09,0x09,0x08,0x07,0x03,0x03,0x03,0x03,0x03,0x22,0x08
,0x03,0x07,0x07,0x07,0x08,0x04,0x05,0x04,0x05,0x05,0x04,0x0c,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x07,0x03,0x03,0x03
,0x03,0x03,0x22,0x08,0x03,0x06,0x48,0x06,0x08,0x05,0x05,0x07,0x05,0x05
,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x08
,0x05,0x03,0x03,0x03,0x03,0x03,0x22,0x08,0x03,0x48,0x4d,0x49,0x05,0x08
,0x07,0x07,0x04,0x05,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a
,0x0a,0x09,0x09,0x07,0x03,0x03,0x04,0x03,0x03,0x43,0x32,0x08,0x03,0x06
,0x49,0x08,0x07,0x08,0x05,0x05,0x05,0x05,0x04,0x0c,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x03,0x03,0x04,0x04,0x03,0x03,0x03
,0x22,0x08,0x03,0x04,0x03,0x03,0x07,0x08,0x03,0x04,0x07,0x05,0x04,0x0c
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x03,0x03,0x04
,0x04,0x03,0x03,0x03,0x32,0x08,0x03,0x04,0x03,0x11,0x08,0x03,0x11,0x04
,0x05,0x05,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09
,0x08,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x22,0x08,0x03,0x04,0x11,0x11
,0x05,0x11,0x11,0x04,0x04,0x05,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a
,0x0a,0x0a,0x09,0x09,0x08,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x22,0x08
,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x0c,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x03,0x03,0x04,0x03,0x03
,0x03,0x03,0x22,0x08,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05
,0x04,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x03
,0x04,0x03,0x03,0x03,0x03,0x43,0x22,0x08,0x05,0x04,0x04,0x04,0x04,0x04
,0x04,0x04,0x04,0x04,0x04,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a
,0x0a,0x09,0x08,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x22,0x08,0x0c,0x0c
,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b
,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x03,0x04,0x03,0x02,0x03,0x03,0x03
,0x22,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x03,0x04,0x03
,0x03,0x04,0x03,0x03,0x22,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09
,0x08,0x03,0x03,0x04,0x04,0x04,0x03,0x03,0x22,0x08,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a
,0x0a,0x0a,0x09,0x09,0x09,0x07,0x03,0x03,0x04,0x03,0x03,0x03,0x22,0x08
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x08,0x06,0x03,0x03,0x03
,0x03,0x43
};
const unsigned char texture4[] =
{ 32, 32 // width, height
,0x21,0x10,0x21,0x02,0x12,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x53,0x53
,0x03,0x03,0x53,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x45,0x03,0x21,0x10,0x21,0x02,0x03,0x03,0x34,0x44,0x44,0x44
,0x44,0x44,0x54,0x54,0x43,0x43,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x44
,0x44,0x44,0x44,0x43,0x43,0x03,0x45,0x03,0x21,0x10,0x21,0x02,0x03,0x03
,0x34,0x04,0x44,0x44,0x44,0x04,0x53,0x53,0x43,0x43,0x54,0x44,0x44,0x44
,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x43,0x43,0x03,0x45,0x03,0x21,0x10
,0x21,0x02,0x12,0x03,0x03,0x03,0x03,0x03,0x03,0x11,0x11,0x11,0x11,0x11
,0x02,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x45,0x44,0x43,0x43,0x03
,0x45,0x03,0x21,0x10,0x21,0x02,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12
,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x03
,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x10,0x21,0x02,0x12,0xb6,0x09,0x08
,0x08,0x08,0x47,0x07,0x07,0x25,0x25,0x03,0x06,0x03,0xa2,0xa2,0xa2,0x06
,0x04,0x04,0x10,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x10,0x21,0x02
,0x12,0x48,0x35,0x08,0x08,0x08,0x07,0x07,0x26,0xa3,0xa3,0x03,0x06,0x03
,0x23,0x22,0x03,0xa2,0x04,0x04,0x10,0x03,0x45,0x43,0x43,0x03,0x45,0x03
,0x21,0x10,0x21,0x02,0x12,0x48,0xb6,0x08,0x08,0x08,0x07,0x07,0x26,0xa3
,0xa3,0x03,0x06,0x03,0x04,0x04,0x03,0x21,0x04,0x04,0x10,0x03,0x45,0x43
,0x43,0x03,0x45,0x03,0x21,0x10,0x11,0x02,0x12,0x48,0x47,0x35,0x08,0x07
,0x47,0x26,0x22,0x34,0x34,0x03,0x06,0x03,0x04,0x04,0x04,0x03,0xa2,0x04
,0xa2,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x02,0x12,0x12,0x48
,0x47,0x35,0x08,0x27,0x36,0x26,0xa4,0x34,0x34,0x03,0x06,0x03,0x04,0x04
,0x03,0x03,0xa2,0x04,0x23,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01
,0x11,0x12,0x12,0x48,0x48,0x38,0xb5,0xb5,0xa4,0xa4,0x34,0x05,0x05,0x03
,0x06,0x03,0x04,0x04,0x03,0x03,0x04,0x21,0x21,0x03,0x45,0x43,0x43,0x03
,0x45,0x03,0x21,0x01,0x11,0x03,0x12,0x48,0x37,0xb6,0x08,0x08,0x08,0x07
,0xa3,0x06,0x05,0x03,0x06,0x03,0x04,0x04,0x03,0x04,0x21,0x22,0x21,0x03
,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x38,0xb6,0x09
,0x08,0x08,0x07,0x06,0xa3,0x05,0x05,0x03,0x06,0x03,0x04,0x03,0x03,0x04
,0x22,0x03,0x03,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12
,0x12,0x03,0x03,0x09,0x08,0x08,0x07,0x07,0x06,0xa3,0xa3,0x03,0x06,0x03
,0x03,0x03,0x04,0x21,0x22,0x03,0x03,0x03,0x45,0x43,0x43,0x03,0x45,0x03
,0x21,0x01,0x11,0x12,0x12,0x06,0x06,0x03,0x08,0x08,0x07,0x07,0x06,0xa3
,0xa3,0x05,0x03,0x06,0x06,0x06,0x03,0x22,0x03,0x03,0x03,0x03,0x45,0x43
,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x03,0x03,0x06,0x03,0x08
,0x07,0x07,0x06,0x06,0x05,0x32,0xa2,0x03,0x03,0x03,0x06,0x03,0x03,0x03
,0x03,0x12,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0xb6
,0x08,0x03,0x06,0x03,0x07,0x07,0x06,0x25,0x25,0xa2,0x23,0x22,0x22,0x03
,0x03,0x06,0x03,0x03,0x03,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01
,0x11,0x12,0x12,0x08,0x35,0x03,0x06,0x03,0x07,0x06,0x25,0xa3,0xa3,0x23
,0x04,0x04,0x04,0x04,0x03,0x06,0x03,0x03,0x03,0x03,0x45,0x43,0x43,0x03
,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x08,0x35,0x03,0x06,0x03,0x07,0x07
,0x25,0xa3,0xa3,0x23,0x04,0x04,0x04,0x03,0x03,0x06,0x03,0x03,0x03,0x03
,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x08,0x07,0x03
,0x06,0x03,0x07,0x26,0xa3,0x24,0x23,0x05,0x04,0x04,0x04,0x04,0x03,0x06
,0x03,0x03,0x03,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12
,0x12,0x08,0x08,0x03,0x06,0x03,0x26,0x25,0xa3,0x34,0x34,0x05,0x04,0x04
,0x04,0x03,0x03,0x06,0x03,0x03,0x04,0x03,0x45,0x43,0x43,0x03,0x45,0x03
,0x21,0x01,0x11,0x12,0x12,0x08,0x07,0x03,0x06,0x03,0xa4,0x22,0x24,0x05
,0x05,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x03,0x21,0x21,0x03,0x45,0x43
,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x08,0x08,0x03,0x06,0x03
,0x08,0x06,0xa3,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x03,0x06
,0x06,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x08
,0x35,0x03,0x06,0x03,0x07,0x07,0xa3,0x05,0x05,0x04,0x04,0x04,0x04,0x04
,0x03,0x06,0x03,0x04,0x21,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01
,0x11,0x12,0x12,0x08,0xb6,0x03,0x06,0x03,0x07,0x06,0x06,0xa3,0xa3,0x05
,0x05,0x04,0x04,0x04,0x03,0x06,0x03,0x04,0x10,0x03,0x45,0x43,0x43,0x03
,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0x35,0x09,0x03,0x06,0x03,0x07,0x07
,0x06,0x25,0x25,0xa2,0xa2,0xa2,0xa2,0xa2,0x03,0x06,0x03,0x04,0x10,0x03
,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x12,0xb6,0x08,0x03
,0x06,0x03,0x07,0x07,0x25,0xa3,0x32,0x07,0x07,0x07,0x06,0x04,0x03,0x06
,0x03,0x04,0x10,0x03,0x45,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12
,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12
,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x03,0x45,0x43,0x43,0x03,0x45,0x03
,0x21,0x01,0x11,0x12,0x12,0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x11,0x11
,0x11,0x11,0x02,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x45,0x44,0x43
,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x03,0x34,0x44,0x44,0x44,0x44
,0x45,0x44,0x53,0x53,0x44,0x44,0x43,0x45,0x44,0x44,0x44,0x44,0x44,0x44
,0x44,0x44,0x44,0x43,0x43,0x03,0x45,0x03,0x21,0x01,0x11,0x12,0x03,0x34
,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x54,0x44,0x44,0x54,0x44,0x45,0x44
,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x43,0x43,0x03,0x45,0x03,0x21,0x01
,0x11,0x02,0x03,0x03,0x34,0x34,0x34,0x34,0x34,0x34,0x53,0x53,0x43,0x43
,0x53,0x34,0x34,0x34,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x45,0x03
};
const unsigned char texture5[] =
{ 32, 32 // width, height
,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03
,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x8f,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00
,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x03
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02
,0x01,0x02,0x02,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x8f,0x00,0x00
,0x00,0x8f,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04
,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x8f,0x87,0x00,0x87,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03
,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00
,0x8f,0x00,0x00,0x00,0x00,0x87,0x8f,0x8f,0x8f,0x87,0x00,0x00,0x00,0x00
,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02
,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02
,0x02,0x02,0x01,0x02,0x02,0x03,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x87
,0x8f,0x8f,0x8f,0x87,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03
,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x8f,0x87,0x00,0x87,0x8f,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02
,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x87,0x8f,0x8f,0x8f,0x87,0x00,0x00
,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02
,0x01,0x02,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04
,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x8f,0x00,0x00,0x8f
,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03
,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x8f,0x87,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02
,0x02,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x87,0x8f,0x00,0x8f,0x87
,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02
,0x02,0x02,0x01,0x02,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f
,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03
,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x8f,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00
,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02
,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x8f,0x8f,0x8f,0x8f,0x8f,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02
,0x01,0x02,0x02,0x03,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04
,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03
,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00
,0x8f,0x00,0x00,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x87,0x00,0x00,0x00,0x00
,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02
,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x87,0x8f
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02
,0x02,0x02,0x01,0x02,0x02,0x03,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03
,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02
,0x00,0x00,0x8f,0x00,0x00,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x87,0x00,0x00
,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02
,0x01,0x02,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x00
,0x87,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04
,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x8f,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03
,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x87,0x8f,0x8f,0x8f,0x87,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02
,0x02,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x8f,0x87,0x00,0x87,0x8f
,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02
,0x02,0x02,0x01,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87
,0x8f,0x8f,0x8f,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03
,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x03,0x00,0x00,0x8f,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00
,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02,0x01,0x02,0x02,0x02
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x03,0x02,0x02,0x02
,0x01,0x02,0x02,0x02,0x00,0x00,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x00,0x03,0x03,0x03,0x03,0x04
,0x03,0x02
};
const unsigned char texture6[] =
{ 32, 32 // width, height
,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1
,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1
,0xb1,0xb1,0xb1,0xb1,0xa0,0x2c,0x37,0x26,0x06,0x09,0x0c,0x0d,0x0d,0x5f
,0x5f,0x5f,0x5d,0x5f,0x5d,0x6f,0x6c,0x6d,0x6b,0x5b,0x59,0x58,0x5b,0x59
,0x5b,0x5b,0x5d,0x59,0x08,0x5b,0x06,0xb1,0x20,0x0e,0x25,0x25,0x07,0x0b
,0x0c,0x0d,0x0b,0x5f,0x5d,0x5d,0x5d,0x5f,0x4b,0x6c,0x6a,0x6c,0x6b,0x5d
,0x5b,0x59,0x58,0x58,0x59,0x5b,0x59,0x58,0x06,0x5b,0x04,0xb1,0x20,0x2e
,0x33,0x34,0x24,0x24,0x06,0x04,0x04,0x04,0x03,0x04,0x05,0x04,0x22,0x32
,0x22,0x32,0x33,0x43,0x04,0x04,0x04,0x04,0x04,0x45,0x57,0x55,0x55,0x58
,0x43,0xb1,0xb0,0x28,0x22,0x32,0x33,0x33,0x44,0x56,0x55,0x55,0x55,0x58
,0x57,0x59,0x56,0x67,0x65,0x67,0x65,0x56,0x56,0x57,0x57,0x58,0x57,0x04
,0x55,0x56,0x04,0x58,0x03,0xb1,0xb0,0x29,0x22,0x21,0x23,0x22,0x54,0x56
,0x57,0x56,0x56,0x56,0x55,0x57,0x56,0x65,0x64,0x66,0x65,0x58,0x58,0x56
,0x56,0x56,0x56,0x04,0x57,0x55,0x55,0x56,0x03,0xb1,0xb0,0x28,0x21,0x32
,0x22,0x22,0x53,0x43,0x54,0x54,0x54,0x54,0x55,0x54,0x55,0x63,0x64,0x54
,0x64,0x55,0x55,0x55,0x55,0x55,0x55,0x03,0x55,0x56,0x04,0x57,0x42,0xb1
,0x31,0x06,0x31,0x31,0x32,0x21,0x53,0x53,0x54,0x54,0x54,0x55,0x54,0x54
,0x54,0x64,0x63,0x63,0x64,0x55,0x55,0x55,0x55,0x55,0x55,0x04,0x5d,0x56
,0x05,0x57,0x03,0xb1,0xa0,0x2d,0x20,0x32,0x22,0x21,0x43,0x55,0x55,0x56
,0x55,0x55,0x56,0x56,0x57,0x65,0x65,0x65,0x66,0x57,0x56,0x55,0x56,0x57
,0x56,0x07,0x5f,0x57,0x55,0x55,0x42,0xb1,0x20,0x2b,0x31,0x21,0x23,0x21
,0x53,0x55,0x57,0x96,0x96,0x96,0x96,0x57,0x96,0x65,0x95,0x66,0x96,0x58
,0x96,0x96,0x96,0x96,0x57,0x07,0x5f,0x57,0x04,0x56,0x03,0xb1,0x20,0x05
,0x20,0x33,0x22,0x31,0x53,0x55,0x56,0x96,0x96,0x96,0x57,0x58,0x56,0x65
,0x65,0x66,0x65,0x58,0x56,0x96,0x96,0x96,0x58,0x06,0x5f,0x56,0x04,0x56
,0x42,0xb1,0x31,0x05,0x32,0x33,0x23,0x21,0x53,0x55,0x57,0x96,0x96,0x58
,0x57,0x58,0x56,0x66,0x65,0x66,0x65,0x58,0x58,0x58,0x96,0x96,0x57,0x07
,0x5f,0x57,0x55,0x58,0x42,0xb1,0xb0,0x29,0x31,0x22,0x22,0x21,0x43,0x55
,0x58,0x96,0x58,0x57,0x56,0x57,0x57,0x65,0x65,0x66,0x65,0x57,0x59,0x57
,0x56,0x96,0x56,0x06,0x5d,0x56,0x55,0x58,0x33,0xb1,0x20,0x26,0x21,0x21
,0x33,0x21,0x53,0x55,0x57,0x57,0x57,0x56,0x58,0x57,0x58,0x65,0x75,0x66
,0x66,0x57,0x56,0x58,0x59,0x59,0x58,0x07,0x5f,0x55,0x55,0x56,0x42,0xb1
,0xb0,0x06,0x32,0x31,0x22,0x31,0x53,0x55,0x57,0x58,0x57,0x58,0x57,0x58
,0x57,0x75,0x65,0x66,0x65,0x56,0x57,0x56,0x57,0x58,0x56,0x07,0x59,0x57
,0x55,0x56,0x42,0xb1,0x20,0x25,0x21,0x21,0x22,0x31,0x42,0x44,0x57,0x58
,0x57,0x58,0x56,0x57,0x56,0x67,0x65,0x56,0x65,0x56,0x58,0x56,0x57,0x58
,0x57,0x07,0x5d,0x56,0x05,0x56,0x42,0xb1,0x20,0x24,0x20,0x22,0x23,0x21
,0x43,0x55,0x57,0x58,0x57,0x58,0x56,0x57,0x56,0x75,0x74,0x66,0x65,0x57
,0x59,0x58,0x57,0x57,0x57,0x0a,0x0c,0x55,0x04,0x57,0x42,0xb1,0xb1,0x25
,0x31,0x21,0x22,0x22,0x43,0x55,0x57,0x57,0x56,0x57,0x57,0x58,0x58,0x65
,0x65,0x66,0x66,0x57,0x57,0x58,0x58,0x56,0x57,0x09,0x0d,0x57,0x05,0x57
,0x42,0xb1,0xb0,0x25,0x31,0x31,0x22,0x21,0x43,0x56,0x59,0x58,0x57,0x58
,0x58,0x58,0x57,0x75,0x75,0x66,0x65,0x58,0x58,0x59,0x57,0x58,0x59,0x09
,0x0c,0x57,0x55,0x56,0x02,0xb1,0xb0,0x06,0x20,0x31,0x33,0x32,0x53,0x56
,0x57,0x96,0x57,0x56,0x56,0x56,0x57,0x65,0x74,0x55,0x56,0x58,0x57,0x59
,0x57,0x96,0x58,0x0c,0x5f,0x58,0x55,0x57,0x42,0xb1,0xb0,0x04,0xb0,0x21
,0x23,0x22,0x43,0x55,0x57,0x96,0x96,0x59,0x56,0x57,0x56,0x67,0x74,0x66
,0x55,0x57,0x57,0x58,0x96,0x96,0x58,0x0d,0x0c,0x57,0x04,0x57,0x02,0xb1
,0x20,0x06,0x31,0x22,0x33,0x22,0x43,0x55,0x56,0x96,0x96,0x96,0x57,0x58
,0x58,0x65,0x65,0x66,0x56,0x56,0x58,0x96,0x96,0x96,0x57,0x09,0x0d,0x58
,0x55,0x57,0x33,0xb1,0xb1,0x06,0x31,0x21,0x22,0x32,0x53,0x55,0x57,0x96
,0x96,0x96,0x96,0x57,0x96,0x65,0x95,0x66,0x95,0x57,0x96,0x96,0x96,0x96
,0x58,0x07,0x5f,0x57,0x04,0x56,0x02,0xb1,0xb0,0x06,0x20,0x22,0x33,0x21
,0x43,0x56,0x57,0x56,0x57,0x58,0x57,0x58,0x57,0x66,0x65,0x66,0x65,0x56
,0x58,0x57,0x57,0x58,0x5a,0x0d,0x0d,0x57,0x04,0x56,0x03,0xb1,0x31,0x25
,0x31,0x21,0x23,0x22,0x45,0x59,0x5d,0x59,0x5d,0x5f,0x5d,0x5f,0x5c,0x6e
,0x6b,0x6d,0x5a,0x5f,0x5e,0x5c,0x5f,0x5f,0x0c,0x0a,0x0d,0x57,0x04,0x57
,0x03,0xb1,0xb0,0x06,0x31,0x31,0x33,0x23,0x47,0x5b,0x5f,0x5a,0x59,0x5b
,0x5f,0x5f,0x5c,0x69,0x6e,0x6c,0x6a,0x5d,0x0e,0x5f,0x5f,0x5f,0x0e,0x0d
,0x5f,0x57,0x05,0x58,0x42,0xb1,0x31,0x05,0x20,0x21,0x23,0x22,0x44,0x55
,0x57,0x57,0x55,0x57,0x57,0x59,0x57,0x75,0x65,0x67,0x66,0x57,0x58,0x57
,0x57,0x57,0x59,0x04,0x55,0x55,0x04,0x56,0x03,0xb1,0xb0,0x25,0x20,0x22
,0x22,0x22,0x44,0x56,0x57,0x56,0x56,0x57,0x57,0x56,0x56,0x65,0x65,0x55
,0x65,0x58,0x56,0x55,0x58,0x57,0x56,0x04,0x56,0x56,0x55,0x57,0x03,0xb1
,0xb0,0x24,0xb0,0x21,0x33,0x22,0x03,0x43,0x03,0x43,0x04,0x43,0x03,0x03
,0x22,0x21,0x31,0x31,0x22,0x04,0x03,0x43,0x43,0x04,0x43,0x05,0x56,0x56
,0x55,0x58,0x03,0xb1,0xa0,0x06,0x31,0x31,0x22,0x44,0x45,0x55,0x57,0x58
,0x57,0x57,0x57,0x57,0x55,0x65,0x65,0x55,0x64,0x56,0x56,0x56,0x56,0x55
,0x55,0x55,0x56,0x56,0x44,0x57,0x03,0xb1,0xb1,0x25,0xb0,0x31,0x32,0x03
,0x43,0x44,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x64,0x64,0x64,0x63,0x55
,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x53,0x53,0x55,0x03,0xb1,0xb1,0xb1
,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1
,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1
,0xb1,0xb1
};
const unsigned char imageBar[] =
{ 110, 21 // width, height
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x08,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x03,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x08,0x0a
,0x0a,0x03,0x03,0x03,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x03,0x03
,0x03,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x0a
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x03,0x03
,0x03,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x08,0x0a
,0x0a,0x03,0x03,0x03,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x03,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x08,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0b,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x00,0x0d,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03
,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x08
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x03,0x08,0x0a,0x0a,0x08,0x03,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03
,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x08
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x03,0x08,0x0a,0x0a,0x08,0x03,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x03
,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x08
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x0a,0x03,0x03
,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x03,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03
,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03
,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x03,0x03,0x0a,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03
,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x8f,0x8f,0x00,0x0d,0x0b,0x0b
,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b
,0x8f,0x8f,0x00,0x0d,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x8f,0x00,0x0d,0x0b,0x0b,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08
,0x03,0x03,0x08,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x03,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x0a,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x03,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a
,0x0a,0x03,0x0a,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03
,0x03,0x03,0x03,0x03,0x03,0x0a,0x08,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x0a,0x0a,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x08,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03
,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03
,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03
,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x08,0x03
,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x03,0x0a,0x03
,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x08,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x03
,0x03,0x03,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a
,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a
};
const unsigned char spritePlasma[] =
{ 32, 32 // width, height
,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f
,0x8f,0x8f,0x8f,0x8f,0x43,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0x8f,0x8f,0x45,0xc6,0x8f,0x44,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x55,0x55,0xc6,0x44,0xc6,0x8f
,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc8,0xc6,0xc6,0x8f,0x55,0x8f
,0x8f,0x8f,0x8f,0x8f,0x55,0x8f,0x8f,0x8f,0x8f,0x44,0xc8,0xc8,0xc6,0xc6
,0xc6,0xc8,0xc6,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0xc6
,0xc6,0xc8,0xc6,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f,0xc6,0xc6
,0xca,0x45,0xc6,0xc6,0xc8,0xcb,0xcb,0x45,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0xc6,0x44,0xc8,0xcb,0xcb,0xc9,0x45,0x44,0x8f,0x8f,0x55,0x55
,0x44,0x8f,0xc6,0xc8,0xc9,0xca,0x8f,0x44,0x8f,0xc8,0xc9,0xc8,0x8f,0x8f
,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x55,0xc8,0xc8,0xc8,0xc9,0xc6,0xc6,0x8f
,0x8f,0x8f,0x44,0x8f,0xc6,0xc6,0xc8,0xc9,0xca,0xc6,0x44,0x8f,0x43,0x8f
,0xc8,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x44,0xc6,0xc6
,0x55,0x8f,0x8f,0x44,0x8f,0x8f,0x8f,0xc6,0xc6,0xca,0xc9,0x4a,0xc6,0x46
,0x8f,0x8f,0x8f,0x8f,0x43,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0x8f,0x55,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f,0xc8,0xca,0xcb
,0x4a,0x4a,0x4a,0xc6,0x44,0x8f,0x8f,0x44,0xc6,0xc8,0x8f,0xc6,0xc6,0x8f
,0x8f,0x8f,0x8f,0x8f,0x8f,0x44,0xc6,0x44,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f
,0x8f,0xc6,0xc6,0xca,0x4a,0x4c,0x4a,0xcb,0xc8,0xc6,0x8f,0xc6,0xc9,0xc9
,0xca,0xc9,0xc9,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x44,0xc6,0x8f,0x8f,0x8f
,0x8f,0xc6,0x45,0xc6,0x8f,0xc6,0xc8,0xca,0x4a,0x4c,0x4a,0x49,0xca,0xca
,0xc8,0x47,0xc9,0xcb,0xc6,0xca,0xc6,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x55,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f,0xc6,0xc9,0xc8,0x49,0x4a,0x4a
,0x4a,0x49,0x4b,0x49,0x49,0xc8,0xca,0xc9,0xc6,0x43,0xc6,0x8f,0x8f,0x8f
,0x8f,0x8f,0x55,0x8f,0x8f,0x8f,0x8f,0x8f,0x55,0x44,0x8f,0x43,0xc8,0xcb
,0x4a,0x4a,0x4a,0x4a,0xca,0x49,0x4a,0x4a,0xcb,0xca,0xc6,0xc8,0x8f,0x8f
,0xc6,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f
,0x55,0xca,0x4a,0x4a,0x4a,0x4c,0x4a,0x4a,0x4a,0xcb,0x4a,0x4a,0x4a,0xc8
,0xc8,0x8f,0x8f,0xc6,0xc6,0xc6,0x8f,0x8f,0x8f,0x55,0xc6,0x8f,0x8f,0x8f
,0x43,0x8f,0xc6,0xc6,0xc8,0x4a,0x4c,0x4a,0x4a,0x4a,0x4c,0x4c,0x4a,0x4a
,0x4a,0x49,0x4a,0xc9,0xc6,0x8f,0x8f,0xc6,0xcb,0x46,0x55,0x8f,0x8f,0xc6
,0x44,0xc6,0xc8,0x8f,0x8f,0xc6,0xc6,0xc8,0x49,0x4a,0x4a,0x4a,0x4a,0x4a
,0x4e,0x4e,0x4d,0x4a,0x4a,0x4a,0x49,0x4a,0xc8,0xc6,0xc6,0xca,0x47,0x4b
,0xc6,0xc6,0xc6,0x45,0x8f,0xc8,0xcb,0xc6,0x44,0x55,0xc8,0xc9,0x4a,0x4a
,0x4a,0x4a,0x4c,0x4d,0x4e,0x4e,0x4d,0x4c,0x4a,0x4a,0x4a,0x4a,0xc9,0xc8
,0xc6,0xc6,0x4a,0x49,0x49,0x45,0xca,0xc9,0xc6,0x45,0xca,0xc6,0x8f,0xc6
,0xc9,0xcb,0x4a,0x4c,0x4a,0x4a,0x4c,0x4d,0x0e,0x4e,0x0e,0x4e,0x4a,0x4a
,0x4a,0x49,0x4a,0xc9,0xc6,0xc9,0xcb,0x4b,0xcb,0x4a,0xcb,0xcb,0x8f,0xc8
,0xc6,0xc6,0x8f,0x8f,0x55,0xc6,0xca,0x4a,0x4a,0x4a,0x4a,0x4a,0xce,0x4e
,0x4e,0xce,0x4a,0x4a,0x49,0x4a,0x49,0xc8,0x45,0xc8,0xca,0xc9,0x49,0xc9
,0xc8,0xc6,0x8f,0x55,0xca,0xc6,0xc6,0xc6,0x8f,0x8f,0xc6,0x49,0x4a,0x4a
,0x4a,0x4a,0x4d,0xce,0x4d,0x4d,0x4c,0x4a,0x49,0x49,0xcb,0xc6,0xc6,0x55
,0xc6,0xc9,0xc9,0xc9,0x55,0xc6,0x8f,0x8f,0x55,0xc6,0xc6,0xc6,0x8f,0x8f
,0x44,0xc9,0x4a,0x4a,0x4a,0x4a,0x4a,0x4d,0x4c,0x4a,0x4a,0x4a,0x49,0x4a
,0xc9,0xc6,0x8f,0x55,0xc8,0xc6,0xc8,0x45,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0xc6,0xc6,0x8f,0x8f,0x55,0xca,0x4a,0x4a,0x4a,0x49,0x4c,0x4d,0x4a,0x4a
,0x4a,0x4a,0x4a,0xca,0x49,0xc6,0x8f,0x8f,0x55,0xc6,0xc6,0xc6,0x8f,0x8f
,0x8f,0x8f,0x8f,0x8f,0x55,0x8f,0x8f,0x8f,0xc6,0xcb,0x4a,0xcb,0x49,0x4a
,0x4a,0x4c,0x4c,0x4a,0x4a,0x4a,0x4a,0x49,0x49,0x55,0x8f,0x55,0x8f,0xc8
,0x45,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0xc6,0x44,0x8f,0x8f,0x55,0xc9
,0xc9,0xcb,0x4a,0x49,0x4a,0x4a,0x4a,0x4a,0x49,0xcb,0xcb,0x49,0xcb,0xc6
,0x8f,0x8f,0xc6,0xc8,0xc9,0xc6,0x8f,0x8f,0x8f,0x8f,0x55,0xca,0xc6,0xc6
,0x8f,0x8f,0xc6,0xc9,0xc8,0xca,0xcb,0x4a,0x4a,0x4a,0x4a,0xcb,0xca,0xc6
,0xc6,0xc9,0xca,0xc6,0x8f,0x8f,0xc6,0xc6,0xc9,0xc6,0x8f,0x8f,0x8f,0x8f
,0xc8,0xca,0xc8,0x44,0x8f,0x8f,0x8f,0x45,0xc6,0xc6,0xc9,0x4a,0x49,0x49
,0x4a,0x49,0xc6,0x8f,0x8f,0xc6,0x55,0x8f,0x8f,0x8f,0xc8,0xc6,0xc6,0x8f
,0x8f,0x8f,0x8f,0xc6,0xc9,0xc9,0xc9,0xc6,0x8f,0x8f,0x55,0x45,0xc6,0x44
,0xc9,0x49,0xcb,0xcb,0x4a,0x49,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6
,0x45,0xca,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0xc6,0xca,0xc6,0x8f,0x8f
,0x44,0xc6,0x8f,0x44,0xc9,0xca,0xc8,0x49,0xca,0xcb,0xc6,0x44,0xc6,0xc6
,0x8f,0x8f,0x44,0xc9,0xca,0xc9,0x45,0x45,0xc6,0x8f,0x8f,0x8f,0x8f,0xc8
,0xc9,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0xc6,0x46,0xc8,0xc9,0xc9
,0xc6,0x8f,0x45,0xc6,0xc6,0xc6,0x8f,0xc8,0xc6,0x44,0x55,0xc6,0xc6,0x8f
,0x8f,0x8f,0x8f,0x55,0x45,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x55,0xc9
,0xc6,0xc6,0xc6,0x44,0x8f,0x8f,0xc6,0xc6,0xc6,0xc8,0xc6,0x55,0x44,0x8f
,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0x44,0x8f,0xc9,0x43,0x55,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x45
,0xc8,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x43,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0xc6,0xc8,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0xc6,0xc6,0xc8,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f
,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0xc9
,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0xc6,0x44,0x8f,0x8f,0x8f,0x8f,0x8f
,0x55,0x8f
};
#define TEXTURES 6
const unsigned char *textures[TEXTURES] =
{texture1, texture2, texture3, texture4, texture5, texture6};
unsigned char textureAverageColors[TEXTURES];
RCL_Unit floorHeightAt(int16_t x, int16_t y)
{
if (x < 0 || x >= LEVEL_X_RES || y < 0 || y >= LEVEL_Y_RES)
return RCL_UNITS_PER_SQUARE * 2;
RCL_Unit square = level[(LEVEL_Y_RES - y -1) * LEVEL_X_RES + x];
#ifdef RENDER_COMPLEX
/* algorithm used with this version doesn't support rolling doors, so give
door square zero height */
return square == 0 || square == 6 ? 0 : RCL_UNITS_PER_SQUARE * 2;
#else
return square == 0 ? 0 : RCL_UNITS_PER_SQUARE * 2;
#endif
}
RCL_Unit collisionAt(int16_t x, int16_t y)
{
if (x < 0 || x >= LEVEL_X_RES || y < 0 || y >= LEVEL_Y_RES)
return RCL_UNITS_PER_SQUARE;
RCL_Unit square = level[(LEVEL_Y_RES - y -1) * LEVEL_X_RES + x];
return square == 0 || square == 6 ? 0 : RCL_UNITS_PER_SQUARE;
}
RCL_Unit textureAt(int16_t x, int16_t y)
{
RCL_Unit t = 0;
if (x >= 0 && x < LEVEL_X_RES && y >= 0 && y < LEVEL_Y_RES)
t = max(level[(LEVEL_Y_RES - y -1) * LEVEL_X_RES + x] - 1,0);
return t;
}
RCL_Unit rollAt(int16_t x, int16_t y)
{
if (x >= 0 && x < LEVEL_X_RES && y >= 0 && y < LEVEL_Y_RES &&
level[(LEVEL_Y_RES - y -1) * LEVEL_X_RES + x] == 6)
return RCL_sinInt(pokitto.frameCount * 10) + DOOR_ROLL_SIGN * RCL_UNITS_PER_SQUARE;
return 0;
}
uint8_t cFloor, cCeiling;
RCL_Vector2D shotPosition;
RCL_Vector2D shotDirection;
bool shotFired = false;
uint8_t previousColumn = 255; ///< Helper for pixelIntensity.
int8_t pixelIntensity = 0; ///< Precomputed column intensity addition.
int16_t mirror = 0;
/**
Function for drawing a single pixel (like fragment shader).
*/
inline void pixelFunc(RCL_PixelInfo *pixel)
{
if (pixel->position.y == MIDDLE_ROW)
zBuffer[pixel->position.x] = pixel->depth;
uint8_t color = 0;
#ifndef NO_MIRROR
if (pixel->position.y == 0)
mirror = 0;
#endif
bool drawCeiling = false;
int16_t intensity = 0;
if (!pixel->isWall)
{
#if RCL_COMPUTE_FLOOR_TEXCOORDS == 1
if (pixel->isFloor)
{
if (pixel->texCoords.y > 3 * RCL_UNITS_PER_SQUARE) // leave astrip of untextured floor
color = pixel->depth > TEXTURE_MAX_DISTANCE_FLOOR ?
textureAverageColors[1] :
sampleImage(textures[1],pixel->texCoords.x / FLOOR_TEXTURE_SCALE,pixel->texCoords.y / FLOOR_TEXTURE_SCALE);
else
color = cFloor;
#ifdef TEXTURE_CEILING
drawCeiling = true;
#endif
}
else
{
#ifdef TEXTURE_CEILING
// don't draw ceiling here, we'll draw it along with floor
return;
#else
color = 0; // looks better :)
#endif
}
#else
color = pixel->isFloor ? cFloor: cCeiling;
#endif
#ifndef NO_MIRROR
intensity = pixel->isFloor ?
2 - (pixel->depth - mirror * 128) / RCL_UNITS_PER_SQUARE : 0;
#else
intensity = 2 - pixel->depth / RCL_UNITS_PER_SQUARE;
#endif
color = addIntensity(color,intensity);
mirror++;
}
else
{
RCL_Unit textureScroll = pixel->hit.type != 4 ? 0 : 16 * pokitto.frameCount;
#ifdef NO_TEXTURES
color = textureAverageColors[pixel->hit.type];
#else
color = pixel->depth < TEXTURE_MAX_DISTANCE ?
sampleImage(textures[pixel->hit.type],pixel->texCoords.x + textureScroll,pixel->texCoords.y) :
textureAverageColors[pixel->hit.type];
#endif
#ifndef NO_SHADING
/* NOTE: to gain a lot of performance, it's best to have precomputed color
color gradients and look the colors up as opposed to calling
addIntensity(...), but for the sake of simplicity we don't do it
here. */
if (previousColumn == pixel->position.x)
{
color = addIntensity(color,pixelIntensity);
}
else
{
// optimization: precompute intensity for the whole column
pixelIntensity = 2 - pixel->depth / RCL_UNITS_PER_SQUARE + (pixel->hit.direction == 0 || pixel->hit.direction == 2 ? 4 : 0);
previousColumn = pixel->position.x;
color = addIntensity(color,pixelIntensity);
}
#endif
}
putSubsampledPixel(pixel->position.x,pixel->position.y,color);
#ifdef TEXTURE_CEILING
if (drawCeiling)
{
/* here we sample a different texture for ceiling, but if the texture is
same as floor, just reuse the color sampled above to save on the
sampling and intensity addition */
color = pixel->depth > TEXTURE_MAX_DISTANCE_FLOOR ?
textureAverageColors[0] :
sampleImage(textures[0],pixel->texCoords.x / FLOOR_TEXTURE_SCALE,pixel->texCoords.y / FLOOR_TEXTURE_SCALE);
color = addIntensity(color,intensity);
putSubsampledPixel(pixel->position.x,RESOLUTION_Y - pixel->position.y - 1,color);
}
#endif
}
void draw()
{
#ifdef HEAD_BOB
player.mCamera.height += player.mHeadBob;
#endif
#ifdef RENDER_COMPLEX
RCL_renderComplex(player.mCamera,floorHeightAt,0,textureAt,defaultConstraints);
#else
RCL_renderSimple(player.mCamera,floorHeightAt,textureAt,rollAt,defaultConstraints);
#endif
#ifdef HEAD_BOB
player.mCamera.height -= player.mHeadBob;
#endif
if (shotFired)
{
RCL_PixelInfo pos = RCL_mapToScreen(shotPosition,RCL_UNITS_PER_SQUARE,player.mCamera);
drawSpriteSquare(spritePlasma,pos.position.x * SUBSAMPLE,
pos.position.y,pos.depth,
RCL_perspectiveScale(64,pos.depth),1);
}
drawImage(imageBar,0,INFO_BAR_START - 3);
// uncomment for debuggin camera
/*
pokitto.display.setColor(255);
pokitto.display.setCursor(1,1);
pokitto.display.print(player.mCamera.position.x);
pokitto.display.print(" ");
pokitto.display.print(player.mCamera.position.y);
pokitto.display.print(" ");
pokitto.display.print(player.mCamera.height);
pokitto.display.print(" ");
pokitto.display.print(player.mCamera.direction);
*/
}
int main()
{
initGeneral();
defaultConstraints.maxHits = 1;
defaultConstraints.maxSteps = 20;
for (uint8_t i = 0; i < TEXTURES; ++i)
textureAverageColors[i] = computeAverageColor(textures[i]);
cFloor = 10;
cCeiling = 10;
player.setPositionSquare(9,1);
player.mCamera.height = RCL_CAMERA_COLL_HEIGHT_BELOW;
player.mCamera.resolution.y = RESOLUTION_Y;
uint32_t previousTime = 0;
uint32_t dt;
int16_t moveDirection;
int16_t rotationDirection;
while (pokitto.isRunning())
{
if (pokitto.update())
{
draw();
uint32_t timeNow = pokitto.getTime();
dt = timeNow - previousTime;
previousTime = timeNow;
moveDirection = 0;
rotationDirection = 0;
if (shotFired)
{
// update the shot
RCL_Unit shotStep = (dt * SHOT_SPEED) / 1000;
shotPosition.x += (shotStep * shotDirection.x) / RCL_UNITS_PER_SQUARE;
shotPosition.y += (shotStep * shotDirection.y) / RCL_UNITS_PER_SQUARE;
if (
RCL_absVal(shotPosition.x - player.mCamera.position.x) > RCL_UNITS_PER_SQUARE * 5 ||
RCL_absVal(shotPosition.y - player.mCamera.position.y) > RCL_UNITS_PER_SQUARE * 5 ||
(textureAt(shotPosition.x / RCL_UNITS_PER_SQUARE,shotPosition.y / RCL_UNITS_PER_SQUARE) != 0)
)
shotFired = false;
}
else if (pokitto.bBtn())
{
shotPosition = player.mCamera.position;
shotDirection = RCL_angleToDirection(player.mCamera.direction);
shotFired = true;
}
bool strafe = pokitto.aBtn();
if (!strafe)
{
if (pokitto.upBtn())
moveDirection = 1;
else if (pokitto.downBtn())
moveDirection = -1;
}
if (pokitto.rightBtn())
{
if (!strafe)
rotationDirection = 1;
else
moveDirection = 1;
}
else if (pokitto.leftBtn())
{
if (!strafe)
rotationDirection = -1;
else
moveDirection = -1;
}
player.update(moveDirection,strafe,rotationDirection,false,0,
collisionAt,0,false,dt);
}
}
return 0;
}