1#ifndef YAZE_ZELDA3_OVERWORLD_DIGGABLE_TILES_H
2#define YAZE_ZELDA3_OVERWORLD_DIGGABLE_TILES_H
26 0x0034, 0x0071, 0x0035, 0x010D, 0x010F,
27 0x00E1, 0x00E2, 0x00DA, 0x00F8, 0x010E
79 void ToBytes(uint8_t* data)
const;
84 const std::array<uint8_t, kDiggableTilesBitfieldSize>&
GetRawData()
const {
100 const std::array<uint8_t, 0x200>& all_tiles_types);
103 std::array<uint8_t, kDiggableTilesBitfieldSize>
bitfield_ = {};
Tile composition of four 8x8 tiles.
Manages diggable tile state as a 512-bit bitfield.
void ToBytes(uint8_t *data) const
Write bitfield to raw bytes (64 bytes).
int GetDiggableCount() const
Get the count of tiles marked as diggable.
void SetVanillaDefaults()
Reset to vanilla diggable tiles.
void FromBytes(const uint8_t *data)
Load bitfield from raw bytes (64 bytes).
void SetDiggable(uint16_t tile_id, bool diggable)
Set or clear the diggable bit for a Map16 tile ID.
static bool IsTile16Diggable(const gfx::Tile16 &tile16, const std::array< uint8_t, 0x200 > &all_tiles_types)
Check if a Tile16 should be diggable based on its component tiles.
std::vector< uint16_t > GetAllDiggableTileIds() const
Get all tile IDs that are currently marked as diggable.
const std::array< uint8_t, kDiggableTilesBitfieldSize > & GetRawData() const
Get raw bitfield data for direct ROM writing.
bool IsDiggable(uint16_t tile_id) const
Check if a Map16 tile ID is marked as diggable.
std::array< uint8_t, kDiggableTilesBitfieldSize > bitfield_
void Clear()
Clear all diggable bits.
Zelda 3 specific classes and functions.
constexpr int kDiggableTilesBitfieldSize
constexpr uint8_t kTileTypeDiggable1
constexpr uint8_t kTileTypeDiggable2
constexpr int kOverworldCustomDiggableTilesEnabled
constexpr int kNumVanillaDiggableTiles
constexpr int kOverworldCustomDiggableTilesArray
constexpr int kMaxDiggableTileId
constexpr uint16_t kVanillaDiggableTiles[]