/** 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; }