yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::zelda3::OverworldMap Class Reference

Represents a single Overworld map screen. More...

#include <overworld_map.h>

Inheritance diagram for yaze::zelda3::OverworldMap:
Collaboration diagram for yaze::zelda3::OverworldMap:

Public Member Functions

 OverworldMap ()=default
 
 OverworldMap (int index, Rom &rom)
 
absl::Status BuildMap (int count, int game_state, int world, std::vector< gfx::Tile16 > &tiles16, OverworldBlockset &world_blockset)
 
void LoadAreaGraphics ()
 
absl::Status LoadPalette ()
 
absl::Status BuildTileset ()
 
absl::Status BuildTiles16Gfx (std::vector< gfx::Tile16 > &tiles16, int count)
 
absl::Status BuildBitmap (OverworldBlockset &world_blockset)
 
void DrawAnimatedTiles ()
 
auto current_tile16_blockset () const
 
auto current_graphics () const
 
auto current_palette () const
 
auto bitmap_data () const
 
auto is_large_map () const
 
auto is_initialized () const
 
auto parent () const
 
auto mutable_mosaic ()
 
auto mutable_current_palette ()
 
auto area_graphics () const
 
auto area_palette () const
 
auto sprite_graphics (int i) const
 
auto sprite_palette (int i) const
 
auto message_id () const
 
auto area_music (int i) const
 
auto static_graphics (int i) const
 
auto large_index () const
 
auto mutable_current_graphics ()
 
auto mutable_area_graphics ()
 
auto mutable_area_palette ()
 
auto mutable_sprite_graphics (int i)
 
auto mutable_sprite_palette (int i)
 
auto mutable_message_id ()
 
auto mutable_area_music (int i)
 
auto mutable_static_graphics (int i)
 
auto set_area_graphics (uint8_t value)
 
auto set_area_palette (uint8_t value)
 
auto set_sprite_graphics (int i, uint8_t value)
 
auto set_sprite_palette (int i, uint8_t value)
 
auto set_message_id (uint16_t value)
 
uint8_t * mutable_custom_tileset (int index)
 
void SetAsLargeMap (int parent_index, int quadrant)
 
void SetAsSmallMap (int index=-1)
 
void Destroy ()
 

Private Member Functions

void LoadAreaInfo ()
 
void LoadCustomOverworldData ()
 
void SetupCustomTileset (uint8_t asm_version)
 
void LoadMainBlocksetId ()
 
void LoadSpritesBlocksets ()
 
void LoadMainBlocksets ()
 
void LoadAreaGraphicsBlocksets ()
 
void LoadDeathMountainGFX ()
 
void ProcessGraphicsBuffer (int index, int static_graphics_offset, int size)
 
absl::StatusOr< gfx::SnesPaletteGetPalette (const gfx::PaletteGroup &group, int index, int previous_index, int limit)
 

Private Attributes

Rom rom_
 
bool built_ = false
 
bool large_map_ = false
 
bool initialized_ = false
 
bool mosaic_ = false
 
int index_ = 0
 
int parent_ = 0
 
int large_index_ = 0
 
int world_ = 0
 
int game_state_ = 0
 
int main_gfx_id_ = 0
 
uint16_t message_id_ = 0
 
uint8_t area_graphics_ = 0
 
uint8_t area_palette_ = 0
 
uint8_t animated_gfx_ = 0
 
uint16_t subscreen_overlay_ = 0
 
std::array< uint8_t, 8 > custom_gfx_ids_
 
std::array< uint8_t, 3 > sprite_graphics_
 
std::array< uint8_t, 3 > sprite_palette_
 
std::array< uint8_t, 4 > area_music_
 
std::array< uint8_t, 16 > static_graphics_
 
std::vector< uint8_t > all_gfx_
 
std::vector< uint8_t > current_blockset_
 
std::vector< uint8_t > current_gfx_
 
std::vector< uint8_t > bitmap_data_
 
OverworldMapTiles map_tiles_
 
gfx::SnesPalette current_palette_
 

Additional Inherited Members

- Static Protected Attributes inherited from yaze::gfx::GfxContext
static std::unordered_map< uint8_t, gfx::Palettesetpalettesets_
 

Detailed Description

Represents a single Overworld map screen.

Definition at line 77 of file overworld_map.h.

Constructor & Destructor Documentation

◆ OverworldMap() [1/2]

yaze::zelda3::OverworldMap::OverworldMap ( )
default

◆ OverworldMap() [2/2]

yaze::zelda3::OverworldMap::OverworldMap ( int index,
Rom & rom )

Member Function Documentation

◆ BuildMap()

◆ LoadAreaGraphics()

void yaze::zelda3::OverworldMap::LoadAreaGraphics ( )

◆ LoadPalette()

◆ BuildTileset()

absl::Status yaze::zelda3::OverworldMap::BuildTileset ( )

