/* Keep these headers */ #include #include #include #include /* Standard headers - it's recommended to leave them included */ #include #include #include #include #include "tiles.h" #include "tilesmap.h" #include "mem.h" #include "rle.h" #include "screen8bpp.h" uint8_t* tiles[NTILES] = {0}; /* Your code here */ // tiles data is RLE-compressed // bits 0-3 : color ID (4-bits) // bits 4-7 : number (4-bits) // 0 value for end of data void initTiles1(uint8_t** tiles) { uint8_t i; uint8_t tiles_C[] = {240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,16,0, // 0:rien 20,28,20,28,20,28,20,92,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,76,20,60,20,28,20,28,20,28,20,28,20,76,20,28,20,28,20,60,20,28,20,28,20,44,20,28,20,28,20,60,20,28,20,28,20,76,20,60,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,44,20,92,20,60,20,28,20,44,20,28,20,28,20,60,20,28,20,28,20,28,20,44,20,76,20,44,20,28,20,60,20,44,20,28,20,60,20,28,20,28,20,44,20,28,20,28,20,28,20,60,20,28,20,44,20,28,20,28,20,28,20,60,20,76,20,28,20,60,20,28,20,28,0, // 1:bloc 20,28,20,28,20,28,20,92,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,16,140,20,60,20,28,20,108,32,44,20,28,20,28,20,92,64,28,20,28,20,28,20,92,80,44,20,60,20,60,96,28,20,28,20,28,20,28,20,28,112,20,28,20,28,20,28,20,28,128,140,128,124,144,124,144,108,160,108,160,92,176,92,176,0, // 2:vouted 204,20,28,20,44,20,28,20,60,20,28,20,28,20,28,20,172,20,28,20,28,20,60,32,124,20,28,20,28,20,44,64,108,20,28,20,28,20,28,80,76,20,28,20,28,20,44,96,44,20,28,20,28,20,28,20,28,112,44,20,28,20,28,20,44,112,28,20,28,20,28,20,28,20,28,128,44,20,92,144,124,144,124,144,124,160,108,160,108,160,108,0, // 3:blocg 182,28,246,214,142,134,142,134,142,16,38,16,70,126,32,22,48,54,126,32,22,48,54,62,16,46,48,22,48,54,46,48,30,112,54,46,48,30,128,38,46,48,30,128,38,30,64,30,128,38,30,224,22,30,224,22,30,224,22,30,112,0, // 4:stala 80,44,48,34,144,44,48,34,128,163,80,92,88,128,44,48,34,144,44,48,34,144,44,48,34,128,163,80,92,88,128,44,48,34,144,44,48,34,144,44,48,34,128,163,80,92,88,128,44,48,34,144,44,48,34,64,0, // 5:échelle 240,240,240,240,240,240,240,240,128,246,22,240,240,240,240,240,240,240,112,0, // 6:corde 144,17,240,16,23,192,17,240,32,47,16,31,160,21,32,31,160,21,80,17,176,31,51,144,164,112,52,16,20,16,36,144,108,176,76,80,18,96,18,38,96,162,96,18,128,18,224,34,240,18,96,0, // 7:torched1 96,23,240,240,17,16,17,192,17,224,17,16,33,16,31,192,27,16,27,192,83,144,164,112,36,16,20,16,52,144,108,176,76,208,44,18,96,18,96,162,96,18,128,18,96,34,224,18,144,0, // 8:torcheg1 252,28,32,37,48,37,48,37,128,69,176,101,144,76,70,112,28,16,28,16,28,22,16,22,16,22,80,198,48,236,16,108,64,108,82,96,146,128,66,16,34,160,34,48,18,160,18,240,240,240,80,0, // 9:fontaine-anim1 240,240,240,240,240,240,240,240,224,71,176,22,16,22,16,39,144,22,16,22,16,30,16,46,112,22,48,22,92,112,30,16,30,16,76,144,30,16,30,54,176,46,38,208,30,22,112,0, // 10:diamant 240,240,96,76,62,128,44,96,30,96,28,32,60,32,30,112,28,240,16,92,61,128,44,96,30,96,28,32,60,32,30,112,28,240,16,92,61,128,44,96,30,96,28,32,60,32,30,112,28,160,30,80,44,96,46,128,60,62,80,0, // 11:ressort 20,22,20,22,20,22,20,86,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,70,20,54,20,22,20,22,20,22,20,22,20,70,20,22,20,22,20,54,20,22,20,22,20,38,20,22,20,22,20,54,20,22,20,22,20,70,20,54,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,28,54,28,22,28,20,54,20,22,20,22,28,38,28,38,44,22,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0, // 12:mou 16,116,124,64,92,84,128,52,60,176,38,44,160,44,64,38,96,44,128,38,64,28,48,44,38,48,22,48,28,48,28,64,22,48,22,32,28,32,28,96,22,32,22,32,28,32,28,32,28,22,32,22,32,22,32,28,32,28,64,22,16,22,32,22,32,28,48,28,48,22,64,22,48,28,48,44,22,64,22,64,44,128,38,96,44,64,38,160,44,38,96,0, // 13:spirale1 20,28,20,28,20,28,20,92,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,76,20,60,20,28,20,28,20,28,20,28,20,76,20,28,20,28,20,60,20,28,20,28,20,44,20,28,20,28,20,60,20,28,20,28,20,76,20,60,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,28,20,28,20,28,20,28,20,44,20,28,20,28,20,28,20,44,20,92,20,60,20,28,20,44,20,28,20,28,20,60,20,28,20,28,20,28,20,44,20,76,20,44,20,28,20,60,20,44,20,28,20,60,20,28,20,28,20,44,20,28,20,28,20,28,20,60,20,28,20,44,20,28,20,28,20,28,20,60,20,76,20,28,20,60,20,28,20,28,0, // 14:trappe 240,80,17,112,17,112,17,112,17,112,17,112,17,112,17,112,17,96,49,80,17,16,17,80,49,96,33,80,17,16,17,80,17,16,17,64,17,16,49,48,17,16,49,48,33,16,33,48,81,32,113,16,113,20,108,20,108,36,92,36,220,20,44,20,92,36,60,36,60,20,76,20,140,36,60,36,76,0, // 15:pic 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,20,0, //16:eau 240,240,240,240,240,240,240,240,240,240,240,240,192,36,16,20,32,68,16,52,32,68,16,20,16,20,16,68,16,36,22,84,22,28,36,60,100,44,68,28,100,0, // 17:surface1anim1 240,240,240,176,35,208,19,32,28,176,19,64,28,176,19,32,28,208,44,208,18,52,176,34,20,32,20,144,50,20,48,20,112,97,32,33,96,66,52,32,20,96,97,32,33,128,34,20,32,20,176,65,80,0, // 18:fiole 240,240,240,240,240,240,240,240,240,96,63,176,95,160,111,144,127,128,143,112,159,96,127,144,111,64,0, // 19:portail 80,127,144,111,160,111,160,111,160,111,160,111,160,111,160,111,64,31,80,111,48,31,96,111,32,31,112,111,16,31,128,111,160,111,160,52,54,112,102,100,48,116,118,16,0, // 20:portail 80,62,54,112,94,16,108,48,62,32,30,16,22,32,70,16,108,48,116,28,224,44,32,28,32,28,32,28,32,28,32,28,22,16,102,108,16,28,22,32,22,32,22,32,28,32,28,32,28,22,32,22,32,22,32,28,32,28,32,28,38,16,22,32,22,32,22,32,22,32,54,16,22,32,22,32,22,32,22,32,54,16,22,32,22,32,28,32,28,32,44,32,28,32,28,32,28,32,28,32,44,32,28,32,28,32,22,32,22,32,22,28,16,60,16,44,16,38,16,38,16,22,28,224,22,0, // 21:grille 80,104,144,88,16,40,112,87,40,16,40,96,119,16,39,96,119,16,39,96,119,16,39,96,103,16,55,112,71,16,55,144,103,160,51,63,176,35,63,160,83,192,35,63,160,51,47,192,35,63,192,47,112,0, // 22:lampe 80,44,16,60,128,76,16,92,80,76,16,124,48,60,32,44,119,32,39,16,183,16,39,16,55,64,103,32,55,96,167,96,167,96,167,96,183,64,39,48,23,16,167,16,55,32,119,48,71,48,87,16,108,80,60,16,108,128,28,16,76,80,0, // 23:bouée 240,240,240,240,240,240,240,240,128,63,208,95,176,111,160,127,144,143,128,159,160,127,160,111,96,0, // 24:portail 80,111,160,111,160,111,160,111,160,111,160,111,160,111,80,31,64,111,96,31,48,111,112,31,32,111,128,31,16,111,160,111,160,111,160,52,54,112,102,100,48,116,118,16,0, // 25:portail 240,240,240,240,240,240,240,240,240,240,240,240,192,36,64,68,16,52,32,68,16,20,16,20,16,68,16,36,22,84,22,28,36,60,100,44,68,28,100,0, // 27:surface2anim1 240,240,240,240,240,240,240,240,240,240,240,240,240,32,36,112,20,32,20,16,52,32,52,16,36,32,20,22,36,22,68,30,52,30,20,16,36,22,20,22,52,30,100,16,0, // 28:surface3anim1 240,240,128,85,160,51,16,53,144,19,80,17,144,19,80,17,144,51,16,49,160,35,57,192,19,25,224,19,25,224,19,70,176,19,22,224,19,54,192,19,22,224,19,70,240,80,0, // 28:clef 80,19,16,35,16,19,160,19,16,35,16,19,176,73,176,41,16,25,16,25,176,73,176,28,16,44,16,28,144,54,32,60,112,54,16,22,28,16,60,96,54,16,22,28,16,60,96,22,32,38,92,112,38,32,76,144,22,64,28,160,38,32,44,176,22,16,44,176,54,16,34,144,50,32,50,64,0, // 29:statuette }; uint8_t* ptr_in = tiles_C; for(i=0; i<30; i++) { tiles[i] = myMalloc(TILE_SIZE*TILE_SIZE); decompRLE(tiles[i], ptr_in, 4, &ptr_in, 0, 0, 0, 0); } } void initTiles2(uint8_t** tiles) { uint8_t i; uint8_t tiles_C[] = {240,240,240,64,187,64,24,32,40,16,40,91,48,24,16,24,160,27,32,40,16,24,48,120,48,43,16,27,16,27,112,24,80,43,16,27,120,80,43,128,24,96,40,16,88,16,40,80,40,48,33,160,40,16,27,32,43,16,27,64,43,128,43,64,59,16,122,112,43,128,0, // 30:parchemin 240,240,48,19,64,19,32,99,32,19,64,19,32,99,32,35,32,35,32,19,112,35,32,35,32,19,112,19,16,35,16,19,32,67,64,19,16,35,16,19,32,67,64,19,64,19,32,19,112,19,64,19,32,19,112,19,64,19,32,19,112,19,64,19,32,19,112,19,64,19,32,99,32,19,64,19,32,99,240,240,48,0, 240,240,48,19,128,51,64,19,128,51,64,19,144,19,80,19,144,19,80,19,144,19,80,19,144,19,80,19,144,19,80,19,144,19,80,19,144,19,80,19,144,19,80,99,48,51,64,99,48,51,240,240,80,0, 240,240,64,67,48,19,64,19,48,67,48,19,64,19,32,19,112,19,64,19,32,19,112,19,64,19,48,67,48,99,48,67,48,99,112,19,32,19,64,19,112,19,32,19,64,19,32,19,64,19,32,19,64,19,32,19,64,19,32,19,64,19,48,67,48,19,64,19,48,67,48,19,64,19,240,240,48,0, 240,240,64,51,144,19,48,51,144,19,64,19,160,19,64,19,160,19,64,19,160,19,64,19,160,19,64,19,160,19,64,19,160,19,64,19,80,19,64,19,64,19,80,19,64,19,48,51,80,67,64,51,80,67,240,240,64,0, 240,240,80,35,64,19,48,19,80,35,64,19,48,19,64,19,32,19,48,19,32,19,80,19,32,19,48,19,32,19,64,19,64,19,32,51,80,19,64,19,32,51,80,99,32,19,16,19,80,99,32,19,16,19,80,19,64,19,32,19,32,19,64,19,64,19,32,19,32,19,64,19,64,19,32,19,48,19,48,19,64,19,32,19,48,19,240,240,64,0, 16,116,124,64,92,84,128,52,60,176,38,44,160,38,64,44,96,38,128,44,64,22,48,38,44,48,28,48,22,48,22,64,28,48,28,32,22,32,22,96,28,32,28,32,22,32,22,32,22,28,32,28,32,28,32,22,32,22,64,28,16,28,32,28,32,22,48,22,48,28,64,28,48,22,48,38,28,64,28,64,38,128,44,96,38,64,44,160,38,44,96,0, // 36:spirale2 144,31,208,17,240,32,22,240,192,17,16,17,32,19,160,21,48,19,16,19,176,79,144,164,112,52,16,20,16,36,144,108,176,76,80,18,96,18,38,96,162,96,18,128,18,224,34,240,18,96,0, // 37:torched2 144,17,240,240,19,240,16,17,16,17,144,17,16,17,32,22,160,19,32,19,224,31,49,144,164,112,52,16,20,16,36,144,108,176,76,80,18,96,18,38,96,162,96,18,128,18,224,34,240,18,96,0, // 38:torched3 80,17,240,16,19,224,17,16,17,192,31,32,31,17,176,17,16,33,208,35,208,83,144,164,112,36,16,20,16,52,144,108,176,76,208,44,18,96,18,96,162,96,18,128,18,96,34,224,18,144,0, // torcheg2 96,17,224,23,240,32,17,208,31,240,16,31,16,23,192,23,224,83,144,164,112,36,16,20,16,52,144,108,176,76,208,44,18,96,18,96,162,96,18,128,18,96,34,224,18,144,0, // torcheg3 252,28,32,37,48,37,48,37,128,69,176,100,144,132,112,28,16,28,16,28,22,16,22,16,22,80,198,48,236,16,108,64,108,82,96,146,128,66,16,34,160,34,48,18,160,18,240,240,240,80,0, // 41:fontaine2 252,28,32,37,48,37,48,37,128,69,176,101,144,76,70,112,28,16,28,16,28,22,16,22,16,22,80,196,48,228,16,108,64,108,82,96,146,128,66,16,34,160,34,48,18,160,18,240,240,240,80,0, // 42:fontaine3 252,28,32,37,48,37,48,37,128,69,176,101,144,76,70,112,28,16,28,16,28,22,16,22,16,22,80,198,48,236,16,108,64,108,84,96,148,128,68,16,34,160,34,48,18,160,18,240,240,240,80,0, // 43:fontaine4 240,240,240,240,240,240,240,240,240,240,240,240,192,20,16,36,64,36,32,20,16,20,32,180,16,20,16,52,22,36,22,36,28,36,28,116,28,100,28,68,28,0, // 44:surface1anim2 240,240,240,240,240,240,240,240,240,240,240,240,224,20,16,20,48,36,48,52,16,52,16,36,16,20,16,68,16,196,28,84,28,20,28,36,28,100,28,36,0, // 45:surface1anim3 240,240,240,240,240,240,240,240,240,240,240,240,240,48,20,144,36,16,36,16,20,16,20,16,36,32,196,28,148,28,132,28,36,0, // 46:surface2anim2 240,240,240,240,240,240,240,240,240,240,240,240,224,36,80,36,48,20,16,84,16,20,16,20,16,132,22,100,28,36,28,36,28,20,28,52,28,36,28,84,28,20,0, // 47:surface2anim3 240,240,240,240,240,240,240,240,240,240,240,240,208,20,64,52,16,20,64,68,16,20,16,100,16,68,22,116,30,52,30,116,22,148,30,0, // 48:surface3anim2 240,240,240,240,240,240,240,240,240,240,240,240,240,32,20,16,20,32,20,64,36,16,20,16,68,16,52,16,36,16,84,22,68,30,116,22,68,22,52,30,52,30,0, // 49:surface3anim3 80,22,48,22,208,22,208,22,80,22,64,22,128,22,80,54,16,22,176,38,16,22,16,22,48,22,16,22,48,70,20,54,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,28,54,28,22,28,20,54,20,22,20,22,28,38,28,38,44,22,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0, // 50 mou-vidage-anim1 240,240,176,22,128,22,80,22,32,22,144,22,112,22,32,22,96,22,32,22,64,54,208,38,16,22,16,22,64,22,64,38,20,22,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,28,54,28,22,28,20,54,20,22,20,22,28,38,28,38,44,22,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0,// 51 mou-vidage-anim2 240,240,240,192,22,208,22,176,22,96,22,80,22,224,38,64,22,32,22,80,38,16,22,128,22,32,22,16,70,16,22,112,22,16,22,16,70,16,22,16,22,64,86,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0,// 52 mou-vidage-anim3 240,240,240,240,240,176,22,96,22,176,22,192,22,208,22,112,22,48,22,96,22,128,38,128,22,64,70,176,102,16,22,80,28,16,60,86,16,38,140,38,20,22,20,38,20,28,22,252,124,0,// 53 mou-vidage-anim4 240,240,240,240,240,240,240,240,240,240,28,80,28,96,28,64,28,192,28,64,28,80,22,112,28,80,44,38,160,76,38,20,22,20,38,20,28,22,252,124,0,// 54 mou-vidage-anim5 240,240,240,240,240,240,240,240,240,240,28,80,28,96,28,64,28,192,28,64,28,80,22,112,28,80,44,38,160,76,38,20,22,20,38,20,28,22,252,124,0,// 55 mou-vidage-anim5 240,240,240,240,240,176,22,96,22,176,22,192,22,208,22,112,22,48,22,96,22,128,38,128,22,64,70,176,102,16,22,80,28,16,60,86,16,38,140,38,20,22,20,38,20,28,22,252,124,0,// 56 mou-vidage-anim4 240,240,240,192,22,208,22,176,22,96,22,80,22,224,38,64,22,32,22,80,38,16,22,128,22,32,22,16,70,16,22,112,22,16,22,16,70,16,22,16,22,64,86,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0,// 57 mou-vidage-anim3 240,240,176,22,128,22,80,22,32,22,144,22,112,22,32,22,96,22,32,22,64,54,208,38,16,22,16,22,64,22,64,38,20,22,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,28,54,28,22,28,20,54,20,22,20,22,28,38,28,38,44,22,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0,// 58 mou-vidage-anim2 80,22,48,22,208,22,208,22,80,22,64,22,128,22,80,54,16,22,176,38,16,22,16,22,48,22,16,22,48,70,20,54,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,20,22,20,22,20,22,20,38,20,22,20,22,20,22,20,22,28,54,28,22,28,20,54,20,22,20,22,28,38,28,38,44,22,20,22,20,22,20,22,20,38,28,38,60,38,20,22,20,54,140,22,20,22,20,22,20,38,140,38,20,22,20,38,20,28,22,252,124,0, // 59 mou-vidage-anim1 }; uint8_t* ptr_in = tiles_C; for(i=30; i