aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/engine/level_const.c6
-rw-r--r--src/engine/player_controller.c6
-rw-r--r--src/engine/sprite_controller.h19
-rw-r--r--src/engine/title_screen.c6
-rw-r--r--src/game_loop/shop.c1
-rw-r--r--src/static/.gitignore3
-rw-r--r--src/static/Source.cpp42
-rw-r--r--src/static/background/bricks.hex457
-rw-r--r--src/static/background/crates.hex39
-rw-r--r--src/static/background/shop_stall.hex202
-rw-r--r--src/static/epic.py41
-rw-r--r--src/static/makefile10
12 files changed, 814 insertions, 18 deletions
diff --git a/src/engine/level_const.c b/src/engine/level_const.c
index 3847ad8..58b2514 100644
--- a/src/engine/level_const.c
+++ b/src/engine/level_const.c
@@ -7,16 +7,16 @@ hh_g_all_levels hh_init_game_levels(){
levels.current_level=0;
levels.level[0].size.x=40;
- levels.level[0].size.y=100;
+ levels.level[0].size.y=15;
levels.level[0].hh_level_completed=false;
levels.level[1].size.x=100;
levels.level[1].size.y=28;
levels.level[1].hh_level_completed=false;
- FILE *fp = fopen("../test/bin/level1_test.bin", "rb");
+ FILE *fp = fopen("static/shop_new.bin", "rb");
if (fp == NULL) {
- printf("level1_test.bin not found!\n");
+ printf("shop_new.bin not found!\n");
return levels;
}
fseek(fp, 0, SEEK_END);
diff --git a/src/engine/player_controller.c b/src/engine/player_controller.c
index 0fed82d..1b4eec8 100644
--- a/src/engine/player_controller.c
+++ b/src/engine/player_controller.c
@@ -5,6 +5,8 @@
#include "engine/player_controller.h"
#include "input.h"
+#include "static/tilemap.h"
+
#include "engine/animator.h"
#include "engine/bullet.h"
void hh_player_actions() {
@@ -18,14 +20,14 @@ void hh_player_actions() {
.vel = (vec2){0,0},
.size = (vec2){32,32},
.render = {
- .frame0 = 80,
+ .frame0 = HH_TM_SLIME_OFFSET,
.palette = 3,
.ppu_foreground_index = 0,
.fam = (hh_s_ppu_loc_fam_entry){
.horizontal_flip = false,
.vertical_flip = false,
.palette_index = 3,
- .tilemap_index = 80,
+ .tilemap_index = HH_TM_SLIME_OFFSET,
}
}
}, player_new = {0};
diff --git a/src/engine/sprite_controller.h b/src/engine/sprite_controller.h
index fc6d3d3..244181c 100644
--- a/src/engine/sprite_controller.h
+++ b/src/engine/sprite_controller.h
@@ -15,6 +15,7 @@
#define HH_PAL_IDX_SKY 512
#define HH_PAL_IDX_BRICK 1
const static uint8_t hh_g_sprite_palette[HH_SPRITE_COUNT] = {
+ //TODO: FIGURE OUT HOW TO DEAL WITH DYNAMIC PALLETS
//TODO: make a buffer of 16 no-collider sprites (instead of the current 1)
0,1,1,1,1,1,1,1,1,1, //1+9
1,1,1,1,1,1,1,1,1,1, //6+4
@@ -47,13 +48,13 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = {
{0x0,0x0,0x0}},
{//Bricks
{0x1,0x2,0x3},//01
- {0xd,0x8,0xa},//24
{0x0,0x0,0x1},//25
{0x1,0x1,0x1},//26
{0x1,0x1,0x2},//27
{0x2,0x2,0x3},//28
{0x3,0x4,0x5},//29
- {0x5,0x1,0x7}},
+ {0x5,0x1,0x7},
+ {0xd,0x8,0xa}},//24
{//slime
{0x1,0x2,0x3},
{0x1,0x3,0x2},
@@ -72,16 +73,16 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = {
{0xe,0xe,0xe}, //elemental
{0x0,0x0,0x0},
{0x0,0x0,0x0}},
- {
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
+ {//crates
+ {0x5,0x7,0x7},
+ {0x3,0x1,0x2},
+ {0x6,0x2,0x2},
+ {0x7,0x4,0x4},
+ {0xa,0x7,0x5},
{0x0,0x0,0x0},
{0x0,0x0,0x0},
{0x0,0x0,0x0}},
- {//elemental
+ {
{0x0,0x0,0x0},
{0x0,0x0,0x0},
{0x0,0x0,0x0},
diff --git a/src/engine/title_screen.c b/src/engine/title_screen.c
index 9c7ed48..1e9e586 100644
--- a/src/engine/title_screen.c
+++ b/src/engine/title_screen.c
@@ -2,6 +2,8 @@
#include "ppu/types.h"
#include "ppu/consts.h"
+#include "static/tilemap.h"
+
#include "engine/draw_screen.h"
#include "engine/entity.h"
@@ -12,7 +14,7 @@ void hh_init_title_screen(){
//send data
uint8_t idx = 0;
- const uint8_t tilemap_offset = 59;
+ const uint8_t tilemap_offset = HH_TM_TITLE_SCREEN_ICON_OFFSET;
int tiles_h = HH_PPU_BG_CANVAS_TILES_H;
int vp_h = HH_PPU_SCREEN_WIDTH/HH_PPU_SPRITE_WIDTH; //screen_h in tiles
int vert_offset = tiles_h*3;
@@ -45,7 +47,7 @@ void hh_init_title_screen(){
}
- const uint8_t letters_offset = 66;
+ const uint8_t letters_offset = HH_TM_TITLE_SCREEN_LETTERES_LARGE_OFFSET;
const int _size_hooded = 7, _size_v = 2;
// char* hh = "hooded";
diff --git a/src/game_loop/shop.c b/src/game_loop/shop.c
index 6a97d25..eb41248 100644
--- a/src/game_loop/shop.c
+++ b/src/game_loop/shop.c
@@ -14,6 +14,7 @@ void hh_shop(hh_e_game_state* hh_game_state){
hh_clear_screen();
hh_clear_sprite();
// TODO: make function to show shop
+ // hh_setup_screen();
//hh_setup_shop();
hh_shop_init(&upgrades);
selected = HH_SHOP_UPG_DISPLAY/2;
diff --git a/src/static/.gitignore b/src/static/.gitignore
index 348c5b9..6111050 100644
--- a/src/static/.gitignore
+++ b/src/static/.gitignore
@@ -4,3 +4,6 @@ manifest.txt
tilemap.h
tiled/*
tiled.mk
+*.tsx
+*.csv
+*.out
diff --git a/src/static/Source.cpp b/src/static/Source.cpp
new file mode 100644
index 0000000..0bba7c6
--- /dev/null
+++ b/src/static/Source.cpp
@@ -0,0 +1,42 @@
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <vector>
+
+int main(int argc, char** argv) {
+
+ std::ifstream f;
+ f.open("out.csv"); /* open file with filename as argument */
+ if (!f.is_open()) { /* validate file open for reading */
+ std::cerr << "error: file open failed '" << argv[1] << "'.\n";
+ return 0;
+ }
+
+
+ std::string line, val; /* string for line & value */
+ std::vector<std::vector<int>> array; /* vector of vector<int> */
+
+ while (std::getline(f, line)) { /* read each line */
+ std::vector<int> v; /* row vector v */
+ std::stringstream s(line); /* stringstream line */
+ while (getline(s, val, ',')) /* get each value (',' delimited) */
+ v.push_back(std::stoi(val)); /* add to row vector */
+ array.push_back(v); /* add row vector to array */
+ }
+
+ std::vector<int> flat_array; /* create 1D vector */
+ for (auto& row : array) { /* iterate over rows */
+ for (auto& val : row) /* iterate over vals */
+ flat_array.push_back(val); /* add to 1D vector */
+ }
+
+ int* array1d = flat_array.data(); /* get pointer to data */
+ int size = flat_array.size(); /* get size of 1D array */
+
+ std::ofstream out_file("out.bin", std::ios::binary); /* create binary file */
+ out_file.write((char*)&size, sizeof(size)); /* write size of 1D array to file */
+ out_file.write((char*)array1d, size * sizeof(int)); /* write 1D array to file */
+ out_file.close(); /* close file */
+
+ return 0;
+}
diff --git a/src/static/background/bricks.hex b/src/static/background/bricks.hex
new file mode 100644
index 0000000..717b91d
--- /dev/null
+++ b/src/static/background/bricks.hex
@@ -0,0 +1,457 @@
+;indices: 7
+;25 3a 5e
+;09 0a 14
+;10 14 1f
+;15 1d 28
+;20 2e 37
+;39 4a 50
+;57 72 77
+
+000000: 06 06 06 06 06 05 06 06 06 06 06 05 06 06 06 06
+000010: 06 05 05 05 05 03 05 05 05 05 05 03 05 05 05 05
+000020: 06 05 04 04 04 03 05 05 05 05 05 03 05 05 05 05
+000030: 06 04 04 04 04 02 02 02 02 02 02 02 02 02 02 02
+000040: 06 04 04 04 04 02 02 03 03 03 03 03 03 02 03 03
+000050: 05 04 04 04 04 02 03 03 03 03 03 03 03 02 03 03
+000060: 05 04 04 04 04 02 03 03 03 03 03 03 03 02 03 03
+000070: 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02 02
+000080: 06 06 04 04 04 04 04 02 02 02 03 03 03 03 02 02
+000090: 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+0000a0: 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03 02
+0000b0: 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02
+0000c0: 00 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03
+0000d0: 00 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03
+0000e0: 00 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03
+0000f0: 06 06 06 05 05 05 02 02 02 02 02 02 02 02 02 02
+000100: 06 06 06 05 06 06 06 06 06 06 06 05 06 06 06 06
+000110: 05 05 05 03 05 05 05 05 05 05 05 03 05 05 05 05
+000120: 05 05 05 03 05 05 05 05 05 05 05 03 05 05 05 05
+000130: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000140: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000150: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000160: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+000170: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000180: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+000190: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0001a0: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0001b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0001c0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0001d0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0001e0: 02 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0001f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000200: 06 06 06 05 06 06 06 06 06 06 05 06 06 06 06 06
+000210: 05 05 05 03 05 05 05 05 05 05 03 05 05 05 05 06
+000220: 05 05 05 03 05 05 05 05 05 05 03 04 04 05 05 06
+000230: 02 02 02 02 02 02 02 02 02 02 02 04 04 04 04 06
+000240: 03 03 03 03 03 02 03 03 03 03 02 04 04 04 04 06
+000250: 03 03 03 03 03 02 03 03 03 03 02 04 04 04 04 05
+000260: 03 03 03 03 03 02 03 03 03 03 02 04 04 04 04 05
+000270: 02 02 02 02 02 02 02 02 02 02 02 03 03 03 03 05
+000280: 03 03 03 03 03 03 03 02 04 04 04 04 04 05 05 00
+000290: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+0002a0: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+0002b0: 02 02 02 02 02 02 02 02 02 02 02 05 05 06 06 06
+0002c0: 03 02 03 03 03 03 03 03 03 02 04 04 04 04 04 06
+0002d0: 03 02 03 03 03 03 03 03 03 02 04 04 04 04 04 06
+0002e0: 03 02 03 03 03 03 03 03 03 02 04 04 04 04 04 05
+0002f0: 02 02 02 02 02 02 02 02 02 02 02 02 03 03 03 05
+000300: 06 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000310: 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000320: 05 04 04 04 04 04 04 02 02 03 03 03 03 03 02 02
+000330: 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02
+000340: 00 05 04 04 04 03 02 03 03 03 03 03 03 02 03 03
+000350: 00 05 04 04 04 02 03 03 03 03 03 03 03 02 03 03
+000360: 00 04 04 04 04 02 03 03 03 03 03 02 02 02 02 03
+000370: 06 06 05 05 02 02 02 02 02 02 02 02 02 02 02 02
+000380: 06 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000390: 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+0003a0: 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03 02
+0003b0: 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02
+0003c0: 00 05 05 04 04 04 04 03 02 03 03 03 03 03 03 03
+0003d0: 00 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03
+0003e0: 00 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03
+0003f0: 00 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02
+000400: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+000410: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+000420: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+000430: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000440: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+000450: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000460: 03 03 03 03 03 02 03 03 03 03 03 03 02 02 02 03
+000470: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000480: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+000490: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0004a0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+0004b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0004c0: 02 02 02 03 03 03 03 03 03 02 03 03 03 03 03 03
+0004d0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0004e0: 03 02 03 03 03 03 03 03 02 02 02 03 03 03 03 03
+0004f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000500: 03 03 03 02 03 03 03 03 03 03 03 02 04 04 05 00
+000510: 03 03 03 02 03 03 03 03 03 03 03 02 04 04 05 00
+000520: 03 03 02 02 03 03 03 03 03 03 03 02 04 04 04 00
+000530: 02 02 02 02 02 02 02 02 02 02 02 02 02 06 06 06
+000540: 03 03 03 03 03 02 03 03 03 02 04 04 04 04 04 06
+000550: 03 03 03 03 03 02 03 03 03 02 04 04 04 04 04 05
+000560: 03 03 03 03 03 02 03 03 03 02 04 04 04 04 04 05
+000570: 02 02 02 02 02 02 02 02 02 02 02 03 03 03 03 05
+000580: 03 03 03 03 03 03 03 02 04 04 04 04 04 05 05 00
+000590: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+0005a0: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+0005b0: 02 02 02 02 02 02 02 02 02 02 02 03 03 06 06 06
+0005c0: 03 02 03 03 03 03 03 03 03 02 04 04 04 04 04 06
+0005d0: 03 02 03 03 03 03 03 03 03 02 04 04 04 04 04 05
+0005e0: 03 02 03 03 03 03 03 03 03 02 04 04 04 04 04 05
+0005f0: 02 02 02 02 02 02 02 02 02 02 02 02 03 03 03 05
+000600: 06 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000610: 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000620: 05 04 04 04 04 04 04 02 02 03 03 03 03 03 02 02
+000630: 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02
+000640: 00 05 04 04 04 03 02 03 03 03 03 03 03 02 03 03
+000650: 00 05 04 04 04 02 03 03 03 03 03 03 03 02 03 03
+000660: 00 04 04 04 04 02 03 03 03 03 03 02 02 02 02 03
+000670: 06 06 05 05 02 02 02 02 02 02 02 02 02 02 02 02
+000680: 06 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000690: 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+0006a0: 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03 02
+0006b0: 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02
+0006c0: 00 05 05 04 04 04 04 04 04 04 04 02 02 02 02 04
+0006d0: 00 05 05 04 04 04 04 04 04 04 04 04 02 04 04 04
+0006e0: 00 06 05 05 05 04 04 04 04 04 04 04 03 04 04 04
+0006f0: 00 06 06 06 05 05 05 05 05 05 05 05 03 05 05 05
+000700: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+000710: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+000720: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+000730: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000740: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+000750: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000760: 03 03 03 03 03 02 03 03 03 03 03 03 02 02 02 03
+000770: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000780: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+000790: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0007a0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+0007b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0007c0: 04 04 04 04 04 04 04 04 03 03 03 04 04 04 04 04
+0007d0: 04 04 04 04 04 04 04 04 04 03 03 04 04 04 04 04
+0007e0: 04 04 04 04 04 04 04 04 04 03 04 04 04 04 04 04
+0007f0: 05 05 05 05 05 05 05 05 05 03 05 05 05 05 05 05
+000800: 03 03 03 02 03 03 03 03 03 03 03 02 04 04 05 00
+000810: 03 03 03 02 03 03 03 03 03 03 03 02 04 04 05 00
+000820: 03 03 02 02 03 03 03 03 03 03 03 02 04 04 04 00
+000830: 02 02 02 02 02 02 02 02 02 02 02 02 02 06 06 06
+000840: 03 03 03 03 03 02 03 03 03 02 04 04 04 04 04 06
+000850: 03 03 03 03 03 02 03 03 03 02 04 04 04 04 04 05
+000860: 03 03 03 03 03 02 03 03 03 02 04 04 04 04 04 05
+000870: 02 02 02 02 02 02 02 02 02 02 02 03 03 03 03 05
+000880: 03 03 03 03 03 03 03 02 04 04 04 04 04 05 05 00
+000890: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+0008a0: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+0008b0: 02 02 02 02 02 02 03 03 03 03 03 03 03 06 06 06
+0008c0: 04 04 03 03 03 04 04 04 04 04 04 04 04 04 05 06
+0008d0: 04 04 04 03 03 04 04 04 04 04 04 04 04 05 05 05
+0008e0: 04 04 04 03 04 04 04 04 04 04 04 05 05 05 05 06
+0008f0: 05 05 05 03 05 05 05 05 05 05 05 05 05 06 06 06
+000900: 06 06 06 06 06 05 06 06 06 06 06 05 06 06 06 06
+000910: 06 05 05 05 05 03 05 05 05 05 05 03 05 05 05 05
+000920: 06 05 04 04 04 03 05 05 05 05 05 03 05 05 05 05
+000930: 06 04 04 04 04 02 02 02 02 02 02 02 02 02 02 02
+000940: 06 04 04 04 04 02 02 03 03 03 03 03 03 02 03 03
+000950: 05 04 04 04 04 02 03 03 03 03 03 03 03 02 03 03
+000960: 05 04 04 04 04 02 03 03 03 03 03 03 03 02 03 03
+000970: 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02 02
+000980: 06 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+000990: 05 04 04 04 04 04 04 02 03 03 03 03 03 03 03 02
+0009a0: 05 04 04 04 04 04 04 02 02 03 03 03 03 03 03 02
+0009b0: 05 03 03 03 03 03 02 02 02 02 02 02 02 02 02 02
+0009c0: 00 05 05 04 04 04 04 04 04 04 04 02 02 02 02 04
+0009d0: 00 05 05 04 04 04 04 04 04 04 04 04 02 04 04 04
+0009e0: 00 06 05 05 05 04 04 04 04 04 04 04 03 04 04 04
+0009f0: 00 06 06 06 05 05 05 05 05 05 05 05 03 05 05 05
+000a00: 06 06 06 05 06 06 06 06 06 06 06 05 06 06 06 06
+000a10: 05 05 05 03 05 05 05 05 05 05 05 03 05 05 05 05
+000a20: 05 05 05 03 05 05 05 05 05 05 05 03 05 05 05 05
+000a30: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000a40: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000a50: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000a60: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+000a70: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000a80: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+000a90: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+000aa0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+000ab0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000ac0: 04 04 04 04 04 04 04 04 03 03 03 04 04 04 04 04
+000ad0: 04 04 04 04 04 04 04 04 04 03 03 04 04 04 04 04
+000ae0: 04 04 04 04 04 04 04 04 04 03 04 04 04 04 04 04
+000af0: 05 05 05 05 05 05 05 05 05 03 05 05 05 05 05 05
+000b00: 06 06 06 05 06 06 06 06 06 06 05 06 06 06 06 06
+000b10: 05 05 05 03 05 05 05 05 05 05 03 05 05 05 05 06
+000b20: 05 05 05 03 05 05 05 05 05 05 03 04 04 05 05 06
+000b30: 02 02 02 02 02 02 02 02 02 02 02 04 04 04 04 06
+000b40: 03 03 03 03 03 02 03 03 03 03 02 04 04 04 04 06
+000b50: 03 03 03 03 03 02 03 03 03 03 02 04 04 04 04 05
+000b60: 03 03 03 03 03 02 03 03 03 03 02 04 04 04 04 05
+000b70: 02 02 02 02 02 02 02 02 02 02 02 03 03 03 03 05
+000b80: 03 03 03 03 03 03 03 02 04 04 04 04 04 05 05 00
+000b90: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+000ba0: 03 03 03 03 03 03 03 02 04 04 04 04 04 04 05 00
+000bb0: 02 02 02 02 02 02 03 03 03 03 03 03 03 06 06 06
+000bc0: 04 04 03 03 03 04 04 04 04 04 04 04 04 04 05 06
+000bd0: 04 04 04 03 03 04 04 04 04 04 04 04 04 05 05 05
+000be0: 04 04 04 03 04 04 04 04 04 04 04 05 05 05 05 06
+000bf0: 05 05 05 03 05 05 05 05 05 05 05 05 05 06 06 06
+000c00: 06 06 06 06 06 05 06 06 06 06 05 06 06 06 06 06
+000c10: 06 05 05 05 05 03 05 05 05 05 03 05 05 05 05 06
+000c20: 06 05 04 04 04 03 05 05 05 05 03 04 04 05 05 06
+000c30: 06 04 04 04 04 02 02 02 02 02 02 04 04 04 04 06
+000c40: 06 04 04 04 04 02 02 03 03 03 02 04 04 04 04 06
+000c50: 05 04 04 04 04 02 03 03 03 03 02 04 04 04 04 05
+000c60: 05 04 04 04 04 02 03 03 03 03 02 04 04 04 04 05
+000c70: 03 03 03 03 03 02 02 02 02 02 02 03 03 03 03 05
+000c80: 06 06 04 04 04 04 04 02 04 04 04 04 04 05 05 00
+000c90: 05 04 04 04 04 04 04 02 04 04 04 04 04 04 05 00
+000ca0: 05 04 04 04 04 04 04 02 04 04 04 04 04 04 05 00
+000cb0: 05 03 03 03 03 03 02 02 02 02 02 05 05 06 06 06
+000cc0: 00 05 04 04 04 04 04 04 03 02 04 04 04 04 04 06
+000cd0: 00 05 04 04 04 04 04 04 03 02 04 04 04 04 04 06
+000ce0: 00 05 04 04 04 04 04 04 03 02 04 04 04 04 04 05
+000cf0: 06 06 06 05 05 05 02 02 02 02 02 02 03 03 03 05
+000d00: 06 04 04 04 04 04 04 02 03 03 03 02 04 04 05 00
+000d10: 05 04 04 04 04 04 04 02 03 03 03 02 04 04 05 00
+000d20: 05 04 04 04 04 04 04 02 03 03 03 02 04 04 04 00
+000d30: 05 03 03 03 03 03 02 02 02 02 02 02 02 06 06 06
+000d40: 00 05 04 04 04 03 02 03 03 02 04 04 04 04 04 06
+000d50: 00 05 04 04 04 02 03 03 03 02 04 04 04 04 04 05
+000d60: 00 04 04 04 04 02 03 03 03 02 03 04 04 04 04 05
+000d70: 06 06 05 05 02 02 02 02 02 02 02 03 03 03 03 05
+000d80: 06 04 04 04 04 04 04 02 04 04 04 04 04 05 05 00
+000d90: 05 04 04 04 04 04 04 02 04 04 04 04 04 04 05 00
+000da0: 05 04 04 04 04 04 04 02 04 04 04 04 04 04 05 00
+000db0: 05 03 03 03 03 03 02 02 02 02 02 03 03 06 06 06
+000dc0: 00 05 05 04 04 04 03 03 03 03 03 04 04 04 04 06
+000dd0: 00 05 04 04 04 04 03 03 03 03 04 04 04 04 04 05
+000de0: 00 05 04 04 04 03 03 03 03 03 04 04 04 04 04 05
+000df0: 00 05 03 03 03 03 03 02 02 02 02 02 03 03 03 05
+000e00: 06 04 04 04 04 04 04 02 03 03 03 02 04 04 05 00
+000e10: 05 04 04 04 04 04 04 02 03 03 03 02 04 04 05 00
+000e20: 05 04 04 04 04 04 04 02 03 03 03 02 04 04 04 00
+000e30: 05 03 03 03 03 03 02 02 02 02 02 02 02 06 06 06
+000e40: 00 05 04 04 04 03 02 03 03 02 04 04 04 04 04 06
+000e50: 00 05 04 04 04 02 03 03 03 02 04 04 04 04 04 05
+000e60: 00 04 04 04 04 02 03 03 03 02 04 04 04 04 04 05
+000e70: 06 06 05 05 02 02 02 02 02 02 02 03 03 03 03 05
+000e80: 06 04 04 04 04 04 04 02 04 04 04 04 04 05 05 00
+000e90: 05 04 04 04 04 04 04 02 04 04 04 04 04 04 05 00
+000ea0: 05 04 04 04 04 04 04 02 04 04 04 04 04 04 05 00
+000eb0: 05 03 03 03 03 03 02 02 03 03 03 03 03 06 06 06
+000ec0: 00 05 05 04 04 04 04 04 04 04 04 04 04 04 05 06
+000ed0: 00 05 05 04 04 04 04 04 04 04 04 04 04 05 05 05
+000ee0: 00 06 05 05 05 04 04 04 04 04 04 05 05 05 05 06
+000ef0: 00 06 06 06 05 05 05 05 05 05 05 05 05 06 06 06
+000f00: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+000f10: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+000f20: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+000f30: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000f40: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+000f50: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+000f60: 03 03 03 03 03 02 03 03 03 03 03 03 02 02 02 03
+000f70: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000f80: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+000f90: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+000fa0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+000fb0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000fc0: 02 02 02 03 03 03 03 03 03 02 03 03 03 04 04 04
+000fd0: 03 02 03 03 03 03 03 03 03 02 03 03 04 04 04 04
+000fe0: 03 02 03 03 03 03 03 03 02 02 02 03 04 04 04 04
+000ff0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001000: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+001010: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+001020: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+001030: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001040: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+001050: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+001060: 03 03 03 03 03 02 03 03 03 03 03 03 02 02 02 03
+001070: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001080: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+001090: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0010a0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+0010b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0010c0: 02 02 02 04 04 03 03 03 03 02 03 03 03 03 03 03
+0010d0: 04 02 04 04 04 04 03 03 03 02 03 03 03 03 03 03
+0010e0: 04 02 04 04 04 04 03 03 02 02 02 03 03 03 03 03
+0010f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001100: 03 03 02 02 02 03 03 03 03 03 03 02 02 05 05 05
+001110: 03 03 03 02 03 03 03 03 03 03 03 02 03 05 05 05
+001120: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 05 05
+001130: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001140: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+001150: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+001160: 03 03 03 03 03 02 03 03 03 03 03 03 02 02 02 03
+001170: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001180: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+001190: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0011a0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+0011b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0011c0: 02 02 02 03 03 03 03 03 03 02 03 03 03 03 03 03
+0011d0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0011e0: 03 02 03 03 03 03 03 03 02 02 02 03 03 03 03 03
+0011f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001200: 06 05 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+001210: 05 05 05 02 03 03 03 03 03 03 03 02 03 03 03 03
+001220: 05 05 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+001230: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001240: 03 03 03 03 02 02 03 03 03 03 03 03 03 02 03 03
+001250: 03 03 03 03 03 02 03 03 03 03 03 03 03 02 03 03
+001260: 03 03 03 03 03 02 03 03 03 03 03 03 02 02 02 03
+001270: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001280: 02 03 03 03 03 03 03 02 03 03 03 03 03 03 02 02
+001290: 03 03 03 03 03 03 03 02 03 03 03 03 03 03 03 02
+0012a0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+0012b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0012c0: 02 02 02 03 03 03 03 03 03 02 03 03 03 03 03 03
+0012d0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0012e0: 03 02 03 03 03 03 03 03 02 02 02 03 03 03 03 03
+0012f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001300: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001310: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001320: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001330: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001340: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001350: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001360: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001370: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001380: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001390: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0013a0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0013b0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0013c0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0013d0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0013e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0013f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001400: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+001410: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+001420: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+001430: 02 02 02 02 02 02 02 02 02 02 02 02 02 01 01 01
+001440: 03 03 03 03 02 02 03 03 02 02 02 02 02 01 02 02
+001450: 03 03 03 03 03 02 02 02 02 02 02 02 02 01 02 02
+001460: 03 03 03 03 03 01 02 02 02 02 02 02 01 01 01 02
+001470: 02 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01
+001480: 02 03 03 03 02 02 02 01 02 02 02 02 02 02 01 01
+001490: 03 03 03 03 02 02 02 01 02 02 02 02 02 02 02 01
+0014a0: 03 03 03 03 02 02 01 01 01 01 02 02 02 02 01 01
+0014b0: 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01 01
+0014c0: 02 02 02 03 03 02 02 02 02 01 02 02 02 01 01 01
+0014d0: 03 02 03 03 03 02 02 02 02 01 02 02 01 01 01 01
+0014e0: 03 02 03 03 03 03 02 02 01 01 01 02 01 01 01 01
+0014f0: 02 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01
+001500: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+001510: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+001520: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+001530: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001540: 02 02 02 02 01 01 02 02 02 02 02 02 02 01 02 02
+001550: 02 02 02 02 02 01 02 02 02 02 02 02 02 01 02 02
+001560: 02 02 02 02 02 01 02 02 02 02 02 02 01 01 01 02
+001570: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001580: 01 02 02 02 02 02 02 01 02 02 02 02 02 02 01 01
+001590: 01 02 02 02 02 02 02 01 02 02 02 02 02 02 02 01
+0015a0: 01 02 02 02 01 01 01 01 01 01 02 02 02 02 02 01
+0015b0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0015c0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0015d0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0015e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+0015f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001600: 03 03 02 02 02 03 03 03 03 03 03 02 02 03 03 03
+001610: 03 03 03 02 03 03 03 03 03 03 03 02 03 03 03 03
+001620: 03 03 03 02 03 03 03 03 03 03 02 02 02 03 03 03
+001630: 01 01 01 01 02 02 02 02 02 02 02 02 02 02 02 02
+001640: 02 02 02 02 01 01 03 03 03 03 03 03 03 02 03 03
+001650: 02 02 02 02 02 01 02 02 03 03 03 03 03 02 03 03
+001660: 02 02 02 02 02 01 02 02 02 03 03 03 02 02 02 03
+001670: 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02 02
+001680: 01 02 02 02 02 02 02 01 02 02 03 03 03 03 02 02
+001690: 02 02 02 02 02 02 02 01 02 02 02 03 03 03 03 02
+0016a0: 02 02 02 02 02 02 01 01 01 01 02 03 03 03 03 02
+0016b0: 01 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02
+0016c0: 01 01 01 02 02 02 02 02 02 01 02 03 03 03 03 03
+0016d0: 01 01 02 02 02 02 02 02 02 01 02 03 03 03 03 03
+0016e0: 01 01 02 02 02 02 02 02 01 01 01 03 03 03 03 03
+0016f0: 01 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02
+001700: 03 03 02 02 02 02 02 02 02 02 02 01 01 01 01 01
+001710: 03 03 03 02 03 02 02 02 02 02 02 01 01 01 01 01
+001720: 03 03 03 02 03 02 02 02 02 02 01 01 01 01 01 01
+001730: 02 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01
+001740: 03 03 03 03 02 01 02 02 02 02 02 02 01 01 01 01
+001750: 03 03 03 03 02 01 02 02 02 02 02 02 01 01 01 01
+001760: 03 03 03 03 02 01 02 02 02 02 02 01 01 01 01 01
+001770: 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01 01
+001780: 02 03 03 03 02 02 02 01 02 02 02 01 01 01 01 01
+001790: 03 03 03 03 02 02 02 01 02 02 02 01 01 01 01 01
+0017a0: 03 03 03 03 02 02 01 01 01 01 02 01 01 01 01 01
+0017b0: 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01 01
+0017c0: 02 02 02 03 02 02 02 02 02 01 02 02 01 01 01 01
+0017d0: 03 02 03 03 03 02 02 02 02 01 02 02 02 01 01 01
+0017e0: 03 02 03 03 02 02 02 02 01 01 01 02 02 01 01 01
+0017f0: 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01 01
+001800: 01 01 01 01 01 02 02 02 02 02 02 02 02 03 03 03
+001810: 01 01 01 01 02 02 02 02 02 02 02 02 03 03 03 03
+001820: 01 01 01 01 02 02 02 02 02 02 02 02 02 03 03 03
+001830: 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02 02
+001840: 01 01 01 01 01 02 02 02 02 02 03 03 03 02 03 03
+001850: 01 01 01 01 01 02 02 02 02 02 03 03 03 02 03 03
+001860: 01 01 01 01 01 01 02 02 02 02 03 03 02 02 02 03
+001870: 01 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02
+001880: 01 01 01 01 02 02 02 01 02 02 02 03 03 03 02 02
+001890: 01 01 01 01 02 02 02 01 02 02 02 03 03 03 03 02
+0018a0: 01 01 01 01 01 02 01 01 01 01 02 03 03 03 03 02
+0018b0: 01 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02
+0018c0: 01 01 01 01 01 02 02 02 02 01 02 03 03 03 03 03
+0018d0: 01 01 01 01 02 02 02 02 02 01 02 03 03 03 03 03
+0018e0: 01 01 01 01 02 02 02 02 01 01 02 03 03 03 03 03
+0018f0: 01 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02
+001900: 03 03 02 02 01 02 02 02 02 02 02 01 01 02 01 01
+001910: 03 03 03 02 02 02 02 02 02 02 02 01 02 02 02 01
+001920: 03 03 03 02 02 02 02 02 02 02 01 01 01 02 02 02
+001930: 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01 01
+001940: 03 03 03 03 01 01 02 02 02 02 02 02 02 01 02 02
+001950: 03 03 03 03 02 01 02 02 02 02 02 02 02 01 02 02
+001960: 03 03 03 03 03 01 02 02 02 02 02 02 01 01 01 02
+001970: 02 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01
+001980: 02 03 03 03 03 03 02 01 02 02 02 02 02 02 01 01
+001990: 03 03 03 03 03 03 03 02 02 02 02 02 02 02 02 01
+0019a0: 03 03 03 03 03 03 02 02 02 02 03 03 03 03 03 02
+0019b0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0019c0: 02 02 02 03 03 03 03 03 03 02 03 03 03 03 03 03
+0019d0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+0019e0: 03 02 03 03 03 03 03 03 02 02 02 03 03 03 03 03
+0019f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001a00: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001a10: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001a20: 02 01 01 01 01 01 01 01 01 01 01 01 01 01 02 02
+001a30: 01 01 01 01 01 01 01 01 02 02 02 02 01 01 01 01
+001a40: 02 02 02 02 01 01 02 02 02 02 02 02 02 01 02 02
+001a50: 02 02 02 02 02 01 02 02 02 02 02 02 02 01 02 02
+001a60: 02 02 02 02 02 01 02 02 02 02 02 02 01 01 01 02
+001a70: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+001a80: 01 02 02 02 02 02 02 01 02 02 02 02 02 02 01 01
+001a90: 02 02 02 02 02 02 02 01 02 02 02 02 02 02 02 01
+001aa0: 03 03 02 02 02 02 01 01 01 01 02 02 02 02 02 01
+001ab0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001ac0: 02 02 02 03 03 03 03 03 03 02 03 03 03 03 03 03
+001ad0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+001ae0: 03 02 03 03 03 03 03 03 02 02 02 03 03 03 03 03
+001af0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001b00: 01 01 01 01 01 02 02 02 02 02 02 02 02 03 03 03
+001b10: 02 02 02 01 02 02 02 02 02 02 02 02 03 03 03 03
+001b20: 02 02 02 01 02 02 02 02 02 02 01 02 02 03 03 03
+001b30: 01 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02
+001b40: 02 02 02 02 01 01 02 02 02 02 02 03 03 02 03 03
+001b50: 02 02 02 02 02 01 02 02 02 02 02 03 03 02 03 03
+001b60: 02 02 02 02 02 01 02 02 02 02 02 03 02 02 02 03
+001b70: 01 01 01 01 01 01 01 01 01 01 02 02 02 02 02 02
+001b80: 01 02 02 02 02 02 02 01 02 02 03 03 03 03 02 02
+001b90: 02 02 02 02 02 02 02 01 02 03 03 03 03 03 03 02
+001ba0: 02 02 02 02 02 02 01 02 02 02 03 03 03 03 03 02
+001bb0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+001bc0: 02 02 02 03 03 03 03 03 03 02 03 03 03 03 03 03
+001bd0: 03 02 03 03 03 03 03 03 03 02 03 03 03 03 03 03
+001be0: 03 02 03 03 03 03 03 03 02 02 02 03 03 03 03 03
+001bf0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 \ No newline at end of file
diff --git a/src/static/background/crates.hex b/src/static/background/crates.hex
new file mode 100644
index 0000000..3d8b332
--- /dev/null
+++ b/src/static/background/crates.hex
@@ -0,0 +1,39 @@
+;indices: 5
+;57 72 77
+;34 1c 27
+;60 2c 2c
+;7a 48 41
+;ad 77 57
+
+000000: 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+000010: 03 04 04 04 04 04 04 04 04 04 04 04 04 04 04 03
+000020: 03 03 03 04 01 01 01 01 01 01 01 01 04 03 03 03
+000030: 03 03 02 03 04 01 01 01 01 01 01 04 03 02 03 03
+000040: 03 03 01 02 03 04 01 01 01 01 04 03 02 01 03 03
+000050: 03 03 01 01 02 03 04 01 01 04 03 02 01 01 03 03
+000060: 03 03 01 01 01 02 03 04 04 03 02 01 01 01 03 03
+000070: 03 03 01 01 01 01 02 03 03 02 01 01 01 01 03 03
+000080: 03 03 01 01 01 01 04 03 03 04 01 01 01 01 03 03
+000090: 03 03 01 01 01 04 03 02 02 03 04 01 01 01 03 03
+0000a0: 03 03 01 01 04 03 02 01 01 02 03 04 01 01 03 03
+0000b0: 03 03 01 04 03 02 01 01 01 01 02 03 04 01 03 03
+0000c0: 03 03 04 03 02 01 01 01 01 01 01 02 03 04 03 03
+0000d0: 03 03 03 02 01 01 01 01 01 01 01 01 02 03 03 03
+0000e0: 03 02 02 02 02 02 02 02 02 02 02 02 02 02 02 03
+0000f0: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000100: 01 01 01 02 01 01 01 01 01 01 01 01 02 01 01 01
+000110: 01 03 03 01 03 03 03 03 03 03 03 03 01 03 03 01
+000120: 01 03 00 01 03 03 03 03 03 03 03 03 01 00 03 01
+000130: 01 03 03 01 04 04 04 04 04 04 04 04 01 03 03 01
+000140: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+000150: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+000160: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+000170: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+000180: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+000190: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+0001a0: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+0001b0: 01 03 03 01 02 02 01 02 02 01 02 02 01 03 03 01
+0001c0: 01 03 03 01 04 04 04 04 04 04 04 04 01 03 03 01
+0001d0: 01 03 00 01 03 03 03 03 03 03 03 03 01 00 03 01
+0001e0: 01 03 03 01 03 03 03 03 03 03 03 03 01 03 03 01
+0001f0: 01 01 01 02 01 01 01 01 01 01 01 01 02 01 01 01 \ No newline at end of file
diff --git a/src/static/background/shop_stall.hex b/src/static/background/shop_stall.hex
new file mode 100644
index 0000000..e156bd1
--- /dev/null
+++ b/src/static/background/shop_stall.hex
@@ -0,0 +1,202 @@
+;indices: 8
+;17 20 38
+;09 0a 14
+;60 2c 2c
+;7a 48 41
+;c0 94 73
+;d7 b5 94
+;39 4a 50
+;81 97 96
+
+000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
+0000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 05
+000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0001a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0001b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0001c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0001d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0001e0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0001f0: 05 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+0002a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+0002b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+0002c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+0002d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+0002e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+0002f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 04
+000300: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000310: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000320: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000330: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000340: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000350: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000360: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000370: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000380: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000390: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0003a0: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0003b0: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0003c0: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0003d0: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0003e0: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0003f0: 04 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+000400: 05 01 04 05 05 05 05 05 05 05 05 05 05 05 05 05
+000410: 04 01 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+000420: 04 01 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000430: 04 01 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+000440: 04 01 02 02 02 02 02 02 02 02 02 02 03 03 03 03
+000450: 04 01 02 02 02 02 03 03 03 03 03 03 03 03 03 03
+000460: 04 01 02 02 03 03 03 03 03 03 03 03 03 03 03 03
+000470: 04 01 02 03 03 03 03 03 03 03 03 03 03 03 03 03
+000480: 04 01 02 03 03 03 03 03 03 03 03 03 03 03 03 03
+000490: 04 01 02 03 03 03 03 03 03 03 03 03 03 03 03 03
+0004a0: 04 01 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0004b0: 04 01 02 03 03 03 03 03 03 03 03 03 03 03 03 03
+0004c0: 04 01 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0004d0: 04 01 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0004e0: 04 01 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0004f0: 04 01 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000500: 00 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01
+000510: 00 00 00 00 00 00 00 00 01 04 04 04 04 04 04 04
+000520: 00 00 00 00 00 00 00 00 01 04 04 04 04 04 04 04
+000530: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+000540: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+000550: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+000560: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+000570: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+000580: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+000590: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+0005a0: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+0005b0: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+0005c0: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+0005d0: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+0005e0: 00 00 00 00 00 00 00 00 01 03 03 03 03 03 03 03
+0005f0: 00 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01
+000600: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000610: 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+000620: 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+000630: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000640: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000650: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000660: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000670: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000680: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+000690: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0006a0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0006b0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0006c0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0006d0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0006e0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
+0006f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000700: 05 05 05 05 05 05 05 05 05 05 05 05 05 04 01 05
+000710: 04 04 04 04 04 04 04 04 04 04 04 04 04 04 01 04
+000720: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 01 04
+000730: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 01 04
+000740: 03 03 03 03 02 02 02 02 02 02 02 02 02 02 01 04
+000750: 03 03 03 03 03 03 03 03 03 03 02 02 02 02 01 04
+000760: 03 03 03 03 03 03 03 03 03 03 03 03 02 02 01 04
+000770: 03 03 03 03 03 03 03 03 03 03 03 03 03 02 01 04
+000780: 03 03 03 03 03 03 03 03 03 03 03 03 03 02 01 04
+000790: 03 03 03 03 03 03 03 03 03 03 03 03 03 02 01 04
+0007a0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 01 04
+0007b0: 03 03 03 03 03 03 03 03 03 03 03 03 03 02 01 04
+0007c0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 01 04
+0007d0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 01 04
+0007e0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 01 04
+0007f0: 03 03 03 03 03 03 03 03 03 03 03 03 03 03 01 04
+000800: 01 01 01 01 01 01 01 00 00 00 00 00 00 00 00 00
+000810: 04 04 04 04 04 04 04 01 00 00 00 00 00 00 00 00
+000820: 04 04 04 04 04 04 04 01 00 00 00 00 00 00 00 00
+000830: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+000840: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+000850: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+000860: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+000870: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+000880: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+000890: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+0008a0: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+0008b0: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+0008c0: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+0008d0: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+0008e0: 03 03 03 03 03 03 03 01 00 00 00 00 00 00 00 00
+0008f0: 01 01 01 01 01 01 01 00 00 00 00 00 00 00 00 00
+000900: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000910: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000920: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000930: 01 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000940: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000950: 01 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000960: 01 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
+000970: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000980: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000990: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+0009a0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+0009b0: 01 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+0009c0: 01 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+0009d0: 01 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+0009e0: 01 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
+0009f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000a00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a10: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a20: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a60: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
+000a70: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000a80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000a90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000aa0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000ab0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000ac0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000ad0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
+000ae0: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
+000af0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000b00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000b10: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000b20: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000b30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 01
+000b40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000b50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 01
+000b60: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 01
+000b70: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+000b80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000b90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000ba0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000bb0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 01
+000bc0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
+000bd0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 01
+000be0: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 01
+000bf0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 \ No newline at end of file
diff --git a/src/static/epic.py b/src/static/epic.py
new file mode 100644
index 0000000..9f697ef
--- /dev/null
+++ b/src/static/epic.py
@@ -0,0 +1,41 @@
+#!/bin/python3
+import re
+
+# Read in the first file and extract the id and image filename for each tile
+tile_info = {}
+with open('stuff1.tsx', 'r') as f:
+ for line in f:
+ id_match = re.match(r'<tile id="(\d+)">', line.strip())
+ if id_match:
+ tile_id = int(id_match.group(1))
+ else:
+ image_match = re.search(r'source=".*?/(\w+_\d+\.png)"', line.strip())
+ if image_match:
+ image_filename = image_match.group(1)
+ tile_info[tile_id] = image_filename
+
+# Read in the second file and extract the size for each tile
+tile_sizes = {}
+with open('tilemap.h', 'r') as f:
+ for line in f:
+ size_match = re.match(r'#define HH_TM_(\w+)_OFFSET (\d+)', line.strip(), re.IGNORECASE)
+ if size_match:
+ tile_type = size_match.group(1).lower()
+ size = int(size_match.group(2))
+ tile_sizes[tile_type] = size
+
+# Read in the third file, update the values, and write to the output file
+with open('map.csv', 'r') as input_file, open('out.csv', 'w') as output_file:
+ for line in input_file:
+# #OK
+ tile_ids = [int(tile_id) for tile_id in line.strip().split(',')]
+ updated_tile_ids = []
+ for tile_id in tile_ids:
+ image_filename = re.match(r'(\w+)_(\d+)\.png', tile_info[tile_id])
+ tile_type = image_filename.group(1).lower()
+ offset = int(image_filename.group(2))
+ size = tile_sizes[tile_type]
+ updated_tile_id = offset + size
+ updated_tile_ids.append(str(updated_tile_id))
+ output_file.write(','.join(updated_tile_ids) + '\n')
+
diff --git a/src/static/makefile b/src/static/makefile
index 6025a55..9a17326 100644
--- a/src/static/makefile
+++ b/src/static/makefile
@@ -5,8 +5,14 @@ TILEDMK := ../../scripts/tiled.mk.awk
TILEMAP2TILED := ../../scripts/tilemap2tiled
INPUT += air.hex \
- shop.hex \
- slime.hex \
+ background/bricks.hex \
+ background/crates.hex \
+ background/shop_stall.hex \
+ background/shop.hex \
+ background/title_screen_icon.hex \
+ foreground/title_screen_letteres_large.hex\
+ foreground/slime.hex \
+ foreground/font.hex \
world.hex
USER_META += world.h