Definition at line 690 of file overworld_map.cc.

References all_gfx_, current_gfx_, ProcessGraphicsBuffer(), rom_, and static_graphics_.

Referenced by BuildMap().

Here is the call graph for this function:

◆ BuildTiles16Gfx()

absl::Status yaze::zelda3::OverworldMap::BuildTiles16Gfx ( std::vector< gfx::Tile16 > & tiles16,
int count )

◆ BuildBitmap()

absl::Status yaze::zelda3::OverworldMap::BuildBitmap ( OverworldBlockset & world_blockset)

Definition at line 747 of file overworld_map.cc.

References bitmap_data_, yaze::gfx::CopyTile8bpp16(), current_blockset_, index_, and world_.

Referenced by BuildMap().

Here is the call graph for this function:

◆ DrawAnimatedTiles()

void yaze::zelda3::OverworldMap::DrawAnimatedTiles ( )

Definition at line 410 of file overworld_map.cc.

References yaze::util::HexByte(), and static_graphics_.

Here is the call graph for this function:

◆ current_tile16_blockset()

auto yaze::zelda3::OverworldMap::current_tile16_blockset ( ) const
inline

Definition at line 94 of file overworld_map.h.

References current_blockset_.

◆ current_graphics()

auto yaze::zelda3::OverworldMap::current_graphics ( ) const
inline

Definition at line 95 of file overworld_map.h.

References current_gfx_.

◆ current_palette()

auto yaze::zelda3::OverworldMap::current_palette ( ) const
inline

Definition at line 96 of file overworld_map.h.

References current_palette_.

◆ bitmap_data()

auto yaze::zelda3::OverworldMap::bitmap_data ( ) const
inline

Definition at line 97 of file overworld_map.h.

References bitmap_data_.

◆ is_large_map()

auto yaze::zelda3::OverworldMap::is_large_map ( ) const
inline

Definition at line 98 of file overworld_map.h.

References large_map_.

◆ is_initialized()

auto yaze::zelda3::OverworldMap::is_initialized ( ) const
inline

Definition at line 99 of file overworld_map.h.

References initialized_.

◆ parent()

auto yaze::zelda3::OverworldMap::parent ( ) const
inline

Definition at line 100 of file overworld_map.h.

References parent_.

◆ mutable_mosaic()

auto yaze::zelda3::OverworldMap::mutable_mosaic ( )
inline

Definition at line 101 of file overworld_map.h.

References mosaic_.

◆ mutable_current_palette()

auto yaze::zelda3::OverworldMap::mutable_current_palette ( )
inline

Definition at line 102 of file overworld_map.h.

References current_palette_.

◆ area_graphics()

auto yaze::zelda3::OverworldMap::area_graphics ( ) const
inline

Definition at line 104 of file overworld_map.h.

References area_graphics_.

◆ area_palette()

auto yaze::zelda3::OverworldMap::area_palette ( ) const
inline

Definition at line 105 of file overworld_map.h.

References area_palette_.

◆ sprite_graphics()

auto yaze::zelda3::OverworldMap::sprite_graphics ( int i) const
inline

Definition at line 106 of file overworld_map.h.

References sprite_graphics_.

◆ sprite_palette()

auto yaze::zelda3::OverworldMap::sprite_palette ( int i) const
inline

Definition at line 107 of file overworld_map.h.

References sprite_palette_.

◆ message_id()

auto yaze::zelda3::OverworldMap::message_id ( ) const
inline

Definition at line 108 of file overworld_map.h.

References message_id_.

Referenced by LoadAreaInfo().

◆ area_music()

auto yaze::zelda3::OverworldMap::area_music ( int i) const
inline

Definition at line 109 of file overworld_map.h.

References area_music_.

◆ static_graphics()

auto yaze::zelda3::OverworldMap::static_graphics ( int i) const
inline

Definition at line 110 of file overworld_map.h.

References static_graphics_.

◆ large_index()

auto yaze::zelda3::OverworldMap::large_index ( ) const
inline

Definition at line 111 of file overworld_map.h.

References large_index_.

◆ mutable_current_graphics()

auto yaze::zelda3::OverworldMap::mutable_current_graphics ( )
inline

Definition at line 113 of file overworld_map.h.

References current_gfx_.

◆ mutable_area_graphics()

auto yaze::zelda3::OverworldMap::mutable_area_graphics ( )
inline

Definition at line 114 of file overworld_map.h.

References area_graphics_.

◆ mutable_area_palette()

auto yaze::zelda3::OverworldMap::mutable_area_palette ( )
inline

Definition at line 115 of file overworld_map.h.

References area_palette_.

◆ mutable_sprite_graphics()

auto yaze::zelda3::OverworldMap::mutable_sprite_graphics ( int i)
inline

Definition at line 116 of file overworld_map.h.

