#pragma once #include #include "ppu/types.h" // handles sprites // Bg sprites // Fg or entity sprites //TODO: pack data inside of sprite_palette LUT //HH_PPU_PALETTE_COUNT #define HH_SPRITE_COUNT 40 #define HH_PAL_IDX_SKY 0 #define HH_PAL_IDX_BRICK 1 const static uint8_t hh_g_sprite_palette[HH_SPRITE_COUNT] = { 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 //other palettes here: }; const static hh_ppu_loc_palette_table_t hh_g_palette = { {//palette info here {0x1,0x2,0x3}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {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}}, {//slime {0x1,0x2,0x3}, {0x1,0x3,0x2}, {0x4,0x8,0x3}, {0x7,0xa,0x4}, {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}, {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}, {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}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}}, { {0x0,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0x0,0xf}, {0xf,0xf,0x0}, {0xf,0x0,0x0}, {0x0,0xf,0x0}, {0x0,0x0,0xf}, {0x0,0x0,0x0}} }; void hh_setup_palettes(); /** @brief return palette index that belongs to tilemap index */ uint8_t hh_get_palette(uint8_t tile_idx); bool hh_colidable(uint8_t tile_idx);