From a73083796e5647c11ab7172ab1a744b2a6d7ec00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20=C4=8C=C3=AD=C5=BE?= Date: Thu, 26 Sep 2019 17:13:18 +0200 Subject: [PATCH] Store by columns --- assets.h | 430 ++++++++++++++++++++++++++++--------------------------- levels.h | 1 + 2 files changed, 219 insertions(+), 212 deletions(-) diff --git a/assets.h b/assets.h index d879237..724b47b 100644 --- a/assets.h +++ b/assets.h @@ -1,3 +1,10 @@ +/** +@file assets.h + +Assets to be used in game. Textures are stored by columns for cache +friendliness (as rendering also happens by columns). +*/ + #ifndef _SFG_RESOURCES_H #define _SFG_RESOURCES_H @@ -15,231 +22,230 @@ static inline uint8_t SFG_getTexel(const uint8_t *texture, uint8_t x, uint8_t y) { - return texture[(y & 0x1f) * SFG_TEXTURE_SIZE + (x & 0x1f)]; + return texture[(x & 0x1f) * SFG_TEXTURE_SIZE + (y & 0x1f)]; } const uint8_t SFG_texturesWall[][SFG_TEXTURE_SIZE * SFG_TEXTURE_SIZE] = { - { -4,4,4,4,4,4,4,20,4,4,4,4,4,4,4,4,4,4,4,4,4,20,20,3,20,4,5,0,3,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,20,4,20,3,4,4,4,4,4,4,4,21,4,4,5,20,3,4,4,4,4,21,21,21,21,21,4,21, -21,4,4,21,4,21,21,4,4,4,4,4,4,21,4,4,4,4,4,96,3,4,4,4,21,21,21,5,21,21,21,21,21, -5,5,5,5,5,21,21,4,4,4,4,21,4,4,4,4,4,5,20,4,21,21,21,4,21,21,21,5,5,21,5,5,5,21, -21,21,5,21,21,21,21,21,5,5,5,5,21,21,21,4,2,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,4, -21,4,21,21,4,21,4,21,21,4,21,4,4,4,18,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,21,21,6,20,3,4,4,4,3,18,26,2,2,26,3,20,2,56,3,3,3,3,3,3,3,3,3,26, -3,3,3,3,3,3,82,0,3,3,26,18,5,5,5,5,5,5,5,5,6,0,5,5,21,4,4,4,4,4,4,21,21,4,21,21, -21,21,21,21,21,5,5,5,4,4,4,21,4,4,4,3,5,0,4,4,4,4,4,4,4,4,4,4,4,20,4,4,4,4,4,4, -4,4,4,21,4,4,4,4,4,21,21,4,3,0,4,4,4,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -21,21,21,4,21,21,5,4,5,0,4,4,4,4,4,4,21,5,21,21,21,5,21,5,5,21,21,21,21,21,21,5, -5,21,5,21,4,4,4,4,5,0,5,5,5,5,5,5,5,5,5,5,21,4,4,4,4,4,21,21,21,5,21,5,21,21,4, -4,4,21,4,3,4,0,4,4,4,4,4,4,4,4,4,4,20,20,4,4,21,5,5,21,4,21,4,4,4,4,21,4,4,4,4, -4,5,0,4,4,5,5,21,21,21,21,21,21,5,21,4,4,4,4,4,4,4,4,4,4,4,21,21,21,21,4,4,4,6, -0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,4,57,57,49,73,65,65,1,1,49,0,2,1, -25,73,57,65,0,3,3,3,26,3,3,3,26,2,2,2,2,65,224,57,21,21,4,21,5,5,5,5,5,22,5,5,5, -5,5,6,17,4,4,4,4,4,4,4,21,21,21,21,5,21,5,21,20,20,3,3,3,3,3,3,3,3,3,3,3,3,3,4, -0,3,3,4,3,3,3,3,3,20,3,3,3,3,20,20,4,21,21,4,4,4,4,4,4,4,4,4,4,4,4,5,16,4,4,4,4, -21,21,21,21,5,21,21,5,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,3,4,4,4,4,4,4,21, -21,21,21,4,4,4,4,21,21,4,4,4,21,4,4,21,5,21,5,5,21,21,5,16,4,4,21,4,4,4,21,21, -21,21,5,21,5,21,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,20,4,0,4,4,4,21,21,21,5,21,5, -21,21,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,21,4,5,10,3,3,4,4,4,4,4,4,4,4,4,3,4, -4,20,20,20,3,74,3,3,3,3,3,3,3,4,3,3,3,4,26,4,4,4,4,4,20,4,4,20,20,3,20,20,3,3,4, -17,18,21,4,21,4,21,21,21,21,4,4,5,5,5,4,4,21,21,21,4,21,4,4,4,5,5,5,5,5,4,4,6,2, -4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,3,3,3,3,3,3,3,20,3,3,20,4,4,3,20,3,4,4,4,4,4,4, -4,4,4,4,21,21,4,4,4,21,5,21,21,4,21,4,4,4,4,4,4,4,4,4,5,0,4,4,4,21,5,21,5,5,5,5, -5,5,21,21,21,21,5,5,5,5,5,5,5,5,21,5,21,21,4,3,3,26,5,5,21,5,5,5,21,5,5,21,5,5, -5,5,21,5,5,5,5,5,5,4,21,4,4,4,4,4,4,5,5,136,4,4,4,4,4,4,4,21,4,21,4,4,4,4,4,4,4, -4,4,4,4,4,21,4,21,4,4,5,5,4,4,81,4,4,4,20,20,4,3,3,3,3,3,26,3,3,20,3,3,3,3,3,3, -3,3,3,3,3,3,3,4 + { // 0 +4,4,4,21,4,4,4,3,5,4,4,21,5,21,4,4,57,21,20,4,4,21,21,4,20,4,4,3,4,3,5,4,4,4,21, +21,21,4,4,18,5,4,4,21,21,21,4,21,57,21,20,21,4,21,21,4,20,17,6,20,5,3,5,4,4,4, +21,21,21,4,4,26,5,4,4,21,5,4,21,21,49,4,3,21,4,4,21,4,3,18,2,3,0,26,136,81,4,4, +21,5,21,4,4,2,5,21,4,4,21,4,4,21,73,21,3,4,4,4,4,4,74,21,4,4,4,5,4,4,4,4,21,21, +5,4,4,2,5,4,4,21,4,4,4,21,65,5,3,4,4,4,4,4,3,4,4,4,4,5,4,4,4,4,21,21,5,4,4,26,5, +4,21,21,4,21,4,4,65,5,3,4,4,21,4,4,3,21,4,4,4,21,4,4,4,4,4,21,21,4,4,3,5,4,21,5, +4,4,4,4,1,5,3,4,4,4,4,4,3,4,4,4,21,5,4,20,20,4,21,21,5,4,4,20,5,3,4,4,4,3,4,4,1, +5,3,4,4,4,4,4,3,21,4,4,5,5,4,20,4,4,21,21,5,4,4,2,6,5,3,5,5,4,5,6,49,5,3,4,4,21, +4,4,3,21,4,4,21,5,4,4,4,4,4,5,5,4,4,56,0,0,0,0,0,0,0,0,0,22,3,4,4,5,4,4,3,21,4, +4,5,21,4,3,4,4,4,5,21,4,4,3,5,4,4,4,5,4,4,5,2,5,3,4,4,21,4,4,3,21,4,4,5,5,21,3, +4,4,21,5,21,21,4,3,5,4,4,4,5,4,4,4,1,5,3,4,4,5,4,4,4,4,4,4,5,5,4,3,4,20,4,5,21, +4,4,3,21,4,4,4,5,4,5,4,25,5,3,4,4,5,4,4,3,4,4,4,5,21,21,3,4,4,21,5,5,21,4,3,4,4, +21,4,5,4,5,4,73,5,3,4,4,21,4,21,3,5,4,21,5,5,4,3,4,20,21,21,21,4,4,3,4,4,21,4,5, +4,21,4,57,5,3,4,4,21,20,4,3,5,4,21,5,5,4,26,4,3,4,21,21,21,4,3,4,4,21,4,5,4,21, +4,65,6,4,5,4,5,4,5,4,5,3,4,21,5,4,3,4,4,4,4,21,21,4,3,4,4,21,21,5,4,21,4,0,17,0, +16,0,16,0,10,26,4,4,4,21,5,4,3,4,4,4,4,21,4,4,3,4,4,4,5,5,4,21,4,3,4,3,4,3,4,4, +3,4,4,4,4,21,21,4,20,4,4,4,4,21,21,4,3,4,4,4,21,5,4,21,4,3,4,3,4,4,4,4,3,4,21,4, +21,21,5,4,3,4,4,4,4,5,4,4,26,21,4,4,21,5,4,21,4,3,4,4,4,4,21,4,4,4,21,3,5,5,5,4, +3,4,4,4,21,5,21,4,3,21,4,4,21,21,20,5,4,26,4,3,4,4,4,21,4,4,21,3,21,5,5,4,3,20, +4,21,4,5,21,4,3,4,20,4,5,4,20,21,4,3,4,3,21,4,4,21,4,4,4,3,21,5,5,4,3,20,4,4,4, +5,4,4,3,21,4,4,21,4,4,4,4,3,4,3,21,4,4,21,4,20,21,3,4,5,5,4,3,3,21,4,4,21,21,4, +3,21,4,4,5,4,4,4,4,3,4,3,21,4,21,5,4,4,4,3,21,5,5,4,3,20,4,4,4,21,4,21,3,21,4,4, +5,4,21,4,4,26,21,3,21,21,21,21,4,4,4,3,4,5,4,4,3,4,4,4,4,21,4,21,3,21,4,4,21,4, +5,4,4,2,21,20,5,21,21,5,4,20,4,3,4,5,21,21,3,5,5,4,5,4,4,6,82,21,4,4,21,21,5,4, +4,2,21,3,21,21,21,21,4,20,5,20,4,5,4,4,3,0,20,96,20,2,18,20,0,21,4,4,21,21,21,4, +4,2,21,3,21,21,5,21,4,3,5,3,4,21,4,21,3,3,3,3,4,3,3,3,3,21,4,4,21,21,4,4,4,2,5, +3,5,4,21,21,3,20,5,3,4,5,4,4,3,4,4,4,21,4,4,4,3,5,4,4,21,5,21,4,4,65,21,3,21,4, +5,21,4,20,5,20,4,21,4,4,3,4,4,4,21,4,4,4,26,5,4,4,21,21,4,4,21,224,5,20,4,4,21, +21,4,3,5,4,4,21,4,5,3,4,4,4,21,4,4,4,18,5,21,4,5,5,4,4,4,57,21,20,4,4,21,21,20, +3,4,4,4,4,4,5,4 }, - { -5,4,4,5,59,2,5,5,4,66,45,5,4,4,4,4,4,4,2,5,4,44,4,4,4,4,3,3,2,44,4,4,4,4,4,51, -67,8,5,86,3,2,4,5,4,4,4,4,4,4,2,4,5,4,4,5,4,5,4,50,3,60,44,5,131,131,131,3,2,66, -60,4,2,2,3,3,4,3,4,3,4,3,49,2,2,5,4,3,51,3,131,2,50,66,2,131,4,4,4,4,66,3,3,3, -81,81,3,4,3,59,2,66,82,81,2,66,218,66,138,131,2,2,56,3,4,4,4,4,44,4,4,4,2,6,6,6, -5,6,4,4,6,6,5,6,5,6,6,6,6,6,5,6,5,6,6,3,4,4,4,5,4,4,4,4,3,6,5,5,5,4,4,5,5,4,5,4, -5,5,4,5,5,5,5,5,5,5,5,3,4,4,4,132,132,4,44,4,3,6,5,128,0,48,2,138,81,2,59,68,6, -130,3,59,51,59,3,59,59,5,5,2,5,4,4,4,4,4,4,3,3,6,5,138,48,128,81,128,138,2,139, -6,6,59,59,59,3,59,59,3,59,5,5,51,4,4,4,4,3,4,4,3,3,6,5,59,2,59,81,81,128,81,128, -6,76,3,59,4,59,3,59,51,59,5,6,3,132,4,4,4,66,66,2,1,3,6,4,2,129,59,81,48,128,81, -0,6,6,130,59,3,59,59,3,137,130,5,5,51,4,139,138,131,3,2,2,2,3,6,5,129,59,2,81, -137,81,137,81,6,60,2,2,59,4,59,3,137,0,5,5,3,2,3,4,3,5,4,5,3,3,6,5,2,81,81,129, -81,81,128,2,6,6,0,129,129,2,2,81,48,0,5,5,3,3,4,4,5,4,4,4,4,3,5,4,137,128,81,59, -137,81,48,48,6,76,0,2,59,216,129,138,2,81,5,5,131,3,4,4,4,4,4,4,3,3,5,5,81,81,2, -129,2,81,138,81,6,6,138,81,48,48,48,128,138,48,5,5,2,3,4,4,4,4,5,4,50,3,6,5,138, -81,2,59,2,130,3,137,6,61,2,216,0,0,0,0,0,0,5,5,3,3,5,4,5,4,5,4,3,3,5,5,2,48,129, -2,138,128,81,0,6,6,81,0,0,0,48,48,0,0,5,6,2,3,4,4,5,4,4,4,137,3,6,5,137,81,81, -81,81,81,48,48,6,68,0,0,0,0,48,48,0,0,5,6,2,3,4,4,4,5,4,4,0,3,6,5,128,137,48,0, -81,129,81,48,6,6,0,0,0,48,0,48,48,0,5,6,3,3,5,5,4,3,3,3,1,3,5,5,81,48,81,81,81, -81,48,48,68,61,0,0,0,0,0,81,48,0,5,5,3,50,3,3,51,132,4,3,50,3,6,4,81,128,81,128, -81,81,48,48,6,68,0,0,0,0,0,0,0,0,5,5,3,1,3,3,4,4,4,4,3,3,5,5,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,4,5,4,3,5,4,4,5,4,5,3,3,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,3,2,4,4,4,4,5,5,44,3,6,4,5,5,5,5,5,5,5,4,5,5,4,5,5,5,5,5,4,5,4,5,3,3,5,4, -4,44,5,4,4,3,5,5,4,5,5,5,6,4,5,5,5,5,28,5,5,5,4,4,5,4,5,5,4,3,4,5,5,4,4,4,4,3,6, -5,5,5,4,5,20,5,5,5,4,5,5,5,5,5,5,5,28,5,4,5,3,3,45,4,5,4,5,5,3,3,6,5,5,5,5,5,5, -5,5,5,5,5,5,5,6,5,5,5,4,5,5,6,4,3,4,5,5,3,3,3,131,59,4,3,4,3,4,3,4,4,3,4,26,3,3, -26,4,26,3,4,3,2,2,131,50,3,4,4,51,4,4,4,4,2,50,138,217,2,2,2,2,2,2,138,3,3,2,2, -81,131,3,2,3,3,4,3,4,2,131,3,5,5,4,5,5,2,3,4,4,4,81,4,4,4,4,4,4,4,4,2,4,4,4,4,4, -4,4,4,5,2,4,5,5,44,44,4,5,4,3,5,5,4,66,4,4,3,4,4,4,4,3,4,4,4,4,4,4,4,4,4,86,2,4, -45,4,4,4,4,4,4,83,5,5,4,49,4,4,4,3,4,4,4,3,3,4,4,4,4,3,4,4,3,5,3,5,4,61,4,132,4, -4,4,2,5,85,4,2,4,4,4,4,4,44,4,3,3,5,4,4,4,4,4,4,3,6,66,4,4,4 + { // 1 +5,4,131,4,44,4,132,4,3,66,3,5,4,4,4,4,4,5,3,132,4,5,4,44,4,4,3,4,5,44,4,4,4,4, +131,4,4,4,4,4,4,66,2,4,4,4,5,5,4,4,3,4,4,4,5,5,4,5,3,4,4,44,4,132,4,4,131,4,4,4, +44,4,4,2,2,5,4,4,4,4,4,4,3,3,4,5,5,4,4,5,3,4,5,4,4,4,5,51,3,4,4,4,4,3,3,1,2,3,4, +3,50,3,137,0,1,50,3,3,44,4,4,3,131,4,5,5,4,4,59,67,2,66,2,3,3,3,3,3,3,3,3,3,3,3, +3,3,3,3,3,3,3,3,3,3,59,2,2,4,4,4,2,8,66,3,6,6,6,6,6,6,6,6,5,5,6,5,6,6,5,6,5,6,6, +5,6,6,4,50,3,3,83,2,5,5,60,3,6,5,5,5,5,4,5,5,4,5,5,5,5,5,5,4,5,5,4,5,5,5,3,138, +4,5,5,5,5,86,4,3,6,5,128,138,59,2,129,2,137,81,138,2,137,128,81,81,6,5,5,4,5,5, +4,217,4,5,5,85,4,3,2,81,5,5,0,48,2,129,59,81,128,81,81,48,81,137,48,128,6,5,5,5, +5,5,3,2,4,4,4,4,66,2,2,81,6,4,48,128,59,59,2,81,81,2,2,129,81,48,81,81,6,5,5,5, +4,5,4,2,81,66,49,2,45,4,3,3,4,4,2,81,81,81,81,129,59,129,59,2,81,0,81,128,6,5,5, +5,5,5,3,2,4,4,4,4,5,5,3,4,4,5,138,128,81,48,137,81,137,2,2,138,81,81,81,81,6,5, +5,6,20,5,4,2,4,4,4,4,4,4,4,3,6,5,81,138,128,128,81,81,81,81,130,128,81,129,81, +81,6,5,5,4,5,5,4,2,4,3,4,4,4,4,3,59,6,4,2,2,81,81,137,128,48,138,3,81,48,81,48, +48,6,5,5,5,5,5,3,2,4,4,3,4,4,4,4,2,5,5,59,139,128,0,81,2,48,81,137,0,48,48,48, +48,6,5,4,5,5,5,4,138,4,4,4,4,4,4,3,66,6,4,68,6,6,6,6,6,6,6,6,6,6,6,68,6,6,5,5,5, +4,5,26,3,4,4,4,44,4,4,4,82,5,5,6,6,76,6,60,6,76,6,61,6,68,6,61,68,6,5,5,5,5,5,3, +3,4,4,4,4,4,4,3,81,6,5,130,59,3,130,2,0,0,138,2,81,0,0,0,0,6,5,4,28,5,5,3,2,4,3, +3,3,2,2,49,2,6,4,3,59,59,59,2,129,2,81,216,0,0,0,0,0,6,5,5,5,5,5,26,2,2,4,3,3,5, +4,2,66,6,5,59,59,4,3,59,129,59,48,0,0,0,0,0,0,6,5,5,5,5,6,4,81,4,4,4,5,4,5,2, +218,6,5,51,3,59,59,4,2,216,48,0,0,0,48,0,0,6,5,5,5,5,5,26,131,4,4,4,4,44,4,5,66, +6,5,59,59,3,59,59,2,129,48,0,48,48,0,0,0,6,5,5,4,5,5,3,3,4,4,4,4,4,4,4,138,5,5, +3,59,59,3,3,81,138,128,0,48,48,48,81,0,6,5,5,4,5,5,4,2,4,4,4,4,4,5,3,131,6,5,59, +3,51,137,137,48,2,138,0,0,0,48,48,0,6,5,4,5,28,4,3,3,4,4,3,4,4,4,51,2,5,5,59,59, +59,130,0,0,81,48,0,0,0,0,0,0,6,5,5,4,5,5,2,3,4,4,4,4,4,5,3,2,6,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,4,5,4,5,4,5,2,4,4,4,4,4,3,4,131,56,6,5,5,5,6,5,5,5,5,5,5,6,6,6,5, +5,5,5,5,5,5,6,131,3,4,4,3,3,3,50,2,3,3,3,2,51,3,51,3,3,131,2,3,2,2,3,3,3,4,3,3, +4,3,4,50,4,5,86,5,6,2,3,50,4,4,4,5,4,132,4,2,3,3,3,3,3,3,3,50,1,3,2,3,3,3,3,3,2, +2,2,3,66,44,60,66,4,4,4,4,4,4,139,3,4,4,4,5,4,4,5,3,3,5,4,5,4,45,4,4,131,4,4,5, +4,4,44,2,4,4,4,4,4,4,138,4,4,4,4,4,4,4,5,3,3,4,4,4,5,4,5,4,3,5,45,4,4,4,5,131,4, +5,132,4,4,4,131,3,5,4,4,5,5,4,4,51,4,4,4,4,5,5,5,51,5,5,4,61,4 }, - { -12,12,12,12,12,83,61,61,61,61,83,61,20,13,84,84,84,13,13,13,13,83,61,61,61,61, -61,61,85,15,85,13,83,11,12,12,84,12,83,83,83,83,83,61,13,12,84,84,13,13,84,13, -13,83,61,83,83,83,83,13,13,85,85,12,83,12,11,83,12,83,12,12,84,13,83,61,12,84, -84,12,84,85,12,85,85,83,61,85,85,12,85,13,85,85,13,85,12,12,83,83,83,83,83,83, -83,83,83,61,83,83,83,83,83,83,83,83,83,83,61,83,83,83,83,83,83,84,85,12,11,11, -12,83,4,20,4,4,4,20,83,61,84,4,20,84,4,84,20,4,20,83,61,4,3,84,20,84,3,85,85,13, -11,11,84,83,4,84,84,20,20,84,83,61,84,20,84,20,84,84,84,20,4,83,61,4,4,4,84,3, -84,85,14,84,12,83,12,83,4,20,20,20,20,20,83,61,84,131,130,131,131,130,130,131,4, -83,61,4,4,4,4,3,20,85,85,13,12,12,83,83,4,84,61,61,61,84,83,61,20,130,20,20,4,4, -84,130,4,83,84,61,61,61,61,20,84,85,13,12,11,12,11,83,20,61,83,83,83,83,61,84, -84,130,20,20,84,4,4,131,4,84,83,83,83,83,61,61,3,85,85,13,11,11,83,83,4,83,83, -20,20,20,84,84,20,131,20,20,20,84,4,130,4,4,4,4,4,4,83,61,84,85,84,13,11,12,11, -83,4,83,61,20,20,20,20,20,20,131,130,131,130,130,130,131,84,4,4,4,4,4,83,61,3, -85,14,13,83,11,83,83,4,83,61,20,20,20,84,84,20,84,84,20,84,84,84,84,84,84,4,4,4, -84,83,61,20,85,84,12,11,11,12,83,20,83,61,20,84,20,84,20,20,4,4,84,4,4,84,4,84, -84,20,84,4,20,83,61,84,85,84,13,12,11,11,83,4,83,61,20,20,3,20,84,20,20,84,20, -84,84,84,4,4,84,84,84,4,3,83,61,3,85,84,13,11,11,83,83,4,83,61,4,84,4,20,4,84,4, -84,20,84,20,20,4,20,84,84,3,20,84,83,61,3,85,85,84,12,11,11,84,85,83,61,85,85, -85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,83,61,85,85,12,12,5,4,5,5,5, -5,6,5,6,5,6,6,5,6,6,6,6,6,7,6,6,6,6,6,6,5,5,5,5,5,5,5,4,4,4,4,3,3,4,3,4,4,4,4,4, -4,4,4,4,4,5,5,5,5,6,5,6,7,6,7,6,7,7,6,4,5,5,5,5,5,5,5,6,5,6,6,6,6,6,6,7,6,6,5,6, -5,5,5,6,5,5,5,5,5,5,5,4,4,4,4,3,3,3,3,3,4,3,4,4,4,4,4,4,4,5,5,5,6,5,6,5,6,6,6,7, -5,7,6,4,5,5,4,5,5,5,5,5,5,5,6,5,6,5,6,6,5,6,5,5,6,5,5,5,5,5,5,5,5,5,5,4,4,4,4,3, -4,3,4,4,4,4,4,4,5,4,5,5,5,5,5,5,5,6,5,6,6,7,5,6,7,6,6,5,5,5,4,5,4,4,4,5,4,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,4,4,4,4,4,5,5,5,4,5,4,5,5,5,5,5,5,6,5,5,6, -6,6,5,6,6,6,7,6,7,6,6,12,12,12,12,12,83,61,12,12,12,12,12,12,12,12,12,12,12,12, -12,12,12,12,12,12,12,83,61,12,12,12,12,12,12,12,12,12,83,61,12,12,12,12,12,12, -13,84,20,13,84,13,13,84,13,85,13,20,20,83,61,85,12,20,12,85,12,12,12,12,83,61, -12,12,12,12,12,12,13,12,12,13,84,13,13,13,13,85,85,85,13,83,61,85,13,85,85,83, -12,12,12,12,83,61,12,12,12,12,61,61,61,61,61,61,61,61,61,61,61,13,85,13,13,83, -61,85,13,13,20,12,12,12,12,83,83,61,12,12,84,83,83,83,83,83,83,83,83,83,83,83, -83,61,13,13,13,83,61,13,13,13,12,12,83,12,12,12,83,61,12,12,12,83,61,12,12,84, -12,20,12,13,13,84,83,61,85,85,13,83,61,85,85,85,13,83,12,12,12,83,83,61,12,12, -12,83,61,12,12,84,84,20,84,13,20,13,83,61,85,85,13,83,61,85,14,85,13,83,12,84, -11,11,83,61,84,11,20,83,61,20,12,84,12,84,13,20,13,20,83,61,85,13,85,83,61,85, -85,12,85 + { // 2 +12,83,83,12,11,11,12,12,11,11,11,83,11,12,11,12,5,4,4,4,4,4,5,4,12,12,85,83,12, +12,83,83,12,11,12,12,11,11,83,12,12,11,12,11,11,11,11,11,4,4,5,4,5,4,5,4,12,12, +12,12,12,83,12,12,12,12,11,83,12,84,12,83,11,83,11,83,12,11,83,11,5,4,5,4,5,4,5, +4,12,12,12,12,12,12,12,84,12,12,83,83,83,83,83,83,83,83,83,83,83,83,83,84,5,4,5, +4,4,4,4,4,12,12,12,12,12,12,12,11,12,84,12,83,4,4,4,4,20,4,4,4,20,4,4,85,5,3,5, +3,5,3,5,4,12,12,12,12,83,12,83,11,83,12,83,83,20,84,20,84,61,83,83,83,83,83,83, +83,5,3,5,3,5,4,4,5,83,83,83,83,83,83,83,83,61,83,12,83,4,84,20,61,83,83,61,61, +61,61,61,61,6,4,5,3,5,3,4,5,61,61,61,61,61,61,61,61,61,83,12,83,4,20,20,61,83, +20,20,20,20,20,4,85,5,3,5,3,5,4,4,5,12,12,12,12,12,12,12,84,61,83,84,83,4,20,20, +61,83,20,20,20,84,20,84,85,6,4,6,3,5,4,5,4,12,12,12,12,12,12,12,11,61,83,13,83, +20,84,20,84,83,20,20,20,20,3,4,85,5,4,5,4,5,4,4,5,12,12,12,12,84,12,12,20,83,83, +83,83,83,83,83,83,61,84,20,84,84,20,20,85,6,4,6,3,5,4,5,4,12,12,12,12,83,83,83, +83,61,61,61,61,61,61,61,61,84,84,20,84,20,84,4,85,6,4,6,4,6,4,5,5,12,12,12,61, +83,61,61,61,20,13,12,83,84,84,84,20,84,20,20,20,20,20,84,85,5,4,6,4,5,4,5,5,12, +12,12,61,83,12,12,20,13,12,84,83,4,20,131,130,130,131,131,84,4,20,4,85,6,4,6,4, +6,5,5,5,12,13,13,61,83,12,12,12,84,84,84,83,20,84,130,20,20,20,130,84,4,84,84, +85,6,4,6,4,5,4,5,5,12,84,12,61,83,84,84,84,84,84,12,83,84,20,131,20,20,20,131, +20,84,20,20,85,6,4,6,4,6,5,5,5,12,20,12,61,83,12,84,12,84,13,84,83,4,84,131,4, +84,20,130,84,4,84,84,85,6,4,7,4,6,5,5,5,12,13,13,61,83,20,20,84,13,13,85,83,84, +84,130,4,4,84,130,84,4,84,20,85,6,4,6,4,5,5,5,6,12,84,84,61,83,12,84,13,13,84, +12,83,20,84,130,84,4,4,130,84,84,84,20,85,7,5,6,5,6,5,5,5,12,13,13,61,83,13,13, +20,13,13,85,83,4,20,131,130,131,130,131,84,4,4,4,85,6,5,5,5,5,5,5,5,12,13,13,61, +83,13,20,13,13,13,85,83,20,4,4,4,4,4,84,84,84,4,20,85,6,5,6,5,5,5,5,6,12,84,13, +61,83,84,13,20,83,83,83,83,83,83,83,83,84,4,4,84,84,84,84,85,6,5,5,6,6,5,5,6,12, +13,13,61,83,83,83,83,61,61,61,61,61,61,61,84,83,4,4,4,20,84,84,85,6,6,5,5,5,6,5, +6,12,85,85,13,61,61,61,61,61,83,85,83,4,4,4,61,83,4,4,4,84,84,3,85,6,5,5,6,5,5, +5,5,12,13,85,85,13,85,85,85,61,83,85,83,3,4,4,61,83,4,4,4,4,4,20,85,6,6,6,5,5,6, +5,6,12,20,85,13,13,85,85,13,61,83,12,83,84,4,4,61,83,4,4,84,20,3,84,85,5,7,5,6, +5,6,5,6,12,20,13,13,13,13,13,85,61,83,85,83,20,84,4,61,61,83,83,83,83,83,83,83, +5,6,5,6,5,7,5,6,83,83,83,83,83,83,83,83,61,13,13,83,84,3,3,20,61,61,61,61,61,61, +61,61,5,7,5,6,5,5,5,7,61,61,61,61,61,61,61,61,85,13,85,83,3,84,20,84,3,84,3,20, +84,3,3,85,5,6,5,7,5,6,5,6,12,85,85,85,13,85,85,85,15,85,85,84,85,85,85,85,85,85, +85,85,85,85,85,85,5,7,5,5,5,7,5,7,12,12,13,13,13,85,14,85,85,85,13,85,85,14,85, +13,85,84,14,84,84,84,85,12,5,7,5,7,5,6,5,6,12,20,85,13,13,85,85,12,13,12,85,12, +13,84,13,12,13,13,13,12,13,13,84,12,5,6,5,6,5,6,6,6,12,12,85,20,12,13,13,85 }, - { -4,4,4,4,4,4,4,4,3,4,4,5,4,4,4,4,4,4,5,4,4,5,4,4,4,4,4,4,4,4,4,4,5,4,5,4,5,5,4,5, -36,5,4,5,20,5,5,4,5,5,5,4,5,20,5,5,5,20,5,5,5,5,5,4,4,5,4,5,4,4,4,4,4,4,5,4,5,5, -4,5,4,5,13,5,5,5,5,20,5,5,5,13,5,5,13,5,4,4,4,4,4,4,4,4,4,4,20,4,4,4,5,4,4,4,5, -77,4,5,77,4,4,5,4,5,4,4,5,4,4,76,4,3,4,3,4,35,3,4,4,4,76,76,76,4,76,76,76,4,76, -4,4,76,4,76,76,4,4,76,4,76,4,4,4,4,37,5,36,5,4,4,37,5,4,5,4,5,4,5,4,5,20,5,20,5, -36,5,5,5,4,4,4,4,37,5,4,36,36,4,37,4,36,5,4,5,20,5,4,4,5,4,5,5,5,4,5,5,4,4,13,4, -5,4,4,4,4,4,4,4,4,4,4,4,4,5,20,4,5,4,4,4,4,20,5,20,5,4,4,13,5,5,4,4,77,4,4,4,5, -4,4,4,4,4,37,4,4,4,5,4,4,4,4,4,4,5,4,4,4,4,5,4,4,4,77,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,77,4,3,4,4,4,4,76,4,77,76,4,76,4,4,4,4,4,4,4,3,4,3,3,4,4,3,3,4,76,4,4, -4,76,76,4,4,76,4,4,4,4,4,4,76,4,4,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,20,5,20,4,37,4,4,4,4,36,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,77,4,4,4,5, -4,5,36,4,4,4,36,20,4,4,4,4,4,4,4,4,4,4,4,12,4,4,4,4,76,4,4,5,13,4,4,4,4,4,20,5, -20,4,4,4,4,3,19,4,3,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,3,11, -11,11,11,76,3,3,11,11,11,3,12,11,76,3,11,76,76,11,11,11,11,11,11,11,11,3,11,3,3, -35,4,12,4,4,12,4,4,19,4,37,4,4,4,20,4,36,4,4,36,4,20,4,4,36,4,37,4,4,20,4,37,4, -37,36,36,4,36,20,36,20,37,37,20,36,37,20,37,36,4,20,5,37,20,4,37,4,37,37,20,37, -4,37,20,36,5,36,36,4,20,4,37,4,20,4,4,5,37,5,37,4,36,5,36,5,36,4,20,36,20,5,4, -37,20,37,37,20,37,4,4,4,3,4,4,36,4,36,20,4,20,4,4,4,4,20,4,4,5,4,4,4,4,20,4,37, -20,4,37,20,4,20,36,4,12,4,3,4,12,4,4,36,4,20,36,4,4,4,4,20,4,4,20,4,4,36,4,20,5, -4,4,4,3,3,3,3,3,4,36,3,3,3,36,3,3,4,3,3,36,36,3,3,3,4,4,3,4,4,3,4,35,4,4,4,20, -36,36,20,37,20,4,36,36,20,36,4,36,4,36,4,4,4,37,20,4,36,5,37,4,20,4,35,4,37,36, -4,4,37,4,36,37,36,36,4,36,36,20,36,36,37,4,36,36,4,36,4,4,4,36,37,4,36,20,36,20, -37,4,37,4,36,36,4,20,36,37,36,4,37,37,36,20,4,36,36,36,36,20,36,4,4,4,4,4,4,4,4, -36,4,20,36,20,4,36,4,36,4,36,36,36,20,36,36,36,36,36,36,4,36,36,4,36,4,4,4,20, -37,4,20,4,36,4,4,3,3,3,3,3,3,3,3,36,4,3,12,12,36,12,3,35,4,19,3,3,3,11,3,4,4,4, -36,4,3,19,3,19,4,36,12,4,36,4,4,3,36,4,12,4,3,4,130,4,4,4,12,4,12,12,3,4,3,4,4, -4,4,4,4,3,12,4,3,4,19,4,3,4,12,3,36,4,4,4,4,3,3,4,4,12,4,4,4,12,4,12,4,3,4,3,4, -36,3,3,36,4,3,19,3,3,4,3,3,4,4,3,4,11,4,4,3,4,12,4,4,4,4,4,4,12,4,19,4,19,4,3,3, -3,3,4,3,4,3,4,12,3,4,3,3,4,3,4,4,4,3,4,36,4,4,12,4,3,4,3,3,3,130,3,3,3,3,3,3, -130,3,3,3,2,2,130,130,3,3,11,3,3,3,3,3,3,130,3,3,130,3,3,3 + { // 3 +4,5,4,4,4,4,37,4,5,4,4,4,4,4,4,3,4,37,5,37,4,3,20,4,4,20,3,19,3,36,19,3,4,4,5,4, +76,4,5,4,4,4,3,4,36,4,3,11,12,36,36,4,20,3,36,37,36,4,3,4,12,3,4,130,4,5,4,4,4, +4,4,4,4,4,4,4,4,4,19,11,4,36,36,4,36,3,36,4,36,36,3,36,4,3,3,3,4,4,5,4,3,4,36,4, +4,4,3,4,4,4,4,11,4,4,4,4,4,3,20,36,4,4,3,12,3,36,3,3,4,5,4,4,4,37,36,4,4,4,3,4, +4,4,3,11,12,36,20,3,12,3,37,37,20,36,3,4,4,4,3,3,4,5,4,4,3,5,4,4,4,4,4,4,4,4,4, +76,4,20,4,4,4,4,20,36,36,4,3,36,19,3,3,3,4,4,4,4,4,36,37,4,37,4,4,4,4,4,4,3,4, +36,37,4,3,36,4,36,37,36,3,4,4,19,4,3,4,5,4,4,35,5,4,4,4,4,3,4,4,4,4,3,19,20,4, +36,4,3,36,4,36,36,3,4,3,3,3,3,3,36,4,4,3,4,36,4,4,4,3,4,4,4,3,11,4,37,20,4,12,3, +36,36,4,36,36,3,4,3,4,130,4,5,4,4,4,4,5,5,4,4,4,4,4,4,4,11,37,37,4,36,4,3,20,36, +37,20,4,36,12,4,3,3,4,4,5,20,4,37,4,20,5,4,76,4,4,4,4,11,4,20,4,20,4,36,36,20, +37,36,3,4,3,3,4,3,5,5,4,4,4,5,5,4,4,4,4,4,4,12,4,3,4,36,5,4,36,3,4,36,36,36,12, +12,36,3,12,3,4,20,5,4,76,4,20,5,4,4,4,4,4,4,4,12,4,37,37,20,4,3,36,36,20,36,12, +4,4,4,3,2,4,5,5,4,76,5,5,4,4,77,4,4,4,4,4,11,20,20,5,4,20,4,4,37,4,36,36,3,4,4, +4,2,4,5,4,5,76,4,4,4,4,4,76,4,4,4,4,76,4,37,37,4,36,3,36,4,36,36,12,4,4,3,3,130, +4,4,5,4,4,5,4,4,4,3,76,4,4,4,4,3,36,36,4,4,4,3,4,36,36,36,3,130,4,4,3,130,4,5,4, +4,76,4,5,4,4,4,4,4,4,76,4,11,4,4,36,4,4,36,4,36,36,4,35,4,3,11,4,3,4,5,5,4,76,5, +4,20,5,4,4,4,4,4,4,76,4,20,5,20,4,36,4,4,36,36,4,4,3,4,3,3,5,5,13,5,76,4,5,5,4, +4,76,4,4,4,4,76,36,5,36,4,4,3,37,36,20,36,19,4,4,4,4,11,4,4,5,77,4,5,5,20,4,4,4, +4,77,5,4,11,4,37,5,4,20,3,20,4,36,4,3,12,4,3,4,3,4,5,5,4,76,20,5,5,4,76,4,4,4, +13,4,11,20,20,36,5,4,3,4,4,4,36,3,4,12,4,4,3,5,20,5,5,4,5,4,4,4,4,4,4,4,4,4,11, +4,4,4,4,4,4,36,4,4,4,3,12,4,12,3,3,4,5,5,77,4,20,5,4,5,77,4,4,4,4,4,11,4,37,20, +4,20,4,5,36,4,4,11,12,4,4,4,3,4,5,20,4,76,5,5,13,4,76,4,4,5,4,4,11,36,4,36,4,4, +3,37,37,4,4,3,3,4,4,36,3,4,5,5,4,4,36,4,5,4,4,4,20,4,4,4,11,4,37,20,4,4,4,4,4,4, +20,4,4,12,4,4,3,4,20,5,5,76,5,4,5,4,76,76,5,5,4,4,11,37,37,5,20,36,4,20,36,4,37, +4,3,4,4,4,130,4,5,5,4,76,5,13,4,77,4,4,20,36,20,4,11,4,20,4,4,4,3,4,20,4,4,4,4, +12,4,12,3,4,5,13,5,4,5,4,4,4,4,4,4,4,5,4,3,4,37,37,37,20,4,35,36,4,20,36,4,4,4, +4,3,4,5,5,4,4,4,5,77,4,4,3,37,4,20,4,11,20,4,20,20,5,35,4,20,36,4,4,4,3,12,3, +130,4,5,5,4,76,4,4,4,4,4,3,4,4,4,4,3,4,37,37,4,4,4,37,37,4,36,3,4,4,4,4,3,4,5, +13,5,4,4,4,4,4,4,3,4,36,4,3,3,37,20,37,37,4,4,36,4,20,4,19,4,3,19,3,3,4,4,5,4, +76,4,4,4,4,4,4,4,20,4,4,35,4,36,20,20,4,4,4,37,36,4,3,4,4,4,3,3 }, - { -43,20,20,19,43,43,43,43,20,20,43,20,20,20,20,43,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -11,19,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,11,12,12,11,11,12,12,11,12, -12,12,12,12,12,12,20,43,20,20,20,20,20,20,20,20,20,20,20,20,20,20,43,11,11,11, -11,11,11,11,11,11,11,11,11,11,11,11,43,11,20,20,20,21,20,20,21,20,20,20,21,20, -20,21,43,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,20,43,20,20,20,20,20,20, -20,20,20,20,20,20,20,21,43,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,19,10, -20,43,19,43,43,11,11,11,11,19,11,11,43,43,19,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,81, -43,21,21,21,21,21,21,21,20,21,20,21,20,20,21,20,11,11,12,12,12,12,12,12,12,12, -12,12,12,11,12,20,43,20,20,20,20,20,20,20,21,21,21,20,20,20,20,43,11,12,11,11, -12,12,12,12,12,12,12,12,12,11,12,20,43,21,20,20,20,20,21,20,20,20,20,20,20,20, -20,43,11,11,11,11,11,12,12,12,11,11,11,12,12,12,12,43,83,20,21,21,21,21,21,20, -20,20,20,21,20,20,20,43,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,20,65,11, -19,19,19,19,81,81,2,34,19,19,19,19,11,42,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,19,83,21, -20,21,21,21,21,21,21,21,21,21,20,21,21,20,11,12,12,12,12,12,12,12,12,12,12,11,2, -11,12,43,83,20,20,20,20,20,20,20,20,20,20,20,20,20,20,43,11,12,12,12,12,12,12, -12,12,12,11,11,12,12,12,20,43,20,21,21,21,20,21,20,20,20,20,20,20,20,20,43,11, -11,11,11,12,12,12,12,12,12,11,11,12,12,11,19,83,20,21,21,21,21,21,21,21,20,21, -20,20,20,20,43,11,12,11,12,12,11,12,12,12,12,11,11,12,12,12,20,83,11,11,11,19, -19,19,19,43,43,43,19,19,12,19,43,2,11,11,11,11,11,11,11,11,11,11,2,2,11,11,11,2, -11,11,11,11,11,2,11,82,11,11,2,11,11,2,2,19,20,21,21,20,21,20,20,20,20,20,20,20, -20,20,43,11,12,12,12,12,12,12,12,12,12,12,12,11,12,12,2,20,21,21,21,20,21,20,21, -21,21,21,21,21,21,21,43,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,2,20,20,21, -21,21,21,21,21,21,21,21,21,21,20,21,43,11,11,11,11,12,11,11,11,11,11,11,12,11, -11,12,2,20,21,21,21,21,21,21,21,21,21,21,21,21,20,21,43,11,11,11,12,12,12,12,12, -12,11,12,12,12,11,12,2,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,43,1,73,1, -73,73,2,2,2,2,2,2,2,2,2,2,1,43,43,19,43,19,43,19,19,19,19,10,2,19,2,19,9,11,12, -11,11,12,11,11,11,11,11,12,12,12,12,12,2,20,21,21,21,21,21,21,21,21,21,21,21,21, -21,21,43,11,12,12,12,11,11,11,11,11,11,11,11,12,12,12,11,43,20,21,21,21,21,20, -20,21,21,20,20,20,21,21,19,11,12,11,12,12,11,11,12,12,12,11,11,11,11,12,2,43,20, -20,20,20,20,21,21,21,21,21,20,21,21,20,43,11,12,12,11,12,12,12,12,12,12,12,12, -12,12,12,2,20,21,21,21,21,21,21,21,21,21,21,21,20,21,20,19,73,2,73,1,73,73,2,2, -1,73,73,2,1,1,2,1,43,43,43,43,43,43,43,43,11,43,43,43,11,11,11,81,11,11,12,12, -11,11,12,11,11,11,12,12,12,11,11,2,20,21,20,20,20,20,20,20,20,20,20,21,21,21,21, -20,11,12,12,12,12,11,11,11,11,12,12,12,12,12,12,2,43,20,20,20,20,20,20,20,20,20, -20,20,21,21,21,20,11,12,12,12,12,12,12,12,12,11,12,12,12,12,12,2,43,20,43,43,43, -20,20,43,20,12,43,12,20,20,20,43,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, -11,43,20,20,20,20,20,20,20,20,20,43,20,20,20,20,43,2,11,11,11,11,11,11,11,11,11, -11,11,11,11,11,2,11,43,43,43,43,20,20,43,43,43,43,43,43,43,43,11 + { // 4 +43,19,43,11,43,10,43,43,43,83,65,83,83,43,83,83,2,11,11,11,11,1,11,11,11,11,73, +11,11,11,11,2,20,20,20,20,20,20,21,20,21,20,11,21,20,20,20,11,11,12,12,11,11,73, +12,12,12,12,2,11,12,12,12,11,20,20,20,20,20,43,21,20,20,21,19,20,20,21,21,11,11, +12,11,11,11,1,11,12,11,12,73,12,12,12,12,11,19,20,20,20,20,19,21,20,20,21,19,21, +20,21,21,11,11,12,11,11,12,73,11,12,12,11,1,12,12,12,12,11,43,20,20,21,20,43,21, +20,20,21,19,21,20,21,21,19,11,12,11,12,12,73,12,11,12,12,73,11,12,12,12,11,43, +20,20,20,20,43,21,20,20,21,19,21,20,20,21,19,11,12,11,11,12,2,11,11,11,12,73,11, +11,12,12,11,43,20,20,20,20,11,21,20,21,21,81,21,20,21,21,19,2,12,11,11,12,2,11, +11,11,12,2,12,11,12,12,11,43,20,20,21,20,11,21,20,20,20,81,21,20,20,21,19,11,12, +11,11,12,2,11,11,12,12,2,11,11,12,12,11,20,20,20,20,20,11,20,21,20,20,2,21,20, +20,21,43,82,12,11,11,12,2,11,11,12,12,1,11,11,12,12,11,20,20,20,20,20,11,21,21, +20,20,34,21,20,20,20,43,11,12,11,11,11,2,11,11,12,12,73,11,12,11,12,11,43,20,20, +20,20,19,20,21,20,20,19,21,20,20,21,43,11,12,11,11,12,2,12,11,11,12,73,12,12,12, +12,11,20,20,20,21,20,11,21,20,20,21,19,21,20,20,20,19,2,12,11,12,12,2,12,11,11, +12,2,12,12,12,12,11,20,20,20,20,20,11,20,20,20,20,19,20,20,20,20,19,11,11,11,11, +12,2,12,12,11,12,1,12,12,12,12,11,20,20,20,20,20,43,20,20,20,20,19,21,20,20,20, +12,11,12,11,11,11,2,12,12,11,12,1,11,12,12,12,11,20,21,20,21,21,43,21,20,20,20, +11,21,20,20,20,19,2,12,12,12,12,2,12,12,12,12,2,11,12,12,12,11,43,20,43,43,43, +19,20,43,43,43,42,20,43,43,43,43,2,2,2,2,2,1,2,11,2,2,1,2,2,2,11,2,2,11,11,11, +12,2,11,11,11,11,2,11,11,11,11,2,19,20,20,20,20,43,20,43,43,20,43,20,43,43,43, +11,2,12,11,11,12,2,11,12,11,11,2,12,12,11,12,11,20,21,20,21,21,43,21,20,20,21, +43,21,20,20,20,43,2,12,11,11,12,2,12,11,11,11,2,12,12,11,11,11,21,21,21,21,21, +19,21,21,20,21,43,20,20,43,20,43,2,11,11,11,12,2,12,11,11,11,2,12,12,11,12,11, +21,21,21,21,21,43,21,21,20,21,43,20,20,43,20,43,2,11,11,11,12,2,12,12,11,12,2, +12,12,12,12,11,20,20,21,21,21,19,21,21,20,21,43,20,20,43,20,43,2,12,11,11,12,2, +12,12,12,12,2,12,12,12,11,11,21,21,21,21,21,43,21,21,20,21,43,20,20,20,20,20,2, +12,11,11,12,2,12,12,12,12,2,12,12,12,12,11,20,20,21,21,21,19,21,20,21,21,43,20, +20,20,20,20,2,11,11,11,12,2,12,12,12,11,2,12,12,12,12,11,20,21,21,21,21,19,21, +20,21,21,43,20,20,43,20,43,2,12,11,11,12,2,12,12,11,12,2,12,12,12,12,11,20,21, +21,21,21,19,21,21,21,21,11,20,20,20,20,43,2,12,11,11,12,2,12,12,11,12,2,12,12, +12,12,11,20,21,21,21,21,19,21,21,21,21,43,20,20,12,20,43,2,12,11,11,12,2,12,12, +11,12,2,12,11,11,11,11,20,21,21,21,21,10,21,20,21,21,43,20,20,43,43,43,2,12,11, +11,12,2,12,12,12,12,2,11,11,11,11,2,20,21,21,21,21,2,21,20,20,21,43,21,20,12,20, +43,2,12,11,11,12,2,12,12,12,12,2,2,12,12,12,2,20,21,21,21,21,19,21,20,21,20,11, +21,21,20,20,43,2,12,11,12,12,2,11,11,12,12,2,11,12,12,12,11,20,21,20,20,21,2,21, +21,21,21,11,21,21,20,20,43,2,12,11,12,12,2,12,12,12,12,2,12,12,11,12,11,20,21, +21,21,21,19,21,21,20,20,11,21,21,20,20,43,11,20,43,20,19,81,20,20,43,20,19,43, +20,19,20,11,43,43,43,43,43,9,43,19,43,19,81,20,20,43,43,11 } }; const uint8_t SFG_backgrounds[][SFG_TEXTURE_SIZE * SFG_TEXTURE_SIZE] = { - { -10,10,10,10,10,10,10,10,10,10,10,10,59,10,10,10,10,10,10,10,10,10,59,10,10,59, -10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, -10,10,59,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, -10,10,10,10,10,10,10,10,10,10,10,10,19,10,10,10,10,10,10,10,10,10,10,10,10,10, -10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,19,19,10,10,10,10,10,10,10, -10,10,10,10,10,10,19,10,10,10,10,10,10,10,10,10,10,19,19,19,19,10,19,19,19,19, -10,10,10,10,10,19,19,10,10,10,10,10,19,19,10,10,10,10,19,10,10,10,10,10,19,60, -60,19,19,12,12,19,19,19,19,10,19,12,19,10,10,10,19,19,19,19,19,10,10,19,19,19, -19,19,19,19,19,19,19,19,19,12,12,19,12,12,19,19,19,12,10,10,19,19,19,19,19,12, -12,19,19,19,12,12,19,19,19,12,12,12,19,19,19,12,12,12,12,19,19,19,12,12,19,19, -19,12,12,12,12,12,12,12,12,12,61,12,12,19,19,168,168,168,12,19,19,12,13,12,12, -12,19,19,13,19,19,19,12,12,12,12,12,13,13,13,12,12,13,12,12,100,100,168,223,168, -12,12,100,19,13,13,13,14,13,13,13,12,19,19,19,12,13,13,13,13,168,168,168,168, -101,101,101,101,100,168,136,168,100,12,100,100,13,14,14,14,14,14,13,12,12,19,12, -13,13,13,13,13,168,0,0,168,12,101,101,101,101,168,223,168,100,100,101,101,101, -101,101,101,13,14,13,13,13,12,168,168,57,168,13,13,168,223,0,168,12,12,168,168, -168,168,0,168,101,100,100,100,100,100,100,101,13,14,13,13,13,13,168,0,0,168,13, -13,168,0,0,57,12,12,168,168,168,0,0,168,101,101,100,100,100,100,101,14,14,13,13, -13,14,13,168,0,0,168,14,14,168,223,0,168,12,12,168,168,168,0,0,168,187,187,187, -101,100,101,101,14,14,14,13,14,14,14,168,0,0,168,14,14,168,0,0,168,63,101,168, -168,168,0,0,168,101,168,168,168,101,101,209,14,209,14,13,14,14,14,64,0,168,168, -14,14,64,219,168,168,14,14,64,168,64,0,168,168,101,168,64,168,101,71,64,14,64, -63,14,14,168,14,64,168,168,64,14,14,64,168,168,64,14,63,64,64,64,168,168,64,64, -64,64,64,14,14,64,14,64,14,64,14,168,14,64,168,136,64,14,14,64,168,168,168,64, -64,64,64,64,168,168,57,64,64,64,64,14,14,64,64,64,14,80,64,64,14,80,168,64,168, -80,14,80,168,64,168,64,168,80,64,80,168,64,64,80,64,80,64,80,14,80,168,80,14,64, -64,168,14,64,64,168,64,168,80,168,64,168,64,168,64,64,80,168,136,136,80,168,64, -168,80,64,14,64,136,64,63,64,64,64,80,64,64,64,64,64,64,64,64,64,80,80,57,80, -136,64,64,64,80,64,64,64,80,80,14,80,64,64,80,73,80,64,64,136,64,64,64,73,80,73, -64,64,80,64,64,64,64,64,64,64,80,73,64,64,80,73,80,64,64,73,80,64,73,64,64,64, -64,64,64,80,64,80,64,64,73,64,64,64,64,64,64,64,64,80,64,64,64,64,64,64,64,80, -64,64,80,64,64,64,64,64,80,73,64,73,80,73,80,64,64,64,64,64,64,64,64,73,64,136, -64,64,64,64,64,73,64,64,73,73,73,73,64,64,73,64,64,64,64,64,73,64,64,64,64,64, -64,64,136,64,64,64,64,64,64,64,73,73,64,73,64,73,64,73,64,73,73,73,64,73,64,73, -64,73,64,73,64,73,64,73,64,73,64,73,64,73,64,73,64,73,64,136,73,64,136,64,73,64, -73,64,73,64,73,64,73,136,73,64,73,64,73,64,73,136,73,64,73,64,73,64,73,64,73,73, -73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73, -73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73, -73,73,136,73,73,73,73,73,73,73,73,73,73,73,73,73,73,136,73,73,73,73,73,73,73,73, -73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73, -73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73 + { // 5 +10,10,10,10,10,10,19,19,12,13,13,13,13,13,13,13,13,14,64,80,64,64,73,64,64,64, +73,136,73,73,73,73,10,10,10,10,10,19,12,12,12,19,12,12,13,13,13,14,14,14,14,64, +64,64,80,73,80,73,64,73,73,73,73,73,10,10,10,10,10,19,19,10,19,19,19,12,13,13, +14,14,14,168,168,64,168,64,64,64,64,73,73,64,73,73,73,73,10,10,10,10,10,10,10, +10,19,19,19,19,12,13,13,14,14,14,14,14,14,80,64,64,64,73,64,136,73,73,73,73,10, +10,10,10,10,10,10,19,19,12,19,12,168,168,168,168,64,64,64,80,64,64,136,64,64,73, +73,64,73,73,73,73,10,10,10,10,10,10,10,19,12,12,12,13,168,0,0,0,0,168,168,168, +64,64,64,64,64,64,64,73,73,73,73,73,10,10,10,10,10,10,19,19,12,12,13,13,57,0,0, +0,168,168,136,64,168,64,64,64,64,64,73,64,73,73,136,73,10,10,10,10,10,10,19,19, +12,12,13,13,168,168,168,168,168,64,64,168,64,64,64,64,80,73,73,73,73,73,73,73, +10,10,10,10,19,19,19,19,12,12,13,13,13,13,14,14,14,14,14,80,168,64,73,80,73,64, +73,64,73,73,73,73,10,10,10,10,10,19,19,12,12,13,13,13,13,13,14,14,14,14,14,14, +80,64,80,64,64,64,64,73,73,73,73,73,10,10,10,10,10,10,19,12,12,13,168,168,168, +168,168,168,64,64,64,80,168,64,73,80,73,64,73,64,73,73,73,73,10,10,10,10,10,10, +10,19,12,13,168,0,223,0,223,0,219,168,168,168,64,64,64,64,80,64,64,73,73,73,73, +73,59,10,10,10,10,10,10,19,12,12,168,0,0,0,0,0,168,168,168,64,168,64,64,64,73, +64,73,64,73,73,73,73,10,10,10,10,10,10,19,19,12,12,168,168,168,57,168,168,168, +64,168,168,64,80,80,73,80,73,64,73,73,73,73,73,10,10,10,10,10,19,19,12,61,13, +101,12,12,12,12,63,14,14,64,64,168,80,64,64,64,64,73,136,73,73,73,73,10,10,10, +10,10,10,19,12,12,12,101,101,12,12,12,101,14,63,64,168,64,57,64,64,64,64,64,73, +73,73,73,73,10,10,10,10,10,10,19,19,12,12,101,101,168,168,168,168,64,64,64,80, +64,80,64,64,64,64,73,64,73,73,73,73,10,10,10,10,10,10,19,19,19,100,101,101,168, +168,168,168,168,64,64,64,80,136,64,64,64,64,64,73,73,73,73,73,10,10,10,10,10,10, +19,19,19,100,100,101,168,168,168,168,64,64,64,80,168,64,64,64,64,64,73,64,73,73, +73,73,10,10,10,10,19,10,19,12,168,168,168,168,168,0,0,0,0,168,168,168,136,64,64, +64,64,64,64,73,73,73,73,73,10,10,10,10,19,19,19,12,168,223,136,223,0,0,0,0,168, +168,168,64,136,64,64,64,64,64,73,64,73,73,73,73,10,10,10,10,19,60,19,12,168,168, +168,168,168,168,168,168,168,64,57,64,80,80,80,64,64,136,64,73,73,73,73,73,59,59, +10,10,19,60,19,19,12,12,100,100,101,101,187,101,101,64,64,80,168,64,73,80,73,64, +73,136,73,73,73,73,10,10,10,10,10,19,19,19,19,12,12,100,100,101,187,168,168,64, +64,64,64,64,64,64,64,64,64,73,73,136,73,73,10,10,10,10,19,19,19,19,19,100,100, +101,100,100,187,168,64,64,64,80,168,64,64,64,136,64,73,64,73,73,73,73,59,10,10, +19,19,12,12,12,12,19,100,101,100,100,101,168,168,64,64,64,80,80,80,64,64,64,64, +73,73,73,73,73,10,10,19,19,19,12,12,12,13,13,13,101,100,100,100,101,101,14,14, +80,64,80,73,64,64,64,73,64,73,73,73,73,10,10,10,10,19,19,19,12,12,13,14,101,100, +100,101,101,71,14,14,14,14,14,80,64,64,64,64,73,73,73,73,73,10,10,10,10,10,19, +12,12,12,13,14,101,100,101,101,209,64,64,64,80,64,80,64,64,64,64,73,64,73,73,73, +73,10,10,10,10,10,19,12,19,12,14,14,101,101,14,14,14,14,14,64,168,136,64,64,64, +64,73,64,73,73,73,73,73,10,10,10,10,10,19,19,19,19,13,14,13,13,14,14,209,64,64, +64,80,64,64,73,80,73,73,73,64,73,73,73,73,10,10,10,10,10,10,19,19,19,13,14,14, +14,13,14,14,63,14,14,14,63,80,80,64,64,64,64,73,73,73,73,73 } }; diff --git a/levels.h b/levels.h index 0bf9ffc..861a66d 100644 --- a/levels.h +++ b/levels.h @@ -183,3 +183,4 @@ static const SFG_Level SFG_level0 = }; #endif // guard +