References sprite_graphics_.

◆ mutable_sprite_palette()

auto yaze::zelda3::OverworldMap::mutable_sprite_palette ( int i)
inline

Definition at line 117 of file overworld_map.h.

References sprite_palette_.

◆ mutable_message_id()

auto yaze::zelda3::OverworldMap::mutable_message_id ( )
inline

Definition at line 118 of file overworld_map.h.

References message_id_.

◆ mutable_area_music()

auto yaze::zelda3::OverworldMap::mutable_area_music ( int i)
inline

Definition at line 119 of file overworld_map.h.

References area_music_.

◆ mutable_static_graphics()

auto yaze::zelda3::OverworldMap::mutable_static_graphics ( int i)
inline

Definition at line 120 of file overworld_map.h.

References static_graphics_.

◆ set_area_graphics()

auto yaze::zelda3::OverworldMap::set_area_graphics ( uint8_t value)
inline

Definition at line 122 of file overworld_map.h.

References area_graphics_.

◆ set_area_palette()

auto yaze::zelda3::OverworldMap::set_area_palette ( uint8_t value)
inline

Definition at line 123 of file overworld_map.h.

References area_palette_.

◆ set_sprite_graphics()

auto yaze::zelda3::OverworldMap::set_sprite_graphics ( int i,
uint8_t value )
inline

Definition at line 124 of file overworld_map.h.

References sprite_graphics_.

◆ set_sprite_palette()

auto yaze::zelda3::OverworldMap::set_sprite_palette ( int i,
uint8_t value )
inline

Definition at line 127 of file overworld_map.h.

References sprite_palette_.

◆ set_message_id()

auto yaze::zelda3::OverworldMap::set_message_id ( uint16_t value)
inline

Definition at line 128 of file overworld_map.h.

References message_id_.

◆ mutable_custom_tileset()

uint8_t * yaze::zelda3::OverworldMap::mutable_custom_tileset ( int index)
inline

Definition at line 130 of file overworld_map.h.

References custom_gfx_ids_.

◆ SetAsLargeMap()

void yaze::zelda3::OverworldMap::SetAsLargeMap ( int parent_index,
int quadrant )
inline

Definition at line 132 of file overworld_map.h.

References large_index_, large_map_, and parent_.

◆ SetAsSmallMap()

void yaze::zelda3::OverworldMap::SetAsSmallMap ( int index = -1)
inline

Definition at line 138 of file overworld_map.h.

References index_, large_index_, large_map_, and parent_.

◆ Destroy()

void yaze::zelda3::OverworldMap::Destroy ( )
inline

Definition at line 147 of file overworld_map.h.

References bitmap_data_, current_blockset_, and current_gfx_.

◆ LoadAreaInfo()

◆ LoadCustomOverworldData()

void yaze::zelda3::OverworldMap::LoadCustomOverworldData ( )
private

◆ SetupCustomTileset()

◆ LoadMainBlocksetId()

void yaze::zelda3::OverworldMap::LoadMainBlocksetId ( )
private

◆ LoadSpritesBlocksets()

void yaze::zelda3::OverworldMap::LoadSpritesBlocksets ( )
private

Definition at line 382 of file overworld_map.cc.

References game_state_, rom_, sprite_graphics_, and static_graphics_.

Referenced by LoadAreaGraphics().

◆ LoadMainBlocksets()

void yaze::zelda3::OverworldMap::LoadMainBlocksets ( )
private

Definition at line 397 of file overworld_map.cc.

References main_gfx_id_, rom_, and static_graphics_.

Referenced by LoadAreaGraphics().

◆ LoadAreaGraphicsBlocksets()

void yaze::zelda3::OverworldMap::LoadAreaGraphicsBlocksets ( )
private

Definition at line 427 of file overworld_map.cc.

References area_graphics_, rom_, and static_graphics_.

Referenced by LoadAreaGraphics().

◆ LoadDeathMountainGFX()

void yaze::zelda3::OverworldMap::LoadDeathMountainGFX ( )
private
Todo
Change the conditions for death mountain gfx

Definition at line 442 of file overworld_map.cc.

References parent_, and static_graphics_.

Referenced by LoadAreaGraphics().

◆ ProcessGraphicsBuffer()

void yaze::zelda3::OverworldMap::ProcessGraphicsBuffer ( int index,
int static_graphics_offset,
int size )
private

Definition at line 674 of file overworld_map.cc.

References all_gfx_, and current_gfx_.

Referenced by BuildTileset().

◆ GetPalette()

absl::StatusOr< gfx::SnesPalette > yaze::zelda3::OverworldMap::GetPalette ( const gfx::PaletteGroup & group,
int index,
int previous_index,
int limit )
private

Definition at line 580 of file overworld_map.cc.

References rom_.

Referenced by LoadPalette().

Member Data Documentation

◆ rom_

