aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demo.c2
-rw-r--r--src/engine/animator.c6
-rw-r--r--src/engine/bullet.c4
-rw-r--r--src/engine/level_const.c19
-rw-r--r--src/engine/level_const.h1
-rw-r--r--src/engine/sprite_controller.c12
-rw-r--r--src/engine/sprite_controller.h67
-rw-r--r--src/game_loop/gameplay.c40
-rw-r--r--src/game_loop/shop.c12
-rw-r--r--src/game_loop/shop.h4
-rw-r--r--src/static/.gitignore1
-rw-r--r--src/static/background/air.hex (renamed from src/static/air.hex)0
-rw-r--r--src/static/epic.py2
-rw-r--r--src/static/hh.tiled-project12
-rw-r--r--src/static/makefile3
-rw-r--r--src/static/shop.hex331
-rw-r--r--src/static/slime.hex24
17 files changed, 118 insertions, 422 deletions
diff --git a/src/demo.c b/src/demo.c
index 8e7af93..20f8381 100644
--- a/src/demo.c
+++ b/src/demo.c
@@ -59,7 +59,7 @@ void hh_demo_loop(unsigned long frame) {
}
break;
case hh_e_state_shop:
- hh_shop(&hh_game_states);
+ hh_shop(&hh_game_states, &hh_game.shop);
break;
case hh_e_state_gameplay:
hh_gameplay(&hh_game, &hh_game_states);
diff --git a/src/engine/animator.c b/src/engine/animator.c
index 3d46ea0..e293eb1 100644
--- a/src/engine/animator.c
+++ b/src/engine/animator.c
@@ -16,10 +16,10 @@ void hh_animate_hit(hh_s_rendering* in, bool hit) {
}
void hh_animate(hh_s_rendering* in, uint16_t start, uint16_t end, uint8_t step) {
- if (in->fam.palette_index >= start && in->fam.palette_index < end) {
- in->fam.palette_index += step;
+ if (in->fam.tilemap_index >= start && in->fam.tilemap_index < end) {
+ in->fam.tilemap_index += step;
} else {// rollover
- in->fam.palette_index = start;
+ in->fam.tilemap_index = start;
}
}
diff --git a/src/engine/bullet.c b/src/engine/bullet.c
index eb9a8bb..3251472 100644
--- a/src/engine/bullet.c
+++ b/src/engine/bullet.c
@@ -18,13 +18,13 @@ hh_entity* hh_init_bullets(int size) {
.vel = (vec2){0,0},
.size = (vec2) { 13,16},
.render = {
- .frame0 = 84,
+ .frame0 = HH_TM_BULLET_OFFSET,
.palette = 3,
.fam = (hh_s_ppu_loc_fam_entry){
.horizontal_flip = false,
.vertical_flip = false,
.palette_index = 7,
- .tilemap_index = 84,
+ .tilemap_index = HH_TM_BULLET_OFFSET,
}
}
};
diff --git a/src/engine/level_const.c b/src/engine/level_const.c
index 5d5f5e0..2522814 100644
--- a/src/engine/level_const.c
+++ b/src/engine/level_const.c
@@ -5,9 +5,13 @@
hh_g_all_levels hh_init_game_levels(){
hh_g_all_levels levels;
levels.current_level=1;
+
+ levels.shop.size.x=40;
+ levels.shop.size.y=15;
+ levels.shop.hh_level_completed=false;
levels.level[0].size.x=40;
- levels.level[0].size.y=15;
+ levels.level[0].size.y=100;
levels.level[0].hh_level_completed=false;
levels.level[1].size.x=100;
@@ -38,6 +42,19 @@ hh_g_all_levels hh_init_game_levels(){
fread(hh_game_level2, sizeof(int), size, lvl2);
fclose(lvl2);
+ FILE *shop = fopen("static/shop_new.bin", "rb");
+ if (shop == NULL) {
+ printf("shop.bin not found!\n");
+ return levels;
+ }
+ fseek(shop, 0, SEEK_END);
+ size = ftell(shop) / sizeof(int);
+ fseek(shop, (0 * sizeof(int)) + sizeof(int), SEEK_SET);
+ int* hh_game_shop = malloc(size * sizeof(int));
+ fread(hh_game_shop, sizeof(int), size, shop);
+ fclose(shop);
+
+ levels.shop.place = hh_game_shop;
levels.level[0].place = hh_game_level1;
levels.level[1].place = hh_game_level2;
diff --git a/src/engine/level_const.h b/src/engine/level_const.h
index 6275b72..a17993e 100644
--- a/src/engine/level_const.h
+++ b/src/engine/level_const.h
@@ -23,6 +23,7 @@ typedef struct {
typedef struct {
hh_level_entity level[2];
+ hh_level_entity shop;
int current_level;
diff --git a/src/engine/sprite_controller.c b/src/engine/sprite_controller.c
index b38b647..d386d0f 100644
--- a/src/engine/sprite_controller.c
+++ b/src/engine/sprite_controller.c
@@ -5,8 +5,18 @@
#include "ppu/consts.h"
#include "ppu/ppu.h"
+#include "static/tilemap.h"
+
+
uint8_t hh_get_palette(uint8_t tile_idx) {
- return hh_g_sprite_palette[tile_idx];
+ for (int i = 0; i < HH_TM_GROUPS; i++) {
+ if (hh_palette_lut[i] > tile_idx){
+ return hh_g_sprite_palette[i-1];
+ }
+ }
+
+ return 0; //not found
+ // return hh_g_sprite_palette[tile_idx];
}
void hh_setup_palettes(){
diff --git a/src/engine/sprite_controller.h b/src/engine/sprite_controller.h
index d89b068..3693850 100644
--- a/src/engine/sprite_controller.h
+++ b/src/engine/sprite_controller.h
@@ -3,6 +3,8 @@
#include "ppu/types.h"
+#include "static/tilemap.h"
+
// handles sprites
// Bg sprites
@@ -11,28 +13,29 @@
//TODO: pack data inside of sprite_palette LUT
//HH_PPU_PALETTE_COUNT
-#define HH_SPRITE_COUNT 80
+
#define HH_PAL_IDX_SKY 0
#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
- 1,1,1,1,1,1,1,1,1, //9
- 7,7,7,2,7,7,1,2,7,
- 7,7,7,7, //??
+#define HH_PAL_IDX_SLIME 2
+#define HH_PAL_IDX_CRATE 4
+#define HH_PAL_IDX_SHOP 5
+#define HH_PAL_IDX_TITLE_SCREEN_ICON 3
+#define HH_PAL_IDX_FONT 6
+#define HH_PAL_IDX_DEV 7
+const static uint8_t hh_g_sprite_palette[HH_TM_GROUPS] = {
+ HH_PAL_IDX_SKY,
+ HH_PAL_IDX_BRICK,
+ HH_PAL_IDX_CRATE,
+ HH_PAL_IDX_SHOP,
+ // HH_PAL_IDX_SHOP,
+ HH_PAL_IDX_TITLE_SCREEN_ICON,
+ HH_PAL_IDX_FONT,
+ HH_PAL_IDX_SKY,
+ HH_PAL_IDX_DEV,
+ HH_PAL_IDX_SLIME,
+ HH_PAL_IDX_DEV
+ // HH_PAL_IDX_FONT
- 7,6,6,6,6,6,6,6, //baskets
- 7,7,7,7,7,7,7,7,7,7, //shop
- 7,7,7,7,7, //shop
- 6,6,6,6,6, //(hi-)score
-
- 3,3,3,3,3,3, //title_screen icon
- 6,6,6,6,/*6,6,6,6,6,6, //title_screen large letters
- 6,6,6,6,*/
- //other palettes here:
- // [HH_PAL_IDX_SKY] = 0,
};
@@ -82,15 +85,23 @@ const static hh_ppu_loc_palette_table_t hh_g_palette = {
{0x0,0x0,0x0},
{0x0,0x0,0x0},
{0x0,0x0,0x0}},
- {
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0},
- {0x0,0x0,0x0}},
+ {//shop
+ // {0x1,0x2,0x3},
+ // {0x0,0x0,0x1},
+ // {0x0,0x0,0x0},
+ // {0x0,0x0,0x0},
+ // {0x0,0x0,0x0},
+ // {0x0,0x0,0x0},
+ // {0x0,0x0,0x0},
+ // {0x0,0x0,0x0}},
+ {0x1, 0x2, 0x3},//0
+ {0x0, 0x0, 0x1},//1
+ {0x6, 0x2, 0x2},//2
+ {0x7, 0x4, 0x4},//3
+ {0xc, 0x9, 0x7},//4
+ {0xd, 0xb, 0x9},//5
+ {0x3, 0x4, 0x5},//6
+ {0x8, 0x9, 0x9}},
{//white
{0x1,0x2,0x3},
{0xf,0xf,0xf},
diff --git a/src/game_loop/gameplay.c b/src/game_loop/gameplay.c
index a7ce5b6..384ce40 100644
--- a/src/game_loop/gameplay.c
+++ b/src/game_loop/gameplay.c
@@ -12,9 +12,9 @@ void hh_gameplay(hh_g_all_levels* game, hh_e_game_state* hh_game_state){
.speed = 6,
.is_grounded = false,
.is_hit = false,
- .radius = 16,
- .pos = (vec2){32,32},
- .size = (vec2){32,32},
+ .radius = 8,
+ .pos = (vec2){32,200},
+ .size = (vec2){16,32},
.vel = (vec2){0,0},
.render = {
.frame0 = HH_TM_GOZER_OFFSET,
@@ -41,16 +41,16 @@ void hh_gameplay(hh_g_all_levels* game, hh_e_game_state* hh_game_state){
// .vec = (vec2){0,0},
.render = {
.frame0 = HH_TM_SLIME_OFFSET,
- .palette = 7,
+ .palette = 2,
.fam = (hh_s_ppu_loc_fam_entry){
.horizontal_flip = false,
.vertical_flip = false,
- .palette_index = 7,
+ .palette_index = 2,
.tilemap_index = HH_TM_SLIME_OFFSET,
}
}
};
- static int total_bullets = 5;
+ static int total_bullets = 15;
switch (gameplay)
{
case hh_e_setup_screen:
@@ -79,15 +79,15 @@ void hh_gameplay(hh_g_all_levels* game, hh_e_game_state* hh_game_state){
}
break;
case hh_e_level_complete:
- // TODO: from complete to shop or game_over
- if(game->current_level < 3){
- game->current_level+=1;
- gameplay = hh_e_setup_screen;
- }
- else {
+ // // TODO: from complete to shop or game_over
+ // if(game->current_level < 3){
+ // game->current_level+=1;
+ // gameplay = hh_e_setup_screen;
+ // }
+ // else {
- gameplay = hh_e_game_over;
- }
+ // gameplay = hh_e_game_over;
+ // }
break;
case hh_e_game_over:
// todo make reset levels
@@ -108,16 +108,16 @@ void hh_reset_levels(hh_entity* player){
.is_hit = false,
.radius = 16,
.pos = (vec2){32,32},
- .size = (vec2){32,32},
+ .size = (vec2){16,32},
.vel = (vec2){0,0},
.render = {
- .frame0 = 3,
+ .frame0 = HH_TM_GOZER_OFFSET,
.palette = 3,
.fam = (hh_s_ppu_loc_fam_entry){
.horizontal_flip = false,
.vertical_flip = false,
.palette_index = 3,
- .tilemap_index = 80,
+ .tilemap_index = HH_TM_GOZER_OFFSET,
}
}
};
@@ -127,12 +127,12 @@ void hh_reset_levels(hh_entity* player){
void hh_render_all_entities(hh_entity* player, hh_entity* bullets, hh_entity* enemies, int bullet_size, int enemy_size, vec_cor cam_pos){
int index = 0;
- hh_update_sprite(0 , player, cam_pos);
+ hh_update_sprite(&index , player, cam_pos);
for (int i = 0; i < bullet_size; i++) {
- hh_update_sprite(i+5,&bullets[i],cam_pos);
+ hh_update_sprite(&index,&bullets[i],cam_pos);
}
for (int i = 0; i < enemy_size; i++) {
- hh_update_sprite(i+5+bullet_size,&enemies[i],cam_pos);
+ hh_update_sprite(&index,&enemies[i],cam_pos);
}
}
diff --git a/src/game_loop/shop.c b/src/game_loop/shop.c
index eb41248..da27524 100644
--- a/src/game_loop/shop.c
+++ b/src/game_loop/shop.c
@@ -2,7 +2,7 @@
#include "engine/maths.h"
#include "ppu/ppu.h"
-void hh_shop(hh_e_game_state* hh_game_state){
+void hh_shop(hh_e_game_state* hh_game_state, hh_level_entity* level_shop){
static hh_e_shop_states hh_e_shop = hh_e_shop_show;
static hh_e_upgrades upgrades[HH_SHOP_UPG_DISPLAY] = {0};
static uint8_t selected = 0;
@@ -11,11 +11,11 @@ void hh_shop(hh_e_game_state* hh_game_state){
switch (hh_e_shop)
{
case hh_e_shop_show:
- hh_clear_screen();
- hh_clear_sprite();
+ // hh_clear_screen();
+ // hh_clear_sprite();
// TODO: make function to show shop
- // hh_setup_screen();
//hh_setup_shop();
+ hh_setup_screen(*level_shop);
hh_shop_init(&upgrades);
selected = HH_SHOP_UPG_DISPLAY/2;
hh_shop_display(selected, &upgrades);
@@ -33,7 +33,7 @@ void hh_shop(hh_e_game_state* hh_game_state){
}
if(g_hh_controller_p1.button_primary){
//apply selected upgrade
- hh_e_shop = hh_e_shop_end;
+ // hh_e_shop = hh_e_shop_end;
}
if(g_hh_controller_p1.button_secondary){//Quick exit
hh_e_shop = hh_e_shop_end;
@@ -60,7 +60,7 @@ void hh_shop_init(hh_e_upgrades* in) {
}
void hh_shop_display(uint8_t selected, hh_e_upgrades* upgrades) {
- const vec_cor start = {48,16};
+ const vec_cor start = {104,144+16};
const uint8_t up = 8,
space = 24+8;
diff --git a/src/game_loop/shop.h b/src/game_loop/shop.h
index 642bcc3..6f8f5a7 100644
--- a/src/game_loop/shop.h
+++ b/src/game_loop/shop.h
@@ -17,7 +17,7 @@ typedef enum {
/** @brief amount of upgrade types */
#define HH_SHOP_UPG_COUNT 5
/** @brief count of visible upgrades in shop */
-#define HH_SHOP_UPG_DISPLAY 5
+#define HH_SHOP_UPG_DISPLAY 4
/** @brief all possible upgrades */
typedef enum {
hh_e_upg_jump,
@@ -34,4 +34,4 @@ void hh_shop_display(uint8_t selected, hh_e_upgrades* upgrades);
/** @brief moves 'cursor' through selection field */
void hh_shift_selected(uint8_t* pos, bool dir, uint8_t min, uint8_t max);
-void hh_shop(hh_e_game_state*);
+void hh_shop(hh_e_game_state* ,hh_level_entity* );
diff --git a/src/static/.gitignore b/src/static/.gitignore
index 6111050..746c28c 100644
--- a/src/static/.gitignore
+++ b/src/static/.gitignore
@@ -7,3 +7,4 @@ tiled.mk
*.tsx
*.csv
*.out
+*.tiled-session
diff --git a/src/static/air.hex b/src/static/background/air.hex
index 5160cd6..5160cd6 100644
--- a/src/static/air.hex
+++ b/src/static/background/air.hex
diff --git a/src/static/epic.py b/src/static/epic.py
index 9f697ef..f00cf86 100644
--- a/src/static/epic.py
+++ b/src/static/epic.py
@@ -3,7 +3,7 @@ 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:
+with open('dynamic.tsx', 'r') as f:
for line in f:
id_match = re.match(r'<tile id="(\d+)">', line.strip())
if id_match:
diff --git a/src/static/hh.tiled-project b/src/static/hh.tiled-project
new file mode 100644
index 0000000..2805678
--- /dev/null
+++ b/src/static/hh.tiled-project
@@ -0,0 +1,12 @@
+{
+ "automappingRulesFile": "",
+ "commands": [
+ ],
+ "compatibilityVersion": 1100,
+ "extensionsPath": "extensions",
+ "folders": [
+ "."
+ ],
+ "propertyTypes": [
+ ]
+}
diff --git a/src/static/makefile b/src/static/makefile
index 9c75bca..ba9b304 100644
--- a/src/static/makefile
+++ b/src/static/makefile
@@ -4,11 +4,10 @@ MANIFEST2HEADER := ../../scripts/manifest2header.awk
TILEDMK := ../../scripts/tiled.mk.awk
TILEMAP2TILED := ../../scripts/tilemap2tiled
-INPUT += air.hex \
+INPUT += background/air.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/bullet.hex \
diff --git a/src/static/shop.hex b/src/static/shop.hex
deleted file mode 100644
index 8c08feb..0000000
--- a/src/static/shop.hex
+++ /dev/null
@@ -1,331 +0,0 @@
-;indices: 9
-;75 24 38
-;a5 30 30
-;cf 57 3c
-;1e 1d 39
-;40 27 51
-;7a 36 7b
-;10 14 1f
-;eb ed e9
-;17 20 38
-
-000000: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
-000010: 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
-000020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000040: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000050: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000070: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000080: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-000090: 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01
-0000a0: 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01
-0000b0: 06 06 01 00 00 00 00 00 00 00 00 00 00 00 01 06
-0000c0: 06 06 06 01 00 00 00 00 00 00 00 00 00 01 06 06
-0000d0: 06 06 06 06 01 01 00 00 00 00 00 01 01 06 06 06
-0000e0: 06 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06
-0000f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000100: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000110: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000120: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000130: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000140: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000150: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000160: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000170: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000180: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000190: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0001a0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0001b0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0001c0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0001d0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0001e0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0001f0: 07 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000200: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000210: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000220: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000230: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000240: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000250: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000260: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000270: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000280: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000290: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0002a0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0002b0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0002c0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0002d0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0002e0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0002f0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000300: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000310: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000320: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000330: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000340: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000350: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000360: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000370: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000380: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000390: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-0003a0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-0003b0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-0003c0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-0003d0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-0003e0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-0003f0: 06 06 06 06 06 06 06 07 07 06 06 06 06 06 06 06
-000400: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
-000410: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
-000420: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000430: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000440: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000450: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000460: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000470: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000480: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000490: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0004a0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0004b0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0004c0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0004d0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0004e0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-0004f0: 06 06 06 06 06 06 06 06 06 06 06 07 07 06 06 06
-000500: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-000510: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-000520: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000530: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000540: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000550: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000560: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000570: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000580: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000590: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0005a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0005b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0005c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0005d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0005e0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-0005f0: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-000600: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06
-000610: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06
-000620: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000630: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000640: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000650: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000660: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000670: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000680: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-000690: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-0006a0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-0006b0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-0006c0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-0006d0: 06 06 06 06 06 06 01 01 06 06 06 06 06 06 06 06
-0006e0: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06
-0006f0: 01 01 01 01 01 01 01 01 06 06 06 06 06 06 06 06
-000700: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 01 01
-000710: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01
-000720: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 01
-000730: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 01 01
-000740: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 01 01
-000750: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 01 01
-000760: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 01 01
-000770: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 01 01
-000780: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 01 01
-000790: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01
-0007a0: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 01 01
-0007b0: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 01 01
-0007c0: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 01 01
-0007d0: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 01 01
-0007e0: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 01 01
-0007f0: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 01 01
-000800: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01
-000810: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06
-000820: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06
-000830: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06
-000840: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06
-000850: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06
-000860: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06
-000870: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06
-000880: 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01
-000890: 06 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06
-0008a0: 06 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06
-0008b0: 06 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06
-0008c0: 06 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06
-0008d0: 06 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06
-0008e0: 06 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06
-0008f0: 01 06 06 06 06 06 06 06 01 06 06 06 06 06 06 06
-000900: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-000910: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-000920: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000930: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000940: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000950: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000960: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000970: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000980: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000990: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0009a0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0009b0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0009c0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0009d0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0009e0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0009f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000a00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000a10: 06 06 06 01 01 06 06 06 06 06 06 06 06 06 06 06
-000a20: 06 06 01 01 01 01 06 06 06 06 06 06 06 06 06 06
-000a30: 06 01 01 01 01 01 01 06 06 06 06 06 06 06 06 06
-000a40: 06 01 01 01 01 01 01 06 06 06 06 06 06 06 06 06
-000a50: 06 06 01 01 01 01 06 06 06 06 06 06 06 06 06 06
-000a60: 06 06 06 01 01 06 06 06 06 06 06 06 06 06 06 06
-000a70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000a80: 06 06 06 06 06 06 06 06 06 06 01 01 06 06 06 06
-000a90: 06 06 06 06 06 06 06 06 06 01 01 01 01 06 06 06
-000aa0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 06 06
-000ab0: 06 06 06 06 06 06 06 06 01 01 01 01 01 01 06 06
-000ac0: 06 06 06 06 06 06 06 06 06 01 01 01 01 06 06 06
-000ad0: 06 06 06 06 06 06 06 06 06 06 01 01 06 06 06 06
-000ae0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000af0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b00: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b10: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b20: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b30: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b40: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b50: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b60: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b70: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b80: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000b90: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000ba0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000bb0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000bc0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000bd0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000be0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000bf0: 06 01 01 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c10: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c20: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000c60: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
-000c70: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000c80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000c90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000ca0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000cb0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000cc0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000cd0: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 01
-000ce0: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 01
-000cf0: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01
-000d00: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01
-000d10: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 01
-000d20: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 01
-000d30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000d40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000d50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000d60: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 01
-000d70: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 01
-000d80: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01
-000d90: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 01
-000da0: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 01
-000db0: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 01
-000dc0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000dd0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000de0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000df0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 01
-000e00: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06
-000e10: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 06
-000e20: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 06
-000e30: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000e40: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000e50: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000e60: 06 06 06 06 06 06 01 01 01 01 06 06 06 06 06 06
-000e70: 06 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06
-000e80: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06
-000e90: 06 06 06 06 01 01 01 01 01 01 06 06 06 06 06 06
-000ea0: 06 06 06 06 01 01 01 01 01 06 06 06 06 06 06 06
-000eb0: 06 06 06 06 01 01 01 01 06 06 06 06 06 06 06 06
-000ec0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000ed0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000ee0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000ef0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000f00: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000f10: 06 07 07 06 07 06 07 07 07 07 06 06 06 06 06 06
-000f20: 06 07 07 06 07 06 06 07 07 06 06 06 06 06 06 06
-000f30: 06 07 07 07 07 06 06 07 07 06 06 07 07 07 07 06
-000f40: 06 07 07 06 07 06 06 07 07 06 06 06 06 06 06 06
-000f50: 06 07 07 06 07 06 07 07 07 07 06 06 06 06 06 06
-000f60: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000f70: 06 07 07 07 07 07 07 07 07 07 07 07 07 07 07 06
-000f80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000f90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-000fa0: 06 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06
-000fb0: 06 07 06 06 06 06 07 07 06 06 06 07 07 06 07 06
-000fc0: 06 07 07 07 07 06 07 07 06 06 06 07 07 06 07 06
-000fd0: 06 06 06 07 07 06 07 07 06 06 06 07 07 06 07 06
-000fe0: 06 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06
-000ff0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001000: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001010: 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 07
-001020: 07 06 06 06 06 07 07 06 06 06 07 07 06 07 06 07
-001030: 07 07 07 07 06 07 07 06 06 06 07 07 06 07 06 07
-001040: 06 06 07 07 06 07 07 06 06 06 07 07 06 07 06 07
-001050: 07 07 07 07 06 07 07 07 07 06 07 07 07 07 06 07
-001060: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001070: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001080: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001090: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0010a0: 07 07 07 07 06 07 07 07 07 06 07 07 06 06 06 06
-0010b0: 07 07 06 07 06 07 07 06 06 06 07 07 06 06 06 06
-0010c0: 07 07 07 06 06 07 07 07 07 06 06 06 06 06 06 07
-0010d0: 07 07 06 07 06 07 07 06 06 06 07 07 06 06 07 06
-0010e0: 07 07 06 07 06 07 07 07 07 06 07 07 06 06 07 07
-0010f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001100: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001110: 07 07 07 06 07 07 07 07 06 07 07 06 06 06 06 06
-001120: 07 06 07 06 07 07 06 06 06 07 07 06 06 06 06 07
-001130: 07 07 06 06 07 07 07 07 06 06 06 06 06 06 07 07
-001140: 07 06 07 06 07 07 06 06 06 07 07 06 06 07 06 07
-001150: 07 06 07 06 07 07 07 07 06 07 07 06 06 07 07 07
-001160: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001170: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001180: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001190: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0011a0: 06 07 07 07 06 06 06 06 06 07 07 06 06 06 06 07
-0011b0: 07 06 07 07 06 06 06 06 07 07 07 06 06 06 06 06
-0011c0: 06 07 07 06 06 06 06 07 07 07 06 06 06 07 07 07
-0011d0: 07 07 06 06 06 06 07 07 07 06 06 06 07 07 06 06
-0011e0: 07 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06
-0011f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001200: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001210: 07 07 07 06 06 07 07 07 07 07 06 06 06 06 07 07
-001220: 07 07 06 06 06 06 06 07 07 07 06 06 06 07 06 07
-001230: 07 06 06 06 06 06 07 07 07 06 06 06 07 07 07 07
-001240: 07 06 06 06 06 07 07 07 06 06 06 07 06 07 07 06
-001250: 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06 06
-001260: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001270: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001280: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001290: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0012a0: 07 07 06 06 06 06 07 07 07 06 06 06 07 06 06 07
-0012b0: 07 07 06 06 07 06 06 07 07 06 06 07 06 06 07 07
-0012c0: 07 06 06 06 06 07 07 07 06 06 06 06 07 07 07 06
-0012d0: 06 06 06 07 06 07 07 06 06 06 06 07 07 07 06 06
-0012e0: 06 06 06 07 07 07 06 06 06 06 07 07 07 06 06 06
-0012f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001300: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001310: 07 06 06 06 06 07 07 07 06 06 06 06 06 06 06 06
-001320: 07 06 06 06 07 06 07 07 06 06 06 06 06 06 06 06
-001330: 06 06 06 06 07 07 07 06 06 06 06 06 06 06 06 06
-001340: 06 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06
-001350: 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06
-001360: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001370: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001380: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-001390: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
-0013a0: 06 06 06 07 07 07 07 06 06 06 06 06 06 06 06 06
-0013b0: 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06 06
-0013c0: 06 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06
-0013d0: 06 06 06 07 07 06 06 06 06 06 06 06 06 06 06 06
-0013e0: 06 07 07 07 06 06 06 06 06 06 06 06 06 06 06 06
-0013f0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 \ No newline at end of file
diff --git a/src/static/slime.hex b/src/static/slime.hex
deleted file mode 100644
index ce20533..0000000
--- a/src/static/slime.hex
+++ /dev/null
@@ -1,24 +0,0 @@
-;slime sprite
-;indices: 4
-;23 32 56
-;25 51 45
-;70 130 50
-;117 167 67
-
-00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-40: 00 00 00 00 01 01 01 01 01 01 00 00 00 00 00 00
-50: 00 00 00 01 03 03 03 03 03 03 01 00 00 00 00 00
-60: 00 00 01 03 03 03 03 03 03 03 03 01 00 00 00 00
-70: 00 01 03 03 03 03 03 03 03 01 02 03 01 00 00 00
-80: 01 03 03 03 01 02 03 03 03 01 01 03 03 01 00 00
-90: 01 03 03 03 01 01 03 03 03 03 03 03 03 03 01 00
-a0: 01 03 03 03 03 03 03 03 02 03 03 03 03 03 02 01
-b0: 01 02 03 03 03 03 03 03 03 03 03 03 03 02 02 01
-c0: 00 01 02 03 03 03 03 03 03 03 03 02 02 02 02 01
-d0: 00 00 01 02 02 03 03 03 02 02 02 02 02 02 01 00
-e0: 00 00 00 01 02 02 02 02 02 02 02 02 02 01 00 00
-f0: 00 00 00 00 01 01 01 01 01 01 01 01 01 00 00 00
-