#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 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: 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, //?? 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: }; 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}}, {//player //TODO: use one less color && update player indexed sprites {0x0,0x0,0x0}, {0x1,0x1,0x1}, {0x4,0x2,0x5}, {0x7,0x3,0x7}, {0x1,0x1,0x3}, {0xe,0xe,0xe}, {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}}, {//elemental {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}, {0x0,0x0,0x0}}, {//white {0x1,0x2,0x3}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}, {0xf,0xf,0xf}}, {//Dev palette (7) {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);