◆ built_

bool yaze::zelda3::OverworldMap::built_ = false
private

Definition at line 171 of file overworld_map.h.

Referenced by BuildMap().

◆ large_map_

bool yaze::zelda3::OverworldMap::large_map_ = false
private

Definition at line 172 of file overworld_map.h.

Referenced by BuildMap(), is_large_map(), LoadAreaInfo(), SetAsLargeMap(), and SetAsSmallMap().

◆ initialized_

bool yaze::zelda3::OverworldMap::initialized_ = false
private

Definition at line 173 of file overworld_map.h.

Referenced by BuildMap(), and is_initialized().

◆ mosaic_

bool yaze::zelda3::OverworldMap::mosaic_ = false
private

Definition at line 174 of file overworld_map.h.

Referenced by LoadCustomOverworldData(), mutable_mosaic(), and SetupCustomTileset().

◆ index_

int yaze::zelda3::OverworldMap::index_ = 0
private

◆ parent_

◆ large_index_

int yaze::zelda3::OverworldMap::large_index_ = 0
private

Definition at line 178 of file overworld_map.h.

Referenced by large_index(), SetAsLargeMap(), and SetAsSmallMap().

◆ world_

int yaze::zelda3::OverworldMap::world_ = 0
private

Definition at line 179 of file overworld_map.h.

Referenced by BuildBitmap(), and BuildMap().

◆ game_state_

int yaze::zelda3::OverworldMap::game_state_ = 0
private

Definition at line 180 of file overworld_map.h.

Referenced by BuildMap(), LoadPalette(), and LoadSpritesBlocksets().

◆ main_gfx_id_

int yaze::zelda3::OverworldMap::main_gfx_id_ = 0
private

Definition at line 181 of file overworld_map.h.

Referenced by LoadMainBlocksetId(), and LoadMainBlocksets().

◆ message_id_

uint16_t yaze::zelda3::OverworldMap::message_id_ = 0
private

Definition at line 183 of file overworld_map.h.

Referenced by LoadAreaInfo(), message_id(), mutable_message_id(), and set_message_id().

◆ area_graphics_

uint8_t yaze::zelda3::OverworldMap::area_graphics_ = 0
private

◆ area_palette_

uint8_t yaze::zelda3::OverworldMap::area_palette_ = 0
private

◆ animated_gfx_

uint8_t yaze::zelda3::OverworldMap::animated_gfx_ = 0
private

Definition at line 186 of file overworld_map.h.

Referenced by LoadCustomOverworldData(), and SetupCustomTileset().

◆ subscreen_overlay_

uint16_t yaze::zelda3::OverworldMap::subscreen_overlay_ = 0
private

Definition at line 187 of file overworld_map.h.

Referenced by LoadCustomOverworldData(), and SetupCustomTileset().

◆ custom_gfx_ids_

std::array<uint8_t, 8> yaze::zelda3::OverworldMap::custom_gfx_ids_
private

◆ sprite_graphics_

std::array<uint8_t, 3> yaze::zelda3::OverworldMap::sprite_graphics_
private

◆ sprite_palette_

std::array<uint8_t, 3> yaze::zelda3::OverworldMap::sprite_palette_
private

◆ area_music_

std::array<uint8_t, 4> yaze::zelda3::OverworldMap::area_music_
private

Definition at line 192 of file overworld_map.h.

Referenced by area_music(), LoadAreaInfo(), and mutable_area_music().

◆ static_graphics_

std::array<uint8_t, 16> yaze::zelda3::OverworldMap::static_graphics_
private

◆ all_gfx_

std::vector<uint8_t> yaze::zelda3::OverworldMap::all_gfx_
private

Definition at line 195 of file overworld_map.h.

Referenced by BuildTileset(), and ProcessGraphicsBuffer().

◆ current_blockset_

std::vector<uint8_t> yaze::zelda3::OverworldMap::current_blockset_
private

Definition at line 196 of file overworld_map.h.

Referenced by BuildBitmap(), BuildTiles16Gfx(), current_tile16_blockset(), and Destroy().

◆ current_gfx_

std::vector<uint8_t> yaze::zelda3::OverworldMap::current_gfx_
private

◆ bitmap_data_

std::vector<uint8_t> yaze::zelda3::OverworldMap::bitmap_data_
private

Definition at line 198 of file overworld_map.h.

Referenced by bitmap_data(), BuildBitmap(), and Destroy().

◆ map_tiles_

OverworldMapTiles yaze::zelda3::OverworldMap::map_tiles_
private

Definition at line 200 of file overworld_map.h.

◆ current_palette_

gfx::SnesPalette yaze::zelda3::OverworldMap::current_palette_
private

Definition at line 201 of file overworld_map.h.

Referenced by current_palette(), LoadPalette(), and mutable_current_palette().


The documentation for this class was generated from the following files: