1#ifndef YAZE_APP_ZELDA3_SPRITE_H
2#define YAZE_APP_ZELDA3_SPRITE_H
38 Sprite(
const std::vector<uint8_t>& src, uint8_t overworld_map_id, uint8_t
id,
40 :
map_id_(static_cast<int>(overworld_map_id)),
61 if (((
subtype & 0x07) == 0x07) &&
id > 0 &&
id <= 0x1A) {
67 void InitSprite(
const std::vector<uint8_t>& src, uint8_t overworld_map_id,
68 uint8_t
id, uint8_t
x, uint8_t
y,
int map_x,
int map_y) {
71 map_id_ =
static_cast<int>(overworld_map_id);
87 bool mirror_x =
false,
bool mirror_y =
false,
88 int sizex = 2,
int sizey = 2);
91 const void* context =
nullptr)
override;
97 auto x()
const {
return x_; }
98 auto y()
const {
return y_; }
Base class for all overworld and dungeon entities.
enum yaze::zelda3::GameEntity::EntityType entity_type_
A class for managing sprites in the overworld and underworld.
std::vector< uint8_t > preview_gfx_
Sprite(const std::vector< uint8_t > &src, uint8_t overworld_map_id, uint8_t id, uint8_t x, uint8_t y, int map_x, int map_y)
void UpdateMapProperties(uint16_t map_id, const void *context=nullptr) override
Update entity properties based on map position.
void DrawSpriteTile(int x, int y, int srcx, int srcy, int pal, bool mirror_x=false, bool mirror_y=false, int sizex=2, int sizey=2)
void InitSprite(const std::vector< uint8_t > &src, uint8_t overworld_map_id, uint8_t id, uint8_t x, uint8_t y, int map_x, int map_y)
std::vector< uint8_t > current_gfx_
void UpdateCoordinates(int map_x, int map_y)
auto set_key_drop(int key)
Sprite(uint8_t id, uint8_t x, uint8_t y, uint8_t subtype, uint8_t layer)
auto preview_graphics() const
auto set_deleted(bool deleted)
const std::string kOverlordNames[26]
const size_t kSpriteNameCount
const std::string kSpriteDefaultNames[256]
const char *const kSpriteNames[]
bool PreferHmagicSpriteNames()
void SetPreferHmagicSpriteNames(bool prefer)
const char * ResolveSpriteName(uint16_t id)
SDL2/SDL3 compatibility layer.