Add files via upload

This commit is contained in:
Jason Bou-Samra
2024-06-07 11:30:44 +10:00
committed by GitHub
parent f48029c478
commit f7d80236a2
83 changed files with 22482 additions and 17 deletions
+10
View File
@@ -0,0 +1,10 @@
#! /bin/make
# :vim: set noexpandtab:
CFLAGS = -lm -lSDL2_image `sdl2-config --cflags --libs`
columns: columns.c
$(CC) -o columns columns.c $(CFLAGS)
clean:
rm columns
+130
View File
@@ -0,0 +1,130 @@
int ascii [128][4] = { // BLK (X/Y, WHT (X/Y))
{518, 49, 582, 49}, // NUL Null
{518, 49, 582, 49}, // SOH Start Of Heading
{518, 49, 582, 49}, // STX Start of TeXt
{518, 49, 582, 49}, // ETX End of TeXt
{518, 49, 582, 49}, // EOT End Of Transm,
{518, 49, 582, 49}, // ENQ ENQuiry
{518, 49, 582, 49}, // ACK ACKnowledge
{518, 49, 582, 49}, // BEL BELl
{518, 49, 582, 49}, // BS Back Space
{518, 49, 582, 49}, // HT Horizontal Tabulation (Character Tabulation)
{518, 49, 582, 49}, // LF Line Feed
{518, 49, 582, 49}, // VT Vertical Tabulation (Line Tabulation)
{518, 49, 582, 49}, // FF Form Feed
{518, 49, 582, 49}, // CR Carriage Return
{518, 49, 582, 49}, // SO Shift Out
{518, 49, 582, 49}, // SI Shift In
{518, 49, 582, 49}, // DLE Data Link Escape
{518, 49, 582, 49}, // DC1 Device Control 1
{518, 49, 582, 49}, // DC2 Device Control 2
{518, 49, 582, 49}, // DC3 Device Control 3
{518, 49, 582, 49}, // DC4 Device Control 4
{518, 49, 582, 49}, // NAK Negative AKnowledgement
{518, 49, 582, 49}, // SYN SYNchronous idle
{518, 49, 582, 49}, // ETB End of Transmission Block
{518, 49, 582, 49}, // CAN CANcel
{518, 49, 582, 49}, // EM End of Medium
{518, 49, 582, 49}, // SUB SUBstitute
{518, 49, 582, 49}, // ESC ESCape
{518, 49, 582, 49}, // FS File Separator
{518, 49, 582, 49}, // GS Group Separator
{518, 49, 582, 49}, // RS Record Separator
{518, 49, 582, 49}, // US Unit Separator
{518, 49, 582, 49}, // SPC Space 510, 574
{494, 25, 558, 25}, // ! Exclamation mark (point)
{486, 37, 550, 37}, // " Quotation mark, quotes
{510, 43, 574, 43}, // # Number sign, hash
{502, 25, 566, 25}, // $ Dollar Sign
{510, 25, 574, 25}, // % Percent sign
{486, 49, 550, 49}, // & Ampersand
{494, 37, 558, 37}, // ' Apostrophe
{470, 31, 534, 31}, // ( Left parenthesis
{478, 31, 542, 31}, // ) Right parenthesis
{462, 31, 526, 31}, // * Asterisk
{502, 31, 566, 31}, // + Plus sign
{486, 43, 550, 43}, // , Comma
{486, 31, 550, 31}, // - Hyphen, dash, minus
{478, 43, 542, 43}, // . Full stop, dot, point
{518, 37, 582, 37}, // / Forward slash
{478, 19, 542, 19}, // 0 zero
{486, 19, 550, 19}, // 1 one
{494, 19, 558, 19}, // 2 two
{502, 19, 566, 19}, // 3 three
{510, 19, 574, 19}, // 4 four
{518, 19, 582, 19}, // 5 five
{462, 25, 526, 25}, // 6 six
{470, 25, 534, 25}, // 7 seven
{478, 25, 542, 25}, // 8 eight
{486, 25, 550, 25}, // 9 nine
{470, 37, 534, 37}, // : Colon
{478, 37, 542, 37}, // ; Semicolon
{462, 43, 526, 43}, // < Less than, Left angled bracket
{510, 31, 574, 31}, // = Equal
{470, 43, 534, 43}, // > Greater than, Right angled bracket
{478, 49, 542, 49}, // ? Question mark
{518, 43, 582, 43}, // @ At sign, commercial at
{462, 1, 526, 1}, // A Alpha
{470, 1, 534, 1}, // B Bravo
{478, 1, 542, 1}, // C Charlie
{486, 1, 550, 1}, // D Delta
{494, 1, 558, 1}, // E Echo
{502, 1, 566, 1}, // F Foxtrot
{510, 1, 574, 1}, // G Golf
{518, 1, 582, 1}, // H Hotel
{462, 7, 526, 7}, // I India
{470, 7, 534, 7}, // J Juliett
{478, 7, 542, 7}, // K Kilo
{486, 7, 550, 7}, // L Lima
{494, 7, 558, 7}, // M Mike
{502, 7, 566, 7}, // N November
{510, 7, 574, 7}, // O Oscar
{518, 7, 582, 7}, // P Papa
{462, 13, 526, 13}, // Q Quebec
{470, 13, 534, 13}, // R Romeo
{478, 13, 542, 13}, // S Sierra
{486, 13, 550, 13}, // T Tango
{494, 13, 558, 13}, // U Uniform
{502, 13, 566, 13}, // V Victor
{510, 13, 574, 13}, // W Whiskey
{518, 13, 582, 13}, // X X-ray
{462, 19, 526, 19}, // Y Yankee
{470, 19, 534, 19}, // Z Zulu
{518, 31, 582, 31}, // [ Left square bracket
{510, 37, 574, 37}, // \ Backslash
{462, 37, 526, 37}, // ] Right square bracket
{518, 25, 582, 25}, // ^ Circumflex accent, Caret
{494, 31, 558, 31}, // _ Underscore
{502, 43, 566, 43}, // ` Grave accent
{462, 1, 526, 1}, // a alpha
{470, 1, 534, 1}, // b bravo
{478, 1, 542, 1}, // c charlie
{486, 1, 550, 1}, // d delta
{494, 1, 558, 1}, // e echo
{502, 1, 566, 1}, // f foxtrot
{510, 1, 574, 1}, // g golf
{518, 1, 582, 1}, // h hotel
{462, 7, 526, 7}, // i india
{470, 7, 534, 7}, // j juliett
{478, 7, 542, 7}, // k kilo
{486, 7, 550, 7}, // l lima
{494, 7, 558, 7}, // m mike
{502, 7, 566, 7}, // n november
{510, 7, 574, 7}, // o oscar
{518, 7, 582, 7}, // p papa
{462, 13, 526, 13}, // q quebec
{470, 13, 534, 13}, // r romeo
{478, 13, 542, 13}, // s seirra
{486, 13, 550, 13}, // t tango
{494, 13, 558, 13}, // u uniform
{502, 13, 566, 13}, // v victor
{510, 13, 574, 13}, // w whiskey
{518, 13, 582, 13}, // x x-ray
{462, 19, 526, 19}, // y yankee
{470, 19, 534, 19}, // z zulu
{462, 49, 526, 49}, // { Left curly bracket
{502, 37, 566, 37}, // | Vertical bar
{470, 49, 534, 49}, // } Right curly bracket
{494, 43, 558, 43}, // ~ Tilde
{518, 49, 582, 49}, // DEL DELete
};
BIN
View File
Binary file not shown.
+519
View File
@@ -0,0 +1,519 @@
/*************************************
** FUN COLUMNS - SDL **
** clone of FTA version from 1991 **
** JC 'Al-Khwarizmi' Bou-Samra **
** Paragon Software 04/05/2024 - **
*************************************/
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <math.h>
#include <stdbool.h>
#include "sprite_sheet.h"
#include "text.h"
#include "ascii.h"
#include "game.h"
enum gradient {Blue = 0, Green = 10, Red = 20, Yellow = 30, Magenta = 40, Cyan = 50, Grey = 60} colour = 0;
int backdrop (enum gradient colour);
int check_key(void);
int Ren_restart(void); // game over/restart
int Ren_pause(void); // pause
int Ren_game(void); // render game
int Ren_logo (void); // display logo
int Ren_about (void); // display about
int Ren_info (void); // info screen
int Ren_menu (void); // main menu
int Ren_level (void); // display level / current score
int Ren_next (void); // display next block/brick/piece
int Ren_high (void); // display high scores
int Ren_line (char line[], int char_x, int char_y, int ln, int ll, bool col ); // parameter names in function prototypes not necessary
int initSDL (void); // initialise SDL
int shutdownSDL (void); // shutdown SDL
int render (void); // render output
int init_gfx (void); // create texture
int i, j, k, x, y, z, l; // index variables
int gamep = 0;
int tile_c;
int tile_pos = 112;
bool next_p = false; // next piece flag
bool quit = false; // quit flag
bool main_m = false;
bool pause_f = 0;
SDL_Window *window = NULL;
SDL_Renderer *sr;
SDL_Event event;
SDL_RWops* rwops_new;
SDL_Surface* image;
SDL_Texture * texture;
SDL_Rect logo_src = { 384, 0, 78, 54 };
SDL_Rect logo_dst = { 230, 136, 78, 54 };
//SDL_Rect char_src = {463, 0 , 7 , 5};
//SDL_Rect char_dst = {22, 11 , 7 , 5};
SDL_Rect main_back = {110, 0, 100, 200};
SDL_Rect main_trim = {111, 0, 98, 200};
SDL_Rect level_back = {231, 7, 76, 66};
SDL_Rect level_trim = {230, 6, 78, 68};
SDL_Rect next_back = {257, 86, 18, 37};
SDL_Rect next_trim = {256, 85, 20, 39};
SDL_Rect high_back = {13, 7, 76, 186};
SDL_Rect high_trim = {12, 6, 78, 188};
SDL_Rect tile_src = {132, 0, 12, 11};
SDL_Rect tile_dst = {112, 1, 12, 11};
SDL_Rect gameo_back = {119, 93, 82, 13};
/* window paramaters */
#define WIDTH 1280 // pixels
#define HEIGHT 800 // pixels
#define TITLE "FUN COLUMNS" // window title
/** board background colours **/
int grad_tab[] = {
0x0000cc, 0x0000bb, 0x0000aa, 0x000099, 0x000088, 0x000077, 0x000066, 0x000055, 0x000044, 0x000033, // blue
0x00cc00, 0x00bb00, 0x00aa00, 0x009900, 0x008800, 0x007700, 0x006600, 0x005500, 0x004400, 0x003300, // green
0xcc0000, 0xbb0000, 0xaa0000, 0x990000, 0x880000, 0x770000, 0x660000, 0x550000, 0x440000, 0x330000, // red
0xcccc00, 0xbbbb00, 0xaaaa00, 0x999900, 0x888800, 0x777700, 0x666600, 0x555500, 0x444400, 0x333300, // yellow
0xcc00cc, 0xbb00bb, 0xaa00aa, 0x990099, 0x880088, 0x770077, 0x660066, 0x550055, 0x440044, 0x330033, // magenta
0x00cccc, 0x00bbbb, 0x00aaaa, 0x009999, 0x008888, 0x007777, 0x006666, 0x005555, 0x004444, 0x003333, // cyan
0xcccccc, 0xbbbbbb, 0xaaaaaa, 0x999999, 0x888888, 0x777777, 0x666666, 0x555555, 0x444444, 0x333333 // grey
};
// ============= Main =============
int main (void) {
initSDL ();
init_gfx();
while (quit == false) {
SDL_Delay(50);
while (SDL_PollEvent (&event)) {
if (event.type == SDL_QUIT || event.type == SDL_WINDOWEVENT_CLOSE) {
quit = true;
}
switch (event.type) {
case SDL_KEYDOWN:
gamep = 0;
if (event.key.keysym.sym == SDLK_q) {
quit = true;
} // quit
if (event.key.keysym.sym == SDLK_a) {
printf("about\n");
gamep = 1;
} // about
if (event.key.keysym.sym == SDLK_i) {
printf("info\n");
gamep = 2;
} // info
else if (event.key.keysym.sym > SDLK_0 && event.key.keysym.sym < SDLK_7) { // level
main_m = false;
gamep = 3;
while (main_m == false) {
// SDL_Delay(150);
render ();
SDL_PollEvent (&event);
switch (event.type) {
case SDL_KEYDOWN:
gamep = 3;
if(event.key.keysym.sym == SDLK_c
&& (event.key.keysym.mod & KMOD_CTRL) != 0 ) {
colour = colour + 10;
if (colour >= 69) {colour = 0;}
backdrop(colour);
pause_f = 0;
break;
} // gradient colour cycle
else if (event.key.keysym.sym == SDLK_LEFT) {
pause_f = 0;
if (tile_pos == 112) {break;}
tile_pos = tile_pos - 12;
break;
} // left arrow
else if (event.key.keysym.sym == SDLK_RIGHT) {
pause_f = 0;
if (tile_pos == 196) {break;}
tile_pos = tile_pos + 12;
break;
} // right arrow
else if (event.key.keysym.sym == SDLK_n) {
printf("next brick preview\n");
next_p = !next_p;
pause_f = 0;
break;
} // next piece (brick/block) preview
else if( event.key.keysym.sym == SDLK_r
&& (event.key.keysym.mod & KMOD_CTRL) != 0 ) {
printf("restart\n");
main_m = true;
gamep = 4;
pause_f = 0;
//check_key();
break;
} // restart
else if (event.key.keysym.sym == SDLK_r) {
printf("rotate\n");
pause_f = 0;
break;
} // rotate tiles
else if (event.key.keysym.sym == SDLK_SPACE) {
printf("drop/fall\n");
pause_f = 0;
break;
} // drop/fall block/piece/brick
else if( event.key.keysym.sym == SDLK_s
&& (event.key.keysym.mod & KMOD_CTRL) != 0 ) {
printf("change tile pattern\n");
pause_f = 0;
break;
} // change tile design/pattern
else if (event.key.keysym.sym == SDLK_p) {
if (!pause_f){
printf("pause\n");
gamep = 5;
pause_f = 1;}
else {
pause_f = 0;
gamep = 3;}
// check_key();
break;
} // pause
}
}
}
}
}
if (quit) {
break;
}
render ();
}
shutdownSDL ();
return 0;
}
// ============= Initialize SDL =============
int initSDL () {
SDL_Init (SDL_INIT_EVERYTHING);
/* new window */
window = SDL_CreateWindow ( TITLE, /* title */
SDL_WINDOWPOS_CENTERED,/* x pos */
SDL_WINDOWPOS_CENTERED,/* w pos */
WIDTH, /* width */
HEIGHT, /* height */
SDL_WINDOW_BORDERLESS); /* Additional flag(s) */
/* deal with error */
if (window == NULL) {
fprintf (stderr, "SDL window failed to initialise: %s\n",
SDL_GetError ());
return 1;
}
/* create renderer */
sr = SDL_CreateRenderer (window, 0, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
SDL_RenderSetScale (sr, 4.0, 4.0); // scale x2 x4 options on cli
}
// ============= Shutdown =============
int shutdownSDL () {
SDL_DestroyWindow (window); // free memory
SDL_Quit (); // shutdown entire sdl sub-systems
return 0;
}
// ============= Render =============
int render () {
backdrop(colour); // backdrop
//Ren_menu();
switch (gamep) {
case 0:
Ren_menu();
break;
case 1:
Ren_about();
break;
case 2:
Ren_info();
break;
case 3:
Ren_game();
break;
case 4:
Ren_game();
Ren_restart();
break;
case 5:
Ren_game();
Ren_pause();
break;
}
Ren_logo(); // logo
Ren_level(); // render current level/score
Ren_next(); // render next brick/block/piece
Ren_high(); // render high scores
SDL_RenderPresent (sr);
}
// ============= Backdrop =============
int backdrop (enum gradient colour) {
k = 0; // gradient fill
for (j = 0; j < 10; j++) {
SDL_SetRenderDrawColor (sr, (grad_tab[j + colour] & 0x00ff0000) >> 16, (grad_tab[j + colour] & 0x0000ff00) >> 8, grad_tab[j + colour] & 0x000000ff, 255);
for (i = 0; i < 20; i++) {
SDL_RenderDrawLine (sr, 0, k, 319, k);
k = k + 1;
}
}
k = 0; // horizontal edge light
SDL_SetRenderDrawColor (sr, 0x99, 0x99, 0x99, 255);
for (i = 0; i < 16; i++) {
SDL_RenderDrawLine (sr, k, 0, k, 199);
k = k + 20;
}
k = 0; // vertical edge light
// SDL_SetRenderDrawColor (sr, 0x99, 0x99, 0x99, 255);
for (i = 0; i < 10; i++) {
SDL_RenderDrawLine (sr, 0, k, 319, k);
k = k + 20;
}
k = 19; // horizontal edge dark
SDL_SetRenderDrawColor (sr, 0x0, 0x0, 0x0, 255);
for (i = 0; i < 16; i++) {
SDL_RenderDrawLine (sr, k, 0, k, 199);
k = k + 20;
}
k = 19; // vertical edge dark
// SDL_SetRenderDrawColor (sr, 0x0, 0x0, 0x0, 255);
for (i = 0; i < 10; i++) {
SDL_RenderDrawLine (sr, 0, k, 319, k);
k = k + 20;
}
l = 0; // corner highlight
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
for (j = 0; j < 10; j++) {
k = 0;
for (i = 0; i < 16; i++) {
SDL_RenderDrawPoint(sr, k, l);
k = k + 20;
}
l = l + 20;
}
return 0;
}
// ============= init_gfx =============
int init_gfx(void) {
rwops_new = SDL_RWFromMem(byn, sizeof(byn));
image = IMG_LoadPNG_RW(rwops_new);
texture = SDL_CreateTextureFromSurface(sr, image);
SDL_FreeSurface( image );
image = NULL;
return 0;
}
// ============= Logo =============
int Ren_logo(void) {
SDL_RenderCopy(sr, texture, &logo_src, &logo_dst);
SDL_SetRenderDrawColor (sr, 0x0, 0x0, 0x0, 255); // shadow
SDL_RenderDrawLine (sr, 234, 190, 308, 190);
SDL_RenderDrawLine (sr, 234, 191, 309, 191);
SDL_RenderDrawLine (sr, 308, 190, 308, 140);
SDL_RenderDrawLine (sr, 309, 191, 309, 140);
return 0;
}
// ============= Game =============
int Ren_game(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
if(tile_c > 17) {
tile_c = 0;
}
for (i = 0; i < 1; i++) {
tile_dst.x = tile_pos;
tile_dst.y = 11 * tile_c + 1;
SDL_RenderCopy(sr, texture, &tile_src, &tile_dst);
tile_c++;
}
return 0;
}
// ============= About =============
int Ren_about(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
for (z = 0; z < 13; z++) { // 13 lines of text
Ren_line(about, aboutl[z][0], aboutl[z][1], z * 11, 11, 0);
}
return 0;
}
// ============= Info =============
int Ren_info(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
for (z = 0; z < 11; z++) { // 11 lines of text
Ren_line(info, infol[z][0], infol[z][1], z * 11, 11, 0);
}
return 0;
}
// ============= Game Over =============
int Ren_restart(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &gameo_back); // background
for (z = 0; z < 1; z++) { // 1 line of text
Ren_line(gameo, gameol[z][0], gameol[z][1], z * 9, 9, 1);
}
return 0;
}
// ============= Pause =============
int Ren_pause(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &gameo_back); // background
for (z = 0; z < 1; z++) { // 1 line of text
Ren_line(pause, pausel[z][0], pausel[z][1], z * 9, 9, 1);
}
return 0;
}
// ============= Main Menu =============
int Ren_menu(void) {
SDL_SetRenderDrawColor(sr, 0x0 , 0x0 , 0x0, 0xff);
SDL_RenderFillRect(sr, &main_back); // background
SDL_SetRenderDrawColor (sr, 0xff, 0xff, 0xff, 255);
SDL_RenderDrawRect(sr, &main_trim); // trim
for (z = 0; z < 10; z++) { // 10 lines of text
Ren_line(m_menu, m_menul[z][0], m_menul[z][1], z * 11, 11, 0);
}
return 0;
}
// ============= Status =============
int Ren_level(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &level_back); // background
SDL_SetRenderDrawColor (sr, 0x00, 0x00, 0x00, 255);
SDL_RenderDrawRect(sr, &level_trim); // trim
SDL_RenderDrawLine (sr, 234, 74, 308, 74); // level shadow
SDL_RenderDrawLine (sr, 234, 75, 309, 75);
SDL_RenderDrawLine (sr, 308, 75, 308, 10);
SDL_RenderDrawLine (sr, 309, 74, 309, 10);
for (z = 0; z < 6; z++) { // 6 lines of text
Ren_line(status, statusl[z][0], statusl[z][1], z * 7, 7, 1);
}
return 0;
}
// ============= Next Piece =============
int Ren_next(void) {
if (next_p == 0) {
} else {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &next_back); // background
SDL_SetRenderDrawColor (sr, 0x00, 0x00, 0x00, 255);
SDL_RenderDrawRect(sr, &next_trim); // trim
SDL_RenderDrawLine (sr, 259, 124, 276, 124); // next shadow
SDL_RenderDrawLine (sr, 259, 125, 277, 125);
SDL_RenderDrawLine (sr, 276, 124, 276, 89);
SDL_RenderDrawLine (sr, 277, 125, 277, 89);
}
return 0;
}
// ============= High Scores =============
int Ren_high(void) {
SDL_SetRenderDrawColor(sr, 0xff , 0xff , 0xff, 0xff);
SDL_RenderFillRect(sr, &high_back); // background
SDL_SetRenderDrawColor (sr, 0x00, 0x00, 0x00, 255);
SDL_RenderDrawRect(sr, &high_trim); // trim
SDL_RenderDrawLine (sr, 17, 194, 90, 194); // next shadow
SDL_RenderDrawLine (sr, 17, 195, 91, 195);
SDL_RenderDrawLine (sr, 90, 194, 90, 10);
SDL_RenderDrawLine (sr, 91, 195, 91, 10);
for (z = 0; z < 18; z++) { // 18 lines of text
Ren_line(high, highl[z][0], highl[z][1], z * 7, 7, 1);
}
return 0;
}
// ============= ASCII Line Render =============
// api: text, x, y, line num, line len, col
int Ren_line(char line[], int char_x, int char_y, int ln, int ll, bool col ) {
int cc; // char col
j = 0;
if (col) {
cc = 2; // white char
} else {
cc = 0; // black char
}
for (i = 0; i < ll; i++) {
SDL_Rect char_dst = {char_x + j, char_y, 8, 5};
SDL_Rect char_src = {ascii[line[i + ln]][cc], ascii[line[i + ln]][cc + 1], 8, 5};
SDL_RenderCopy(sr, texture, &char_src, &char_dst); // render char
j = j + 8; // character height
}
return 0;
}
// ============= wait for key =============
int check_key(void) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_KEYDOWN) {
return 0;
}
}
}
// ============= Hidden message =============
char author[] = { "copyright (c)1991 FTA, (c)2024 Jason Bou-Samra" };
const char* title = "FUN COLUMNS - SDL";
const char* descr = "clone of FTA 1991 version";
+1782
View File
File diff suppressed because it is too large Load Diff
+269
View File
@@ -0,0 +1,269 @@
int grid [] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
};
int grid2 [18][8] = {
{5, 0, 0, 0, 0, 0, 0, 0},
{5, 0, 0, 0, 0, 0, 0, 0},
{5, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
};
/********************
* tile combos *
* pink = 0 *
* green = 1 *
* purple = 2 *
* yellow = 3 *
* orange = 4 *
* cyan = 5 *
* ******************/
int Bricks [216][3] = {
{0,0,0},
{0,0,1},
{0,0,2},
{0,0,4},
{0,0,5},
{0,0,3},
{0,1,0},
{0,1,1},
{0,1,2},
{0,1,4},
{0,1,5},
{0,1,3},
{0,2,0},
{0,2,1},
{0,2,2},
{0,2,4},
{0,2,5},
{0,2,3},
{0,4,0},
{0,4,1},
{0,4,2},
{0,4,4},
{0,4,5},
{0,4,3},
{0,5,0},
{0,5,1},
{0,5,2},
{0,5,4},
{0,5,5},
{0,5,3},
{0,3,0},
{0,3,1},
{0,3,2},
{0,3,4},
{0,3,5},
{0,3,3},
{1,0,0},
{1,0,1},
{1,0,2},
{1,0,4},
{1,0,5},
{1,0,3},
{1,1,0},
{1,1,1},
{1,1,2},
{1,1,4},
{1,1,5},
{1,1,3},
{1,2,0},
{1,2,1},
{1,2,2},
{1,2,4},
{1,2,5},
{1,2,3},
{1,4,0},
{1,4,1},
{1,4,2},
{1,4,4},
{1,4,5},
{1,4,3},
{1,5,0},
{1,5,1},
{1,5,2},
{1,5,4},
{1,5,5},
{1,5,3},
{1,3,0},
{1,3,1},
{1,3,2},
{1,3,4},
{1,3,5},
{1,3,3},
{2,0,0},
{2,0,1},
{2,0,2},
{2,0,4},
{2,0,5},
{2,0,3},
{2,1,0},
{2,1,1},
{2,1,2},
{2,1,4},
{2,1,5},
{2,1,3},
{2,2,0},
{2,2,1},
{2,2,2},
{2,2,4},
{2,2,5},
{2,2,3},
{2,4,0},
{2,4,1},
{2,4,2},
{2,4,4},
{2,4,5},
{2,4,3},
{2,5,0},
{2,5,1},
{2,5,2},
{2,5,4},
{2,5,5},
{2,5,3},
{2,3,0},
{2,3,1},
{2,3,2},
{2,3,4},
{2,3,5},
{2,3,3},
{3,0,0},
{3,0,1},
{3,0,2},
{3,0,4},
{3,0,5},
{3,0,3},
{3,1,0},
{3,1,1},
{3,1,2},
{3,1,4},
{3,1,5},
{3,1,3},
{3,2,0},
{3,2,1},
{3,2,2},
{3,2,4},
{3,2,5},
{3,2,3},
{3,4,0},
{3,4,1},
{3,4,2},
{3,4,4},
{3,4,5},
{3,4,3},
{3,5,0},
{3,5,1},
{3,5,2},
{3,5,4},
{3,5,5},
{3,5,3},
{3,3,0},
{3,3,1},
{3,3,2},
{3,3,4},
{3,3,5},
{3,3,3},
{4,0,0},
{4,0,1},
{4,0,2},
{4,0,4},
{4,0,5},
{4,0,3},
{4,1,0},
{4,1,1},
{4,1,2},
{4,1,4},
{4,1,5},
{4,1,3},
{4,2,0},
{4,2,1},
{4,2,2},
{4,2,4},
{4,2,5},
{4,2,3},
{4,4,0},
{4,4,1},
{4,4,2},
{4,4,4},
{4,4,5},
{4,4,3},
{4,5,0},
{4,5,1},
{4,5,2},
{4,5,4},
{4,5,5},
{4,5,3},
{4,3,0},
{4,3,1},
{4,3,2},
{4,3,4},
{4,3,5},
{4,3,3},
{5,0,0},
{5,0,1},
{5,0,2},
{5,0,4},
{5,0,5},
{5,0,3},
{5,1,0},
{5,1,1},
{5,1,2},
{5,1,4},
{5,1,5},
{5,1,3},
{5,2,0},
{5,2,1},
{5,2,2},
{5,2,4},
{5,2,5},
{5,2,3},
{5,4,0},
{5,4,1},
{5,4,2},
{5,4,4},
{5,4,5},
{5,4,3},
{5,5,0},
{5,5,1},
{5,5,2},
{5,5,4},
{5,5,5},
{5,5,3},
{5,3,0},
{5,3,1},
{5,3,2},
{5,3,4},
{5,3,5},
{5,3,3}
};
+435
View File
@@ -0,0 +1,435 @@
char byn[] = {
0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,
0x00,0x0D,0x49,0x48,0x44,0x52,0x00,0x00,0x02,0x4E,
0x00,0x00,0x00,0x42,0x04,0x03,0x00,0x00,0x00,0x53,
0x2A,0x44,0x94,0x00,0x00,0x01,0x7D,0x69,0x43,0x43,
0x50,0x49,0x43,0x43,0x20,0x70,0x72,0x6F,0x66,0x69,
0x6C,0x65,0x00,0x00,0x28,0x91,0x7D,0x91,0x3D,0x48,
0x42,0x51,0x18,0x86,0x9F,0x7B,0xED,0x8F,0x50,0x1A,
0x72,0x88,0x70,0xB8,0x83,0x35,0xE5,0x52,0x11,0x8D,
0x66,0x81,0x04,0x06,0x62,0x06,0x6A,0x0D,0xDD,0x9F,
0x34,0xC1,0x7B,0x95,0x7B,0x95,0x96,0xC6,0xA0,0x55,
0x68,0xE8,0x67,0xC9,0x6A,0x68,0x69,0xAE,0xB5,0xA1,
0x35,0x08,0x82,0x7E,0x20,0x9A,0x1B,0x9A,0x8A,0x5A,
0x22,0x6E,0x1C,0x15,0x94,0xC8,0xBE,0xE5,0x3C,0xBC,
0xE7,0x7B,0x3F,0xCE,0xF7,0x1E,0x90,0x6B,0x05,0xDD,
0x74,0xBA,0xC2,0x60,0x5A,0x65,0x3B,0x11,0x8D,0x28,
0xA9,0x74,0x46,0xE9,0x7D,0xA1,0x07,0x89,0x1E,0x64,
0x02,0xAA,0xEE,0x94,0x66,0xE2,0xF1,0x18,0x1D,0xEB,
0xF3,0x0E,0x49,0x9C,0xB7,0x21,0x31,0xAB,0x73,0xDF,
0x9F,0xE5,0x33,0xD6,0x1C,0x1D,0x24,0x05,0x08,0xEB,
0x25,0xBB,0x0C,0xD2,0x2A,0x30,0xB5,0x51,0x2E,0x09,
0xDE,0x03,0xFC,0xFA,0xBA,0x6A,0x80,0x74,0x06,0x8C,
0xD9,0xA9,0x74,0x06,0xA4,0x07,0xA1,0x6B,0x0D,0x7E,
0x15,0x9C,0xAB,0xB3,0x2C,0x66,0xFA,0xED,0x64,0x62,
0x16,0x64,0x3F,0xA0,0xE4,0xDA,0x58,0x6B,0x63,0x7D,
0xDD,0x36,0x41,0x9E,0x04,0x82,0x86,0x69,0x19,0x20,
0xA7,0x1A,0x6C,0x08,0xDE,0x14,0x6C,0x16,0x2A,0x7A,
0xF3,0x9D,0x62,0x43,0xEF,0x9A,0xB5,0xB4,0x28,0x74,
0x20,0x40,0x94,0x79,0x16,0x88,0xA3,0xA0,0x51,0x21,
0x4F,0x81,0x32,0x21,0xF2,0x58,0x28,0x38,0x24,0x88,
0x12,0xE9,0xE0,0x1F,0xAE,0xFB,0xE3,0x54,0xD0,0x28,
0x90,0x47,0x47,0x61,0x8E,0x22,0x26,0x6A,0xDD,0x8F,
0xF8,0x83,0xDF,0xD9,0x3A,0xD9,0x89,0xF1,0xC6,0x24,
0x6F,0x04,0xBA,0x9F,0x5D,0xF7,0x7D,0x04,0x7A,0x77,
0xE0,0xBB,0xEA,0xBA,0x5F,0x47,0xAE,0xFB,0x7D,0x0C,
0x9E,0x27,0xB8,0xB4,0x5A,0xFE,0x62,0x0D,0xA6,0x3F,
0xC0,0x53,0x6D,0x69,0xC1,0x43,0x18,0xD8,0x82,0xF3,
0xAB,0x96,0xA6,0xED,0xC2,0xC5,0x36,0x0C,0x3D,0x96,
0x54,0x5B,0xAD,0x4B,0x1E,0x40,0xCE,0x66,0xE1,0xED,
0x14,0x7C,0x69,0x18,0xBC,0x81,0xFE,0xE5,0x46,0x6E,
0xCD,0x7B,0x4E,0xEE,0x21,0xB9,0x09,0xB1,0x6B,0xD8,
0x3F,0x80,0xD1,0x1C,0x0C,0xAC,0x74,0xD8,0xBB,0xAF,
0x3D,0xB7,0x7F,0x7B,0x9A,0xF9,0xFD,0x00,0x08,0xFC,
0x72,0x7C,0x23,0x75,0x72,0xC6,0x00,0x00,0x00,0x2D,
0x50,0x4C,0x54,0x45,0x00,0x00,0x00,0xDD,0x22,0xAA,
0x88,0x55,0xEE,0x00,0x99,0x99,0xCC,0x66,0x33,0x11,
0xAA,0x44,0x99,0x99,0x99,0xFF,0x77,0xCC,0xBB,0x88,
0xFF,0xBB,0xAA,0x11,0x00,0xDD,0xDD,0xFF,0x99,0x66,
0x66,0xFF,0x99,0xFF,0xEE,0x99,0xFF,0xFF,0xFF,0xF9,
0xB5,0x11,0x45,0x00,0x00,0x00,0x09,0x70,0x48,0x59,
0x73,0x00,0x00,0x0B,0x13,0x00,0x00,0x0B,0x13,0x01,
0x00,0x9A,0x9C,0x18,0x00,0x00,0x00,0x07,0x74,0x49,
0x4D,0x45,0x07,0xE8,0x06,0x01,0x06,0x03,0x1A,0xD3,
0xFD,0x77,0x81,0x00,0x00,0x0E,0xC1,0x49,0x44,0x41,
0x54,0x78,0xDA,0xED,0x9B,0xAF,0x6F,0x72,0xC9,0x17,
0xC6,0x4F,0x69,0x0B,0x94,0x1F,0x13,0x50,0x58,0x82,
0x42,0x36,0xC1,0xA1,0x10,0x38,0x0C,0x06,0x87,0x40,
0x55,0x6E,0x40,0xE1,0x36,0x04,0x85,0xDA,0x60,0x11,
0x24,0x4D,0x70,0x88,0x4D,0x05,0x8E,0x64,0x53,0x83,
0x23,0x9B,0x5A,0x04,0x9B,0xAB,0xDA,0xA6,0x3F,0xE6,
0x6F,0xF8,0x9E,0xE7,0xCC,0xCC,0xE5,0x42,0x29,0xBD,
0xFD,0xBE,0xE4,0x4D,0xD3,0x74,0x12,0xA6,0x77,0xD9,
0xBE,0x97,0xE1,0x33,0xE7,0x9C,0x79,0x9E,0x99,0x5B,
0xA2,0x93,0x6E,0x37,0x43,0x74,0xBE,0x5C,0xD6,0x89,
0x22,0x83,0x41,0x9E,0xE8,0x62,0xBD,0x1E,0x12,0x9D,
0xCD,0xE7,0x15,0xA2,0xD3,0xE9,0xF4,0x92,0xBA,0xD2,
0x96,0xD2,0x06,0xD2,0xD6,0xD2,0xE6,0xD2,0xA6,0xD2,
0x74,0x88,0x96,0xC3,0x6D,0x3A,0x4D,0xDC,0x66,0x51,
0xC4,0x6D,0xFA,0x63,0xDC,0x66,0x55,0xC3,0x6D,0x66,
0x65,0xDC,0x66,0x12,0x66,0x3C,0xE6,0x6E,0xA4,0xB4,
0xF6,0xE8,0x48,0xED,0xA3,0xA1,0x13,0x75,0x1F,0xBA,
0x5D,0xA2,0xE5,0xCB,0x72,0x49,0x34,0x78,0x1C,0x0C,
0x88,0xD6,0xAF,0xEB,0x35,0xD1,0xFC,0x79,0x3E,0x27,
0x9A,0x3E,0x4D,0xA7,0x86,0x53,0x47,0x30,0x2D,0x04,
0x53,0x5F,0x30,0xAD,0x04,0xD3,0x4C,0x30,0x4D,0xE4,
0x6E,0xF7,0x87,0xFB,0x13,0x06,0xD5,0xC9,0x9C,0x33,
0xA8,0x45,0x3D,0xC2,0xA0,0xFA,0xF9,0x0B,0x06,0xB5,
0x1A,0x9E,0x31,0xA8,0x59,0xE5,0x94,0x41,0x4D,0x78,
0x52,0x3A,0x59,0x8C,0x67,0xD1,0xC0,0x78,0xFA,0x05,
0x8C,0x67,0x35,0xC2,0x78,0x66,0x55,0x8C,0x67,0x52,
0x9A,0x3A,0x4E,0x0E,0x56,0x88,0xE6,0x29,0xF3,0xFB,
0xC2,0xD6,0xFE,0x5B,0xCF,0xBE,0xEF,0xF1,0xBB,0x1E,
0x03,0xD7,0xC0,0xC5,0x3F,0x15,0x99,0x6B,0xFC,0x54,
0xF2,0xDF,0xFC,0x6B,0x14,0xFB,0x53,0x77,0x73,0xED,
0xD4,0xBF,0x7A,0xD9,0xBC,0x8D,0xFF,0xA5,0x07,0xC5,
0x5E,0xFA,0x3F,0xBD,0x1E,0xDF,0x25,0xFF,0xD1,0xF3,
0xDA,0x4D,0xE2,0x6F,0x3D,0x2D,0x5F,0x0B,0xA7,0xAC,
0x70,0x6A,0x08,0xA7,0x82,0x70,0x1A,0x09,0xA7,0xAA,
0x70,0x2A,0xC9,0x70,0xAE,0x0E,0xF7,0xED,0x2C,0xDF,
0x26,0x76,0xDB,0xE0,0xDB,0xA4,0x7A,0x05,0xBE,0x4D,
0xFC,0x6E,0xC4,0xB7,0x49,0xDF,0x54,0xF9,0x36,0xC9,
0xEB,0x12,0xDF,0x26,0x11,0xD3,0x9D,0x2C,0x8F,0x47,
0x2F,0x1A,0x3C,0x1E,0xDD,0x2F,0xF0,0x78,0xF4,0x6A,
0xC4,0xE3,0xD1,0xB3,0x2A,0x8F,0x47,0x4F,0x4A,0xE5,
0x6B,0xF3,0xDD,0x95,0x01,0x10,0x2A,0x5C,0x84,0x85,
0x79,0x01,0x82,0xFB,0xE9,0x5E,0x8C,0x03,0x77,0x92,
0x17,0x20,0xBA,0x9F,0xEE,0xC5,0xFF,0x9D,0xE3,0x78,
0xEA,0x70,0x2E,0xBC,0x2C,0x17,0x9C,0x0B,0x8F,0x83,
0x3E,0xE7,0xC2,0xEB,0x7A,0xC5,0xB9,0xF0,0x3C,0x9F,
0x71,0x2E,0x3C,0x4D,0x27,0x93,0x70,0x9C,0x5A,0x51,
0xE6,0x81,0x79,0xB9,0xD2,0xF7,0x44,0x7F,0xC8,0xB5,
0xE9,0x95,0xED,0xBB,0x27,0xB9,0x4E,0xA6,0xB3,0x3C,
0x6F,0x2E,0xEA,0x8B,0x41,0xA4,0xD8,0xCF,0xF7,0xD7,
0x17,0xE3,0xD5,0x70,0x35,0x3F,0xAB,0xCD,0x2A,0xB3,
0xE9,0x69,0x79,0x72,0x39,0xC9,0x3D,0x64,0xB3,0xB9,
0x4E,0xF3,0xA5,0xD1,0x68,0x2E,0x8A,0x8F,0x85,0x42,
0xB1,0x3F,0x7E,0x1D,0x8D,0xC6,0xAB,0xDA,0x73,0xB5,
0x5A,0x9B,0x95,0x9F,0x4A,0xA5,0xF2,0x24,0x18,0x29,
0x61,0x39,0xB9,0x38,0x72,0x9C,0x34,0x72,0x0D,0xD7,
0x26,0xAE,0xC8,0xC5,0x91,0xE3,0x42,0xF6,0x37,0xB4,
0x89,0x2B,0xC9,0xA9,0x4E,0x4E,0x52,0xAA,0x29,0x29,
0x55,0x94,0x94,0x1A,0x4B,0x4A,0xD5,0x24,0xA5,0xCA,
0xA1,0x38,0x59,0x36,0xD1,0x7B,0x50,0x89,0x6A,0x15,
0xB8,0xD6,0xB6,0xEF,0xB6,0xB3,0xD9,0x58,0x76,0x79,
0xDB,0x68,0xA4,0x1A,0x83,0x5E,0xA1,0x10,0x2F,0xAC,
0xEF,0x46,0xA3,0xF4,0x68,0x7E,0x53,0xAD,0x26,0xAB,
0xD3,0xEB,0x52,0x29,0x51,0xE2,0xB4,0xCB,0xE6,0x1E,
0x38,0xED,0x1A,0xCD,0x17,0x4E,0xBB,0x42,0xF1,0x91,
0xD3,0x6E,0x34,0x7E,0xE5,0xB4,0xAB,0xD6,0x9E,0x39,
0xED,0x4A,0xE5,0xA7,0x6D,0x4E,0xB1,0xAE,0x6D,0x6D,
0x53,0x41,0x6F,0xDB,0x29,0xEA,0xFA,0x8D,0x7A,0xB1,
0x6E,0xFB,0x50,0x3C,0x99,0xF7,0xDF,0x8F,0x27,0xFB,
0xFE,0xD1,0x38,0x79,0xCA,0x53,0x7E,0x0C,0x39,0x36,
0xF2,0x8E,0xD2,0xB6,0xE7,0xA4,0xCB,0xE4,0xB2,0x9C,
0x74,0xF5,0x66,0x83,0x93,0x2E,0x5F,0x2C,0x70,0xD2,
0x0D,0xC7,0x23,0x4E,0xBA,0x4A,0xAD,0xCA,0x49,0x77,
0x59,0x2E,0x31,0x26,0xE6,0xC4,0x98,0x98,0x13,0x63,
0x62,0x4E,0x8C,0x89,0x39,0x31,0x26,0xE6,0xC4,0x98,
0x3E,0xE6,0x44,0xCB,0xDB,0xCD,0x7B,0xF1,0x01,0xF9,
0x9C,0x76,0xEB,0x13,0x02,0xC5,0xD6,0x27,0x13,0x43,
0x3B,0xF5,0xC9,0x04,0x9A,0xE1,0xD4,0x01,0x82,0xDC,
0x02,0x08,0x9A,0x7D,0x20,0x28,0xAE,0x80,0x60,0x3C,
0x03,0x82,0xDA,0x04,0x08,0x42,0x72,0x32,0xF9,0x75,
0x28,0x9E,0x3A,0x99,0x6E,0xF7,0x24,0xBB,0xA8,0x2F,
0x97,0xE7,0x8D,0x7E,0x7E,0x30,0x88,0x14,0x56,0xC3,
0xF5,0xFA,0x62,0x34,0xAB,0xCC,0xE7,0x67,0xD5,0xC9,
0xE5,0x74,0x7A,0x2A,0x9C,0xFE,0x14,0x4E,0xFF,0x0A,
0xA7,0xBF,0x84,0xD3,0x7F,0xC2,0xE9,0x1F,0xE1,0xF4,
0xF7,0x47,0x9C,0x52,0xBC,0x24,0xF9,0xE1,0x34,0x18,
0xF4,0x62,0xCC,0xE9,0x97,0xD7,0xBB,0x5C,0x8E,0x23,
0xBD,0xD3,0x6C,0x72,0xA4,0x2F,0x8A,0x45,0x8E,0xF4,
0xFE,0x78,0xCC,0x91,0xBE,0xAA,0xD5,0x38,0xD2,0x67,
0xE5,0x32,0x47,0xFA,0xE4,0x73,0xF1,0xB4,0xBF,0x3E,
0x09,0x27,0xFE,0x4A,0xED,0xEC,0x82,0xBF,0xC7,0x6D,
0xA3,0x1F,0xE7,0x6F,0x50,0x58,0xA5,0xD7,0x9C,0x7A,
0xB3,0xE4,0x9C,0x53,0x6F,0x92,0x98,0x72,0xEA,0xE5,
0x38,0x9C,0x74,0xA7,0xC9,0xE1,0xA4,0x17,0x45,0x0E,
0x27,0xDD,0x1F,0x73,0x38,0xE9,0x55,0x8D,0xC3,0x49,
0xCF,0xCA,0x1C,0x4E,0x7A,0x72,0x98,0x13,0x81,0x55,
0xCC,0x0F,0x27,0x5E,0xC1,0xDB,0x52,0x9F,0x64,0xF9,
0xDA,0xCE,0x3D,0xE5,0xAF,0x83,0x06,0xD5,0x6E,0xEE,
0x79,0xCA,0xAD,0x83,0x14,0xE3,0xF9,0xCB,0xB6,0x53,
0x3C,0x7F,0x8D,0xDB,0x38,0xCF,0x5F,0xA1,0x97,0xE6,
0xF9,0x1B,0xDD,0x25,0x79,0xFE,0xAA,0x37,0x09,0x9E,
0xBF,0xD2,0xD1,0xD6,0xBB,0x0C,0xEE,0x73,0x52,0xC7,
0x7D,0xCE,0xF3,0xB8,0x4F,0x64,0x88,0xFB,0x5C,0x54,
0x70,0x9F,0xB3,0x4B,0xDC,0xE7,0x34,0x96,0xED,0x6A,
0xCD,0xE3,0x59,0x6A,0xCD,0xE3,0x19,0x68,0xCD,0xE3,
0x59,0x6B,0xCD,0xE3,0x99,0x6B,0xCD,0xE3,0x61,0xA1,
0xB6,0xB3,0xDE,0xED,0x70,0x42,0x38,0xF9,0x01,0x45,
0xF8,0x94,0x1E,0xD7,0x71,0xF9,0xB6,0xC2,0xC6,0xD6,
0x72,0xC9,0x3F,0x15,0xA8,0x5B,0xF6,0x6E,0x9A,0x1C,
0x38,0xCE,0x3F,0xC7,0x0D,0x39,0xD9,0xCD,0x8A,0x5E,
0x69,0x88,0x5E,0x29,0x88,0x5E,0x19,0x89,0x5E,0xA9,
0x8A,0x5E,0x29,0xB1,0x5E,0xE9,0x82,0x65,0x67,0x09,
0x96,0x8B,0x01,0x58,0xF6,0xD7,0x60,0xB9,0x9A,0x83,
0xE5,0x6C,0x0A,0x96,0x13,0x7D,0xC5,0xED,0xFE,0x70,
0x1F,0xEB,0xC8,0x9C,0x2C,0x64,0x4E,0xFA,0x32,0x27,
0x2B,0x99,0x93,0x99,0xCC,0x09,0x92,0xEA,0x9A,0x18,
0x13,0xC6,0xA3,0x35,0xC6,0xA3,0x35,0xC6,0xA3,0x35,
0xC6,0xA3,0x35,0xC6,0xA3,0xF5,0x8E,0x7E,0xDA,0xE5,
0x44,0x86,0x56,0xCC,0x0F,0x27,0x48,0xC2,0x0D,0x27,
0xED,0x6D,0xEA,0xB7,0xD2,0x7E,0xDD,0xF2,0x39,0x71,
0xC5,0xF2,0xE3,0xC9,0xB3,0xB5,0x49,0x62,0x2A,0x84,
0xFE,0xC5,0xD7,0xCB,0x66,0xF1,0xF5,0x1A,0x0D,0x7C,
0xBD,0x42,0x01,0x5F,0x6F,0x34,0xC2,0xD7,0xAB,0x56,
0xF1,0xF5,0x4A,0xA5,0xFB,0x2B,0x41,0x71,0xB0,0x0F,
0x73,0x9F,0xCF,0xEA,0xF1,0x5D,0x4E,0x26,0x9C,0x6C,
0x40,0x91,0x71,0x0F,0x3D,0xC3,0x49,0x07,0xE3,0x89,
0xD4,0xCE,0x1A,0xE8,0x72,0x8D,0xB6,0xD7,0x39,0x97,
0x87,0x5F,0xAE,0x85,0xE0,0x14,0x6C,0xBB,0x9C,0xF8,
0x2D,0x59,0xF3,0xF0,0x76,0x9B,0x48,0xEA,0x93,0xD1,
0x4F,0xA4,0x8C,0x1C,0x32,0x5A,0x2A,0x58,0x9F,0x6C,
0x29,0xF7,0x8C,0x9C,0x32,0x7A,0x29,0x58,0x9F,0x0C,
0xA7,0x87,0x2E,0x7E,0xEB,0x05,0x9F,0x40,0x8F,0xB8,
0x29,0xBD,0xAE,0xD1,0x3F,0xCF,0xD1,0x3F,0x4D,0xC9,
0x8C,0xA4,0x2D,0x13,0x75,0x2B,0x91,0xDC,0x4B,0xA3,
0xAE,0xDC,0x25,0x51,0x57,0x6E,0x12,0xA8,0x2B,0xD7,
0xCA,0xD9,0x83,0x03,0xFD,0xB1,0x7C,0x8B,0xB9,0x9B,
0x91,0x82,0x7B,0xD6,0x3B,0xBC,0x38,0x96,0xE4,0x3D,
0x0C,0xF7,0x28,0xEB,0x1D,0xC1,0xB7,0x10,0xC1,0xB7,
0x10,0xC1,0xB7,0x10,0xC1,0xB7,0x10,0xC1,0xB7,0x10,
0xC1,0xB7,0x98,0x91,0x64,0x84,0x53,0x5D,0x38,0xE5,
0x85,0xD3,0x50,0x38,0x55,0x84,0xD3,0xA5,0x8C,0xBD,
0x75,0xB8,0x27,0xF8,0x16,0x22,0xF8,0x16,0x22,0xF8,
0x16,0x22,0xF8,0x16,0x22,0xF8,0x16,0x22,0xF8,0x16,
0x0A,0xE3,0x5B,0x2C,0xA7,0x60,0x7D,0x6A,0x93,0x09,
0x24,0xC7,0xC9,0x7D,0x7F,0x17,0x4F,0x41,0x7F,0xA7,
0x02,0xF1,0xE4,0x5E,0x41,0x7F,0xE7,0x05,0xE2,0x29,
0x50,0xC7,0xD9,0xB7,0x88,0x0F,0x5E,0x88,0x0F,0xEE,
0x8B,0x0F,0x5E,0x89,0x0F,0x9E,0x89,0x0F,0x9E,0x84,
0xE4,0xC4,0xBE,0xA5,0x25,0x71,0xDA,0x52,0xD0,0x05,
0x72,0x6D,0x7A,0x65,0xFB,0x18,0x7C,0x4B,0x3B,0x05,
0xDF,0x72,0x1B,0x87,0x6F,0xE9,0xA5,0xE1,0x5B,0xEE,
0x92,0xF0,0x2D,0x37,0x09,0xF8,0x96,0xEB,0x30,0xBE,
0x25,0x04,0x27,0x8E,0x22,0x29,0x4E,0x7E,0xDE,0x05,
0x6A,0x91,0xC8,0xCA,0x00,0x23,0x79,0x37,0x50,0x8B,
0x40,0x32,0xC8,0x48,0xAA,0x16,0x3E,0xA5,0x23,0x0C,
0x16,0xC2,0xA0,0x2F,0x0C,0x56,0xC2,0x60,0x26,0x0C,
0x26,0x97,0xA1,0x38,0x59,0x36,0xAC,0x2D,0xD1,0x6B,
0x15,0xB8,0xD6,0xB6,0x8F,0xC1,0xB7,0x64,0x52,0xF0,
0x2D,0xF5,0x38,0x7C,0x4B,0x3E,0x0D,0xDF,0x32,0x4C,
0xC2,0xB7,0x54,0x12,0xF0,0x2D,0x97,0x3C,0x98,0x13,
0xF8,0x96,0xFA,0x39,0x7C,0x4B,0x3E,0x02,0xDF,0x32,
0xBC,0x80,0x6F,0xA9,0x9C,0xC1,0xB7,0x5C,0x9E,0x96,
0x9F,0xB6,0x32,0xFA,0xBD,0x4C,0x8A,0xC9,0x62,0xB7,
0xC5,0xC9,0xD6,0xA8,0x5D,0x4E,0xA6,0x32,0xF9,0x7A,
0xFC,0x0D,0x27,0xFC,0xAB,0xE3,0x71,0x02,0x77,0x3F,
0x86,0x1C,0x1B,0x79,0x47,0x69,0xDB,0xC7,0xE0,0x5B,
0x32,0x29,0xF8,0x96,0x7A,0x1C,0xBE,0x25,0x9F,0x86,
0x6F,0x19,0x26,0xE1,0x5B,0x2A,0x09,0xF8,0x96,0xCB,
0x0E,0x27,0x26,0x7C,0x0B,0x11,0x7C,0x0B,0x11,0x7C,
0x0B,0x11,0x7C,0x0B,0x11,0x7C,0x0B,0xD1,0x2E,0xA7,
0x58,0xF7,0x9D,0x46,0x41,0x4E,0x56,0x03,0x08,0x24,
0xCB,0xC9,0xE6,0xA2,0x89,0x27,0xAB,0x01,0xE4,0xBE,
0x96,0x93,0xCD,0x45,0x13,0x4F,0x27,0x90,0x90,0x99,
0x73,0x48,0xC8,0x7A,0x04,0x12,0x32,0x7F,0x01,0x09,
0x39,0x3C,0x83,0x84,0xAC,0x9C,0x42,0x42,0x86,0xE4,
0x64,0xF2,0xEB,0x50,0x3C,0x9D,0xC0,0xB7,0x64,0xCE,
0xE1,0x5B,0xEA,0x11,0xF8,0x96,0xFC,0x05,0x7C,0xCB,
0xF0,0x0C,0xBE,0xA5,0x72,0x0A,0xDF,0xC2,0x9C,0x32,
0x27,0xF0,0x2D,0xF5,0x73,0xF8,0x96,0x7C,0x04,0xBE,
0x65,0x78,0x01,0xDF,0x52,0x39,0x83,0x6F,0xB9,0x3C,
0xFD,0x3B,0x2C,0x27,0x04,0x54,0xA0,0x3E,0xF9,0x31,
0x25,0xA8,0x64,0x3B,0x60,0x13,0x57,0x7E,0x4D,0xB2,
0xF1,0x64,0x56,0x89,0x40,0x5C,0x11,0x7C,0x0B,0x4F,
0xDE,0x12,0x53,0x08,0xDF,0xC2,0x93,0xB7,0xC6,0x14,
0xC2,0xB7,0xF0,0xE4,0xF1,0x02,0x43,0x9F,0x8B,0xA7,
0xFD,0xF5,0x49,0x38,0x61,0xAD,0xCE,0x9C,0xC3,0xB7,
0xD4,0x23,0xF0,0x2D,0xF9,0x0B,0xF8,0x96,0xE1,0x19,
0x7C,0x4B,0xE5,0x14,0xBE,0xE5,0x32,0x8C,0x6F,0xD9,
0x53,0x9F,0xDE,0x0B,0x28,0xC7,0xE9,0xD7,0xD7,0x3B,
0x48,0x3F,0x5E,0x83,0xB8,0xF1,0x1A,0xC4,0x8D,0xD7,
0x20,0x6E,0xBC,0x06,0x71,0xE3,0x35,0x08,0xD2,0xEF,
0x68,0xEB,0x9D,0x0C,0x9E,0x8C,0xCC,0x31,0x42,0x19,
0xF7,0xE1,0x35,0x63,0x2E,0x7B,0xA7,0xDC,0x28,0x8C,
0x6F,0x09,0xCB,0x89,0x03,0x6A,0xA7,0x3E,0xB9,0xC4,
0xDA,0x6C,0x9B,0xD8,0xF7,0x9D,0x6E,0xB2,0x89,0xB9,
0xD9,0x76,0x71,0x7A,0x0A,0xA0,0x00,0x14,0x98,0x00,
0x0A,0x3D,0x30,0x01,0x14,0x7A,0xC6,0x14,0xCA,0x03,
0x2A,0x08,0x6E,0xEF,0x70,0x7F,0x2C,0xDF,0xF2,0x8E,
0x7E,0x7A,0x1B,0x4F,0xB4,0xC9,0x3B,0xA7,0xBA,0x6D,
0x7D,0x72,0x48,0xDC,0x1A,0xE8,0xDC,0x2F,0xD9,0xFA,
0xE4,0x90,0x7E,0x47,0x3D,0xFE,0x26,0x9C,0x58,0x3E,
0xC9,0x9A,0x27,0xFE,0xCE,0xF3,0xD7,0x39,0xBF,0x3E,
0x29,0x7F,0x9F,0x9C,0x9C,0xB2,0x72,0x9C,0xCC,0xBA,
0xE7,0xEF,0x93,0x7F,0x6B,0x4E,0x4E,0x67,0xC6,0xAD,
0xBF,0x33,0x0B,0x98,0x5B,0xEF,0x68,0x93,0x66,0x76,
0xBF,0xC0,0x2C,0x80,0x6E,0xBD,0xD3,0x9B,0x34,0x0D,
0xBB,0x0B,0xFF,0x5B,0x5B,0x08,0xDF,0xB2,0xCD,0xE9,
0x5D,0xFD,0x14,0xE4,0x24,0x8C,0x6C,0xEC,0xA8,0xC0,
0xBE,0x26,0xD9,0x35,0x50,0x18,0xD9,0xD8,0xF1,0x02,
0xFB,0x9A,0xDA,0xDF,0x2F,0x20,0x2D,0xE0,0xB5,0xF8,
0x3B,0x2D,0xFE,0x4E,0x8B,0xBF,0xD3,0xE2,0xEF,0x34,
0x86,0x15,0xA2,0xFE,0x9A,0xAA,0xFA,0x41,0x7F,0x24,
0xDF,0x62,0xEF,0x16,0xAC,0x4F,0xFB,0xF4,0x78,0x2F,
0x18,0x4F,0xBF,0xBC,0xDE,0xC5,0x1E,0xF0,0x21,0xA9,
0x17,0x78,0xA2,0xF8,0x23,0x36,0xB5,0xD2,0xAF,0xEB,
0x3B,0xA2,0xE4,0xF3,0xFC,0x86,0x28,0xF1,0x34,0xBD,
0x0E,0xC9,0x89,0x7D,0x8B,0x2C,0xC0,0xDC,0x43,0x17,
0xC8,0xB5,0xE9,0x95,0xEB,0xE1,0x5B,0x38,0xA7,0xD8,
0xB7,0x70,0x4E,0xB1,0x6F,0xE1,0x9C,0x62,0xDF,0xC2,
0x39,0xC5,0xBE,0x85,0x73,0x8A,0x7D,0x0B,0x6B,0x4C,
0xD6,0xE3,0xEC,0x5B,0x58,0x8F,0xB3,0x6F,0x61,0x3D,
0xCE,0xBE,0x85,0xF5,0x38,0xFB,0x16,0xD6,0xE3,0xEC,
0x5B,0x58,0x8F,0x4F,0x2C,0xA7,0xE0,0xBE,0xCA,0x5B,
0x4E,0x14,0x0F,0x72,0x52,0x9B,0xF3,0x3A,0x5F,0x93,
0x4B,0x42,0x79,0x46,0x8F,0x7B,0x9B,0xF3,0x3A,0x5F,
0x93,0x4B,0x42,0x2A,0xAB,0xC7,0xC1,0xA0,0x23,0x1F,
0xB1,0x10,0x06,0x7D,0x61,0xB0,0x12,0x06,0x33,0x61,
0x30,0x09,0xC7,0xC9,0xB2,0x61,0x6D,0x89,0x5E,0xAB,
0xC0,0xB5,0x76,0x3D,0x7C,0x0B,0x11,0x7C,0x0B,0x11,
0x7C,0x0B,0x11,0x7C,0x0B,0x11,0x7C,0x0B,0x11,0x7C,
0x0B,0x36,0xFD,0x79,0xEA,0x30,0x69,0xA9,0x17,0x4C,
0x5A,0xFC,0x11,0x93,0x96,0x7E,0xC5,0xA4,0x25,0x9F,
0x31,0x69,0x89,0xA7,0x60,0x8C,0xBE,0xCF,0x69,0x10,
0xE4,0x64,0xEA,0x91,0xDE,0x9C,0xAF,0x00,0x8F,0x0A,
0xAC,0x78,0x76,0xEB,0xCF,0xF7,0x2A,0xC0,0xE3,0x6D,
0x56,0xBC,0xE3,0x71,0x12,0xBF,0xE8,0x62,0xC8,0xB1,
0x91,0x77,0x94,0x76,0x3D,0x7C,0x0B,0xE7,0x1D,0xFB,
0x16,0xCE,0x3B,0xF6,0x2D,0x9C,0x77,0xEC,0x5B,0x38,
0xEF,0xD8,0xB7,0x70,0xDE,0xB1,0x6F,0x21,0x04,0x5C,
0xEC,0x01,0x01,0x97,0x7A,0x41,0xC0,0xC5,0x1F,0x11,
0x70,0xE9,0x57,0x04,0x5C,0xF2,0x99,0x03,0x2E,0x2C,
0xA7,0xB8,0xCF,0x09,0xFB,0x74,0x41,0x1D,0x6E,0xE2,
0xD0,0xF3,0xE3,0xCA,0x4F,0x3D,0xBB,0xCE,0x21,0x8E,
0x36,0x6B,0x9E,0x72,0xE7,0xE6,0x52,0x33,0x96,0x52,
0x33,0x06,0x52,0x33,0xD6,0x52,0x33,0xE6,0x52,0x33,
0xE0,0x5B,0x42,0x72,0x32,0xF9,0x75,0x30,0x9E,0xE0,
0x5B,0x88,0xE0,0x5B,0x88,0xE0,0x5B,0x88,0xE0,0x5B,
0x88,0xE0,0x5B,0x88,0xE0,0x5B,0x84,0x93,0x12,0x4E,
0x4A,0x38,0x29,0xE1,0xA4,0x84,0x93,0x12,0x4E,0xEA,
0x03,0x4E,0x94,0x12,0x4E,0x83,0x6D,0x4E,0x01,0x5F,
0xE7,0xC3,0x51,0x12,0x54,0x9E,0xDD,0xA5,0xF3,0x7D,
0x9D,0x0F,0xC7,0x93,0xA0,0x52,0xB6,0x3E,0x75,0x31,
0xB4,0xD4,0x12,0x43,0x8B,0x0F,0x30,0xB4,0xF4,0x1A,
0x43,0x4B,0xCE,0x31,0xB4,0x04,0xB6,0xCE,0x3E,0x17,
0x4F,0xFB,0xEB,0x53,0xD4,0x7C,0x96,0xD4,0x42,0xD9,
0x1F,0x8A,0xCB,0x17,0x81,0x6F,0xC1,0x67,0x49,0x2D,
0x64,0xDF,0x42,0xB9,0x6C,0x26,0x06,0xDF,0x52,0x4F,
0xC1,0xB7,0xE4,0xE3,0xF0,0x2D,0xC3,0x34,0x7C,0x4B,
0x25,0x09,0xDF,0x72,0xC9,0xA5,0xFC,0x70,0x7D,0x5A,
0x2E,0xF7,0x70,0x52,0x41,0x5F,0xE7,0x98,0x69,0xB3,
0xAB,0x42,0xC6,0xD8,0x6C,0x7C,0x9D,0x63,0x46,0x66,
0x57,0xC5,0xAE,0x1A,0x1F,0xEB,0xF1,0xA3,0xAD,0x77,
0x47,0xF2,0x2D,0x87,0xD7,0xBB,0xBD,0x9C,0x7E,0x7D,
0xBD,0xFB,0x72,0xFA,0xE9,0x63,0xDF,0xB2,0x47,0x67,
0x0A,0xA7,0xA6,0xCF,0xA9,0xBE,0xCB,0xC9,0x9C,0x9E,
0x78,0xDB,0xCA,0xDA,0xD5,0x26,0x29,0x57,0x5A,0xF9,
0x4F,0xB5,0x04,0x9F,0x72,0xB1,0x27,0x16,0xDF,0x45,
0x8F,0x0B,0xA7,0x94,0xCF,0x29,0xB2,0xC5,0x29,0x6F,
0xF3,0x4E,0x53,0xB0,0x6E,0xFB,0xDA,0x80,0xAC,0x9E,
0xB1,0xBB,0x51,0x5B,0x9C,0x3C,0xEB,0x6E,0xBE,0x15,
0x27,0x3F,0xF1,0x6E,0x8B,0x5B,0x9C,0x9C,0xBF,0xB3,
0x95,0xC8,0x3D,0x5F,0xE6,0x3F,0x67,0x66,0xCE,0xAC,
0xEC,0xC9,0xA9,0x65,0x63,0x9F,0x2D,0x70,0x27,0x85,
0xDF,0xC0,0xB7,0x04,0x38,0x9D,0x1B,0x4C,0x8B,0xC8,
0x20,0xC8,0xA9,0x47,0xDF,0x30,0x9E,0x62,0xBA,0x7D,
0x02,0xDF,0x72,0x7B,0x0E,0xDF,0xD2,0x8B,0xC0,0xB7,
0xDC,0x5D,0xC0,0xB7,0xDC,0x9C,0xC1,0xB7,0x5C,0x9F,
0xB2,0x6F,0x79,0x8F,0x93,0x01,0x65,0x31,0x39,0x4E,
0x7D,0x04,0xD1,0x6E,0x7D,0x72,0x1A,0xEA,0xBD,0xFA,
0xE4,0x34,0x54,0xA0,0x3E,0x7D,0x7C,0x7E,0x17,0x66,
0x3D,0xE7,0x4D,0xCB,0xA8,0xF9,0x58,0xEE,0xA3,0x44,
0x2D,0xB9,0x6E,0xED,0xE4,0x54,0x08,0xDF,0xC2,0xFF,
0x3C,0xD6,0x69,0x72,0x9F,0x5A,0x14,0xB9,0x8F,0xF7,
0xC7,0xDC,0xA7,0x57,0x35,0xEE,0x93,0xB3,0x32,0xF7,
0x89,0x89,0xCB,0x18,0xB3,0xDE,0x85,0x7A,0x4E,0xEC,
0x08,0xFE,0x2E,0x04,0x83,0x30,0xBF,0x63,0xD9,0x44,
0xEF,0xF1,0xB1,0x51,0x99,0x36,0x77,0xED,0xF9,0xFD,
0xC7,0x1A,0x44,0x26,0xED,0x41,0x26,0xED,0x45,0x26,
0xED,0x51,0x26,0xED,0x55,0x26,0xED,0x59,0x72,0xEE,
0xC9,0x72,0xB2,0xFA,0x29,0x1C,0x27,0xFF,0x64,0xCE,
0x33,0x3E,0x65,0x73,0xA4,0xE0,0x9E,0x63,0xD9,0xEC,
0x76,0x2A,0x0A,0x5C,0xBB,0x53,0x9D,0x63,0x71,0xF2,
0xA3,0xB8,0x15,0x60,0x13,0x58,0x7E,0xD1,0x9F,0xC4,
0x32,0x88,0xA7,0x54,0x1D,0xF1,0x14,0xCF,0x23,0x9E,
0xD2,0x43,0xC4,0x53,0xB2,0x82,0x78,0x4A,0x5C,0xF2,
0xB3,0x0C,0xC2,0x69,0x21,0x9C,0xFA,0xC2,0x69,0x25,
0x9C,0x66,0xC2,0x69,0xB2,0x87,0x93,0xEC,0x95,0xB6,
0xF0,0x04,0x83,0xBA,0xE2,0xCF,0xBE,0xE7,0x1F,0xB8,
0xB8,0x6F,0x99,0x2B,0xFC,0x4F,0x9B,0x73,0x7B,0x38,
0x99,0x3C,0x0C,0xC8,0xF0,0x1D,0x4E,0xF6,0x69,0x0F,
0x13,0x4F,0xA2,0xC7,0x97,0xA2,0xC7,0x07,0xA2,0xC7,
0xD7,0xA2,0xC7,0xE7,0xA2,0xC7,0xB1,0xBE,0x84,0xE2,
0x64,0xDA,0xE1,0x78,0x32,0x9B,0x67,0xF2,0x14,0x00,
0xC9,0x86,0x2C,0xAD,0x25,0x5C,0xE6,0x12,0x2E,0x90,
0xAB,0x9F,0xE7,0x14,0x95,0xC9,0x61,0x42,0xD1,0x28,
0xE6,0xA8,0x15,0xE5,0x26,0xD7,0x2D,0xBA,0x8A,0x9A,
0xFF,0x49,0x5E,0xB0,0x7E,0x6F,0x71,0xB2,0xAF,0x60,
0xFD,0xDE,0xE2,0x64,0x5F,0xB2,0xC0,0xC8,0xD8,0x65,
0x68,0x52,0xF4,0x68,0x2D,0x43,0x9B,0xCB,0xD0,0x60,
0x83,0x3F,0x17,0x4F,0xFB,0xEB,0x93,0x70,0x0A,0xE3,
0x5B,0xE0,0xEF,0x3A,0x4D,0xF8,0xBB,0x45,0x11,0xFE,
0xAE,0x3F,0x86,0xBF,0x5B,0xD5,0xE0,0xEF,0x66,0x65,
0xF8,0xBB,0x9D,0xFA,0x14,0x95,0x90,0xE1,0x97,0xE1,
0x84,0x9F,0xD1,0xAB,0x16,0x37,0x73,0xF5,0x36,0x9E,
0xB6,0x75,0xA6,0x59,0x07,0xB7,0xB8,0x6C,0xE9,0x4C,
0xFA,0x9A,0xBA,0x20,0xC6,0x15,0x0C,0xBE,0x85,0x7B,
0xF6,0x2D,0xDC,0xB3,0x6F,0xE1,0x9E,0x7D,0x0B,0xF7,
0xEC,0x5B,0xB8,0xBF,0xDE,0xBF,0x9F,0x19,0x35,0x9C,
0x24,0xAE,0xF8,0xD5,0x92,0xD8,0x7A,0x53,0x9F,0xDE,
0xE8,0x71,0x65,0x0F,0x34,0x83,0x79,0x16,0xE4,0x64,
0x1C,0xDE,0x37,0xF0,0x2D,0xEA,0xCA,0x94,0x25,0xCB,
0x09,0x17,0x4A,0xE2,0xC9,0x5C,0xD9,0x78,0xFA,0x76,
0xFE,0xEE,0xD3,0x7A,0xDC,0x24,0xB9,0x29,0x4B,0x81,
0x0B,0x06,0x25,0x57,0x9B,0xFA,0x14,0x4C,0x39,0xD9,
0xA4,0xD3,0xFE,0x4A,0xB7,0x39,0x8E,0xF2,0xC1,0x78,
0xDA,0x9C,0x2D,0xD8,0xE7,0xA2,0xBE,0x3B,0x27,0x44,
0x53,0x8B,0x3C,0xFF,0x8F,0x0F,0xDC,0x3F,0x73,0xF5,
0xDB,0x7F,0xC6,0x47,0x6F,0xE5,0x9C,0xB7,0xA9,0xDF,
0xEE,0x3C,0xFD,0xAB,0xE5,0x5D,0xFB,0x04,0x79,0x77,
0x7B,0x8E,0xBC,0xEB,0x45,0x90,0x77,0x77,0x17,0xC8,
0xBB,0x9B,0x33,0xE4,0xDD,0xF5,0xE9,0xF4,0x33,0x9C,
0x24,0x9A,0x5A,0xE6,0xBC,0x65,0x3B,0xA0,0x36,0x6B,
0x1F,0x94,0xB8,0x7F,0xB4,0xF9,0xE6,0x0F,0x63,0x98,
0x6E,0x58,0x95,0xF6,0x5B,0xEB,0x38,0x96,0xC5,0x76,
0x0A,0x7A,0xFC,0x36,0x0E,0x3D,0xDE,0x4B,0x43,0x8F,
0xDF,0x25,0xA1,0xC7,0x6F,0x12,0xD0,0xE3,0xD7,0x6F,
0x38,0x71,0xD0,0xB4,0xA2,0x7F,0x30,0x15,0xFF,0xC2,
0x71,0xE2,0xFA,0xE4,0x6D,0xC5,0xD3,0x8E,0xC7,0x73,
0xCF,0xDB,0xEB,0xE0,0x1F,0xB4,0x04,0x78,0xB9,0xE7,
0xED,0xBF,0x1C,0xA7,0x1C,0xBA,0x4E,0x13,0xFD,0xA2,
0x88,0xBE,0x3F,0x46,0xBF,0xAA,0xA1,0x9F,0x95,0xD1,
0x4F,0xDE,0x70,0xF2,0xF5,0x53,0x40,0x48,0xBD,0x53,
0x9F,0x76,0xF3,0x6F,0xB7,0x3E,0xED,0xE6,0xDF,0xA6,
0x3E,0x99,0x03,0xC1,0x94,0x3C,0xAA,0x27,0x67,0x39,
0x3C,0x7B,0xE8,0x93,0x37,0xE8,0xCD,0xEC,0x7D,0xAC,
0x0F,0x0F,0xE9,0xCC,0x4D,0x7F,0x24,0xDF,0x62,0x05,
0x8D,0x79,0x42,0x30,0x1C,0xA7,0x5F,0x5F,0xEF,0xC2,
0x30,0x08,0xF3,0x3B,0xC1,0xEC,0x0F,0xB2,0xB1,0xC9,
0x2D,0x7D,0x2C,0x23,0x73,0x52,0x97,0x39,0xC9,0xCB,
0x9C,0x0C,0x65,0x4E,0x2A,0x32,0x27,0x5C,0xA2,0x65,
0xD2,0x62,0x32,0x69,0x29,0x99,0xB4,0xB8,0x4C,0x5A,
0x5A,0x26,0x2D,0x29,0x93,0x96,0x70,0x9C,0x76,0x74,
0xE6,0x55,0x74,0x73,0xC1,0x5A,0x1C,0x3A,0xF3,0x6A,
0x4B,0x67,0x9A,0x3D,0xF5,0x4D,0xEE,0x29,0xCF,0xED,
0x20,0x93,0xD3,0x4E,0x5B,0xFB,0x2B,0xA6,0x8E,0xBB,
0xDF,0xF9,0x9D,0xF1,0x74,0x24,0xDF,0xB2,0x15,0x4F,
0xE1,0x7C,0xB0,0x7D,0x3A,0xC7,0x9C,0x1C,0x04,0x74,
0xB8,0xCF,0xC9,0x9C,0xAA,0x9B,0x93,0x83,0x6D,0x1D,
0xAE,0xBF,0x47,0x7D,0x0A,0xB9,0x5F,0xE0,0xB8,0x6A,
0x17,0x57,0xEE,0x8C,0xD8,0x39,0x61,0xFB,0x0E,0xB9,
0xB8,0xF2,0x67,0xE1,0x4B,0x72,0x42,0x66,0xAA,0x36,
0x32,0x53,0xDD,0x22,0x33,0x55,0x0F,0x99,0xA9,0xEE,
0x90,0x99,0xEA,0x06,0x99,0xA9,0xB6,0xD7,0xBB,0x70,
0x7F,0xF7,0xEA,0xE2,0xC9,0xD7,0x4E,0xEF,0xC4,0x93,
0xAF,0x9D,0xBE,0x7A,0x3C,0x51,0xD7,0x53,0xD0,0x4F,
0x9E,0x82,0x7E,0xF2,0x14,0xF4,0x93,0xA7,0xA0,0x9F,
0x3C,0x05,0xFD,0xE4,0xA9,0xE9,0xFF,0x75,0xDB,0xCD,
0x53,0xA9,0x5B,0xFB,0x05,0xBB,0xF5,0x69,0x77,0x5F,
0xE5,0xEB,0x72,0xFA,0xA4,0x1E,0xA7,0xDF,0xF5,0xF7,
0xE6,0x5F,0x8E,0x13,0x1F,0xAF,0x33,0x27,0x3E,0x5E,
0x67,0x4E,0x7C,0xBC,0xCE,0x9C,0xF8,0x78,0x9D,0x39,
0xF1,0xF1,0x3A,0x73,0xE2,0xE3,0x75,0xFA,0x69,0x3F,
0xED,0xA7,0x1D,0xB7,0x89,0x10,0x3D,0x11,0x21,0x7A,
0x2E,0x42,0x34,0x22,0x42,0xF4,0x42,0x84,0xE8,0x99,
0xE4,0xDC,0xE9,0x0F,0xA5,0xAF,0xDC,0xC2,0xE8,0xF1,
0x30,0xBF,0xB3,0xE5,0x5B,0xBC,0x4D,0xBF,0xAB,0x8E,
0x0E,0xFB,0x96,0xF0,0xAB,0xFC,0xDE,0x7D,0x92,0x9F,
0xF6,0xD3,0x7E,0xEA,0xD3,0x4F,0xFB,0x69,0x3F,0x7A,
0x7C,0x5F,0xFB,0x1F,0xEB,0xB4,0x9C,0x3B,0x01,0xF6,
0x48,0x6B,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,0x44,
0xAE,0x42,0x60,0x82,};
+162
View File
@@ -0,0 +1,162 @@
char about[] = { // about screen
"FUN COLUMNS"
" BY FTA "
"CODING: "
"O. GOGUEL "
"DESIGN: "
"O. BAILLY "
" MAITRE "
"VERSION 1.1"
"TOOLBOX-MAG"
" ISSUE: 04 "
" 03-FEB-91 "
" COPYRIGHT "
"FTA/TOOLBOX"
};
char high[] = { // high scores
"HIGH "
"SCORES:"
"HULK " // OLIVIER
"..10000"
"EARTH " // J-YVES
"...9000"
"BUSH " // BERNARD
"...8000"
"AXE " // ERIC
"...7000"
"PERFECT" // HUBERT
"...6000"
"POWERS " // J-LUC
"...5000"
"TUGBOAT" // YVAN
"...4000"
"DINO " // EMILE
"......1"
};
char status[] = { // current status
"SCORE: "
" 0" // score
"LEVEL: "
"1E 1" // levels remaining / completed (31)
"TOTAL: "
" 0" // tiles smashed
};
char m_menu[] = { // main menu
"CHOOSE : "
"1-VERY EASY"
"2-EASY "
"3-MEDIUM "
"4-HARD "
"5-VERY HARD"
"6-JEDI "
"A-ABOUT "
"I-INFO "
"Q-QUIT "
};
char info[] = { // info/instruction screen
"COLUMNS "
"RULES. "
" <-:LEFT "
" ->:RIGHT "
" R:ROTATE "
"SPC:FALL "
" ^R:RESTART"
" ^S:NEW PAT"
" N:NEXT "
" P:PAUSE "
" HAVE FUN !"
};
char gameo[] = {
"GAME OVER"
};
char pause[] = {
"> PAUSE <"
};
int gameol [1][2] = {
{124, 97}
};
int pausel [1][2] = {
{124, 97}
};
int highl [18][2] = {
{22, 11}, // HIGH
{22, 18}, // SCORES:
{22, 34}, // HULK
{22, 42}, // ......0
{22, 54}, // EARTH
{22, 62}, // ......0
{22, 74}, // BUSH
{22, 82}, // ......0
{22, 94}, // AXE
{22, 102}, // ......0
{22, 114}, // PERFECT
{22, 122}, // ......0
{22, 134}, // POWERS
{22, 142}, // ......0
{22, 154}, // TUGBOAT
{22, 162}, // ......0
{22, 174}, // DINO
{22, 182} // ......0
};
int aboutl [13][2] = {
{118, 35}, // fun columns
{118, 49}, // by fta
{118, 63}, // coding:
{118, 72}, // o. goguel
{118, 88}, // design:
{118, 97}, // o. bailly
{118, 104}, // maitre
{118, 132}, // version 1.1
{118, 141}, // toolbox-mag
{118, 150}, // issue: 04
{118, 159}, // 03-deb-91
{118, 175}, // copyright
{118, 184} // fta/toolbox
};
int statusl [6][2] = {
{240, 11}, // score:
{240, 20}, // 0
{240, 31}, // level:
{240, 40}, // 00 1
{240, 51}, // total:
{240, 60} // 0
};
int infol [11][2] = {
{116, 50}, // columns
{116, 57}, // rules.
{116, 71}, // <-:left
{116, 78}, // ->:right
{116, 85}, // r:rotate
{116, 92}, // spc:fall
{116, 99}, // ^r:restart
{116, 106}, // ^s:new pat
{116, 113}, // n:next
{116, 120}, // p:pause
{116, 134} // have fun !
};
int m_menul [10][2] = {
{118, 52}, // choose
{118, 66}, // 1 - very easy
{118, 73}, // 2 - easy
{118, 80}, // 3 - medium
{118, 87}, // 4 - hard
{118, 94}, // 5 - very hard
{118, 101}, // 6 - jedi
{118, 115}, // a - about
{118, 122}, // i - info
{118, 129} // q - quit
};