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

#include <overworld.h>

Classes

struct  SubscreenOverlayLayer
 Subscreen overlay layer for one screen, in that screen's palette. More...
 
struct  TilesetCacheEntry
 

Public Member Functions

 Overworld (Rom *rom, GameData *game_data=nullptr)
 
void SetGameData (GameData *game_data)
 
zelda3_version_pointers version_constants () const
 Get version-specific ROM addresses.
 
absl::Status Load (Rom *rom)
 Load all overworld data from ROM.
 
absl::Status LoadLyraTerrainPreview (Rom *rom)
 
bool is_lyra_preview () const
 
int inspected_map_count () const
 
bool descriptor_sprite_display_available () const
 
bool lyra_a0_terrain_writable () const
 
const std::array< uint16_t, 256 > & lyra_a0_tiles () const
 
absl::Status SetLyraA0Tile32 (int x, int y, uint16_t tile)
 
absl::Status LoadOverworldMaps ()
 Load overworld map tile data.
 
void LoadTileTypes ()
 Load tile type collision data.
 
absl::StatusOr< std::array< uint8_t, kNumTileTypes > > GetTile8CollisionTypes (int map_id) const
 
absl::Status LoadSprites ()
 Load sprite data for all game states.
 
absl::StatusOr< OverworldSpriteSavePlan > PrepareSpriteSave () const
 
absl::Status SaveSprites ()
 
absl::Status LoadSpritesFromMap (int sprite_start, int sprite_count, int sprite_index)
 Load sprites from a specific map range.
 
absl::Status EnsureMapBuilt (int map_index)
 Build a map on-demand if it hasn't been built yet.
 
void SyncAreaProperties (int map_index)
 Copy the area parent's render settings (main palette, animated GFX, tile GFX groups, subscreen overlay) onto a child screen.
 
void SetGraphicsPreview (OverworldGraphicsPreview preview)
 
absl::StatusOr< SubscreenOverlayLayer > BuildSubscreenOverlayLayer (int map_index)
 Build the subscreen overlay layer for a screen (builds the screen if needed). The overlay comes from the area parent's overlay id.
 
void ClearGraphicsConfigCache ()
 Drop every cached tileset/blockset. Call after graphics buffer or tile16 edits that are not tied to one sheet.
 
void InvalidateTilesetCacheForSheet (int sheet)
 Drop cached tilesets that load sheet (graphics sheet edits). Built maps keep their pixels; mark them dirty/rebuild separately.
 
size_t tileset_cache_size () const
 Number of cached tileset entries (for tests and diagnostics).
 
void InvalidateMapCache (int map_index)
 Invalidate cached tileset for a specific map.
 
void InvalidateSiblingMapCaches (int map_index)
 Invalidate cached tilesets for a map and all its siblings.
 
absl::Status Save (Rom *rom)
 Master save method (calls sub-methods in correct order)
 
absl::Status SaveOverworldMaps ()
 Save compressed map tile data to ROM.
 
absl::Status ValidatePrivateNativeTerrainSave () const
 
void StageSavedMapTiles ()
 
void CommitSavedMapTiles ()
 
void RollbackSavedMapTiles ()
 
absl::Status SaveLargeMaps ()
 Save large map parent/sibling relationships.
 
absl::Status SaveLargeMapsExpanded ()
 Save expanded large map data (v1+ ROMs)
 
absl::Status SaveSmallAreaTransitions (int i, int parent_x_pos, int parent_y_pos, int transition_target_north, int transition_target_west, int transition_pos_x, int transition_pos_y, int screen_change_1, int screen_change_2, int screen_change_3, int screen_change_4)
 Save screen transition data for small (1x1) areas.
 
absl::Status SaveLargeAreaTransitions (int i, int parent_x_pos, int parent_y_pos, int transition_target_north, int transition_target_west, int transition_pos_x, int transition_pos_y, int screen_change_1, int screen_change_2, int screen_change_3, int screen_change_4)
 Save screen transition data for large (2x2) areas.
 
absl::Status SaveWideAreaTransitions (int i, int parent_x_pos, int parent_y_pos, int transition_target_north, int transition_target_west, int transition_pos_x, int transition_pos_y, int screen_change_1, int screen_change_2, int screen_change_3, int screen_change_4)
 Save screen transition data for wide (2x1) areas (v3+ only)
 
absl::Status SaveTallAreaTransitions (int i, int parent_x_pos, int parent_y_pos, int transition_target_north, int transition_target_west, int transition_pos_x, int transition_pos_y, int screen_change_1, int screen_change_2, int screen_change_3, int screen_change_4)
 Save screen transition data for tall (1x2) areas (v3+ only)
 
absl::Status SaveEntrances ()
 Save entrance warp points to ROM.
 
absl::Status SaveExits ()
 Save exit return points to ROM.
 
absl::Status SaveItems ()
 Save hidden overworld items to ROM.
 
absl::Status SaveMapOverlays ()
 Save interactive overlay data to ROM.
 
absl::Status SaveOverworldTilesType ()
 Save tile type collision data to ROM.
 
absl::Status SaveCustomOverworldASM (bool enable_bg_color, bool enable_main_palette, bool enable_mosaic, bool enable_gfx_groups, bool enable_subscreen_overlay, bool enable_animated)
 Save custom ASM feature enable flags.
 
absl::Status SaveAreaSpecificBGColors ()
 Save per-area background colors (v2+)
 
absl::Status SaveCustomOverworldData ()
 Save all v2/v3 property tables using the ROM's current feature flags.
 
absl::Status CreateTile32Tilemap ()
 Build tile32 tilemap from current tile16 data.
 
absl::Status SaveMap16Expanded ()
 Save expanded tile16 definitions (v1+ ROMs)
 
absl::Status SaveMap16Tiles ()
 Save tile16 definitions to ROM.
 
absl::Status SaveMap32Expanded ()
 Save expanded tile32 definitions (v1+ ROMs)
 
absl::Status SaveMap32Tiles ()
 Save tile32 definitions to ROM.
 
absl::Status SaveMapProperties ()
 Save per-area graphics, palettes, and messages.
 
absl::Status SaveMusic ()
 Save per-area music IDs.
 
absl::Status SaveAreaSizes ()
 Save area size enum data (v3+ only)
 
void AssignMapSizes (std::vector< OverworldMap > &maps)
 Assign map sizes based on area size enum (v3+)
 
absl::Status ConfigureMultiAreaMap (int parent_index, AreaSizeEnum size)
 Configure a multi-area map structure (Large/Wide/Tall)
 
auto rom () const
 
auto mutable_rom ()
 
std::vector< std::pair< uint32_t, uint32_t > > GetProjectedWriteRanges () const
 Get the projected write ranges (PC offsets) for overworld map saves.
 
bool HasExpandedPointerTables () const
 Check if the ROM has expanded pointer tables for tail maps.
 
void Destroy ()
 
int GetTileFromPosition (ImVec2 position) const
 
OverworldBlockset & GetMapTiles (int world_type)
 
const std::vector< OverworldMap > & overworld_maps () const
 
auto overworld_map (int i) const
 
auto mutable_overworld_map (int i)
 
auto exits () const
 
auto mutable_exits ()
 
const std::vector< gfx::Tile16 > & tiles16 () const
 
auto tiles32_unique () const
 
auto mutable_tiles16 ()
 
auto sprites (int state) const
 
auto mutable_sprites (int state)
 
const std::vector< uint8_t > & current_graphics () const
 
const std::vector< OverworldEntrance > & entrances () const
 
auto & entrances ()
 
auto mutable_entrances ()
 
const std::vector< OverworldEntrance > & holes () const
 
auto & holes ()
 
auto mutable_holes ()
 
auto deleted_entrances () const
 
auto mutable_deleted_entrances ()
 
const gfx::SnesPalette & current_area_palette () const
 
const std::vector< uint8_t > & current_map_bitmap_data () const
 
const std::vector< uint8_t > & tile16_blockset_data () const
 
bool is_current_map_valid () const
 
auto is_loaded () const
 
auto expanded_tile16 () const
 
auto expanded_tile32 () const
 
auto expanded_entrances () const
 
bool has_tail_map_expansion () const
 
void set_has_tail_map_expansion (bool v)
 
int current_map_id () const
 
int current_world () const
 
void set_current_map (int i)
 
void set_current_world (int world)
 
void set_game_state (int state)
 
uint16_t GetTile (int x, int y) const
 
void SetTile (int x, int y, uint16_t tile_id)
 
auto map_tiles () const
 
auto mutable_map_tiles ()
 
auto all_items () const
 
auto mutable_all_items ()
 
auto all_tiles_types () const
 
auto mutable_all_tiles_types ()
 
auto all_sprites () const
 
const DiggableTiles & diggable_tiles () const
 
DiggableTiles * mutable_diggable_tiles ()
 
absl::Status LoadDiggableTiles ()
 
absl::Status SaveDiggableTiles ()
 
absl::Status AutoDetectDiggableTiles ()
 

Private Types

enum  Dimension { map32TilesTL = 0 , map32TilesTR = 1 , map32TilesBL = 2 , map32TilesBR = 3 }
 
using TilesetRevisions
 

Private Member Functions

void FetchLargeMaps ()
 
absl::StatusOr< uint16_t > GetTile16ForTile32 (int index, int quadrant, int dimension, const uint32_t *map32address)
 
absl::Status AssembleMap32Tiles ()
 
absl::Status AssembleMap16Tiles ()
 
void AssignWorldTiles (int x, int y, int sx, int sy, int tpos, OverworldBlockset &world)
 
void FillBlankMapTiles (int map_index)
 
OverworldBlockset & SelectWorldBlockset (int world_type)
 
void OrganizeMapTiles (std::vector< uint8_t > &bytes, std::vector< uint8_t > &bytes2, int i, int sx, int sy, int &ttpos)
 
absl::Status DecompressAllMapTilesParallel ()
 
absl::Status BuildLyraTerrainPreview (Rom *rom, rom::LyraLayoutInspection layout)
 
bool MapTilesUnchanged () const
 
TilesetRevisions SheetRevisionsForKey (const OverworldTilesetKey &key) const
 
uint64_t Tiles16Fingerprint () const
 
absl::Status BuildMapWithTilesetCache (int map_index, int world_type)
 

Private Attributes

Rom * rom_
 
GameData * game_data_ = nullptr
 
bool is_loaded_ = false
 
bool expanded_tile16_ = false
 
bool expanded_tile32_ = false
 
bool expanded_entrances_ = false
 
bool has_tail_map_expansion_ = false
 
int game_state_ = 0
 
int current_map_ = 0
 
int current_world_ = 0
 
OverworldVersion cached_version_ = OverworldVersion::kVanilla
 
OverworldMapTiles map_tiles_
 
rom::LyraLayoutInspection descriptor_layout_
 
std::array< uint16_t, 256 > lyra_a0_tiles_ {}
 
std::vector< gfx::Tile16 > private_loaded_tiles16_
 
std::vector< uint8_t > private_loaded_overlays_
 
OverworldMapTiles loaded_map_tiles_
 
bool loaded_map_tiles_valid_ = false
 
OverworldMapTiles staged_map_tiles_
 
bool staged_map_tiles_valid_ = false
 
std::mutex map_tiles_mutex_
 
std::deque< int > built_map_lru_
 
std::map< OverworldTilesetKey, TilesetCacheEntry > tileset_cache_
 
uint64_t tileset_cache_clock_ = 0
 
std::vector< OverworldMap > overworld_maps_
 
OverworldGraphicsPreview graphics_preview_
 
std::vector< OverworldEntrance > all_entrances_
 
std::vector< OverworldEntrance > all_holes_
 
std::vector< OverworldExit > all_exits_
 
std::vector< OverworldItem > all_items_
 
std::vector< gfx::Tile16 > tiles16_
 
std::vector< gfx::Tile32 > tiles32_
 
std::vector< gfx::Tile32 > tiles32_unique_
 
std::vector< uint16_t > tiles32_list_
 
std::vector< uint64_t > deleted_entrances_
 
std::array< uint8_t, kNumOverworldMaps > map_parent_ = {0}
 
std::array< uint8_t, kNumTileTypes > all_tiles_types_ = {0}
 
std::array< std::vector< Sprite >, 3 > all_sprites_
 
std::array< std::array< bool, 160 >, 3 > sprite_maps_loaded_ {}
 
DiggableTiles diggable_tiles_
 
std::array< std::vector< uint8_t >, kNumOverworldMaps > map_data_p1
 
std::array< std::vector< uint8_t >, kNumOverworldMaps > map_data_p2
 
std::array< int, kNumOverworldMaps > map_pointers1_id
 
std::array< int, kNumOverworldMaps > map_pointers2_id
 
std::array< int, kNumOverworldMaps > map_pointers1
 
std::array< int, kNumOverworldMaps > map_pointers2
 

Static Private Attributes

static constexpr int kMaxBuiltMaps = 8
 
static constexpr size_t kMaxCachedTilesets = 24
 

Detailed Description

Definition at line 422 of file overworld.h.

Member Typedef Documentation

◆ TilesetRevisions

Initial value:
std::array<uint64_t, std::tuple_size_v<OverworldTilesetKey>>

Definition at line 949 of file overworld.h.

Member Enumeration Documentation

◆ Dimension

Enumerator
map32TilesTL 
map32TilesTR 
map32TilesBL 
map32TilesBR 

Definition at line 882 of file overworld.h.

Constructor & Destructor Documentation

◆ Overworld()

yaze::zelda3::Overworld::Overworld ( Rom * rom,
GameData * game_data = nullptr )
inline

Definition at line 424 of file overworld.h.

Member Function Documentation

◆ SetGameData()

void yaze::zelda3::Overworld::SetGameData ( GameData * game_data)
inline

Definition at line 427 of file overworld.h.

References game_data_.

Referenced by yaze::editor::OverworldEditor::SetGameData().

◆ version_constants()

◆ Load()

absl::Status yaze::zelda3::Overworld::Load ( Rom * rom)

Load all overworld data from ROM.

Definition at line 158 of file overworld.cc.

References all_entrances_, all_exits_, all_holes_, all_items_, AssembleMap16Tiles(), AssembleMap32Tiles(), ASSIGN_OR_RETURN, AssignMapSizes(), cached_version_, DecompressAllMapTilesParallel(), descriptor_layout_, Destroy(), yaze::zelda3::DetectOverworldRomProfile(), expanded_entrances_, expanded_tile16_, expanded_tile32_, FetchLargeMaps(), game_data_, yaze::zelda3::GetResourceLabels(), yaze::Rom::has_lyra_private_reservation(), has_tail_map_expansion_, is_loaded_, yaze::rom::kInvalid, yaze::zelda3::kNumOverworldMaps, yaze::rom::kValid, LoadDiggableTiles(), loaded_map_tiles_, loaded_map_tiles_valid_, yaze::zelda3::LoadEntrances(), yaze::zelda3::LoadExits(), yaze::zelda3::LoadHoles(), yaze::zelda3::LoadItems(), LoadOverworldMaps(), LoadSprites(), LoadTileTypes(), map_parent_, map_tiles_, overworld_maps_, private_loaded_overlays_, private_loaded_tiles16_, RETURN_IF_ERROR, RollbackSavedMapTiles(), rom(), rom_, yaze::zelda3::OverworldVersionHelper::SupportsAreaEnum(), tiles16_, and tiles32_list_.

Referenced by yaze::cli::Tile16ProposalGenerator::ApplyProposal(), yaze::cli::handlers::OverworldGetTileCommandHandler::Execute(), yaze::cli::handlers::OverworldInspectSpecialEntrancesCommandHandler::Execute(), yaze::cli::handlers::OverworldFindTileCommandHandler::Execute(), yaze::cli::handlers::OverworldDescribeMapCommandHandler::Execute(), yaze::cli::handlers::OverworldListWarpsCommandHandler::Execute(), yaze::cli::handlers::OverworldListSpritesCommandHandler::Execute(), yaze::cli::handlers::OverworldListItemsCommandHandler::Execute(), yaze::cli::handlers::OverworldGetEntranceCommandHandler::Execute(), yaze::cli::handlers::OverworldTileStatsCommandHandler::Execute(), yaze::cli::handlers::OverworldExportGraphCommandHandler::Execute(), yaze::cli::handlers::LyraVerifyProjectCommandHandler::Execute(), yaze::cli::OverworldValidateCommandHandler::Execute(), yaze::cli::handlers::ToolsExtractGoldenCommandHandler::Execute(), yaze::cli::handlers::OverworldSetTileCommandHandler::ExecuteWithContext(), yaze::cli::handlers::OverworldSpriteEditCommandHandler::ExecuteWithContext(), yaze::cli::Tile16ProposalGenerator::GenerateDiff(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::cli::Tile16ProposalGenerator::ParseReplaceTileCommand(), yaze::cli::Tile16ProposalGenerator::ParseSetAreaCommand(), yaze::cli::Tile16ProposalGenerator::ParseSetTileCommand(), yaze::app::service::RenderService::RenderOverworldArea(), yaze::test::RomDependentTestSuite::RunComprehensiveSaveTest(), yaze::test::RomDependentTestSuite::RunRomOverworldLoadingTest(), and yaze::cli::handlers::anonymous_namespace{overworld_commands.cc}::VerifyTileGridRoundTrip().

◆ LoadLyraTerrainPreview()

absl::Status yaze::zelda3::Overworld::LoadLyraTerrainPreview ( Rom * rom)

Definition at line 287 of file overworld.cc.

References BuildLyraTerrainPreview(), is_loaded_, yaze::rom::kValid, and rom().

Referenced by yaze::editor::OverworldEditor::LoadGraphics().

Here is the call graph for this function:

◆ is_lyra_preview()

◆ inspected_map_count()

◆ descriptor_sprite_display_available()

bool yaze::zelda3::Overworld::descriptor_sprite_display_available ( ) const
inline

Definition at line 456 of file overworld.h.

◆ lyra_a0_terrain_writable()

bool yaze::zelda3::Overworld::lyra_a0_terrain_writable ( ) const
inline

◆ lyra_a0_tiles()

const std::array< uint16_t, 256 > & yaze::zelda3::Overworld::lyra_a0_tiles ( ) const
inline

◆ SetLyraA0Tile32()

absl::Status yaze::zelda3::Overworld::SetLyraA0Tile32 ( int x,
int y,
uint16_t tile )

◆ LoadOverworldMaps()

◆ LoadTileTypes()

void yaze::zelda3::Overworld::LoadTileTypes ( )

Load tile type collision data.

Definition at line 1414 of file overworld.cc.

References all_tiles_types_, yaze::zelda3::zscream::DetectLayout(), zelda3_version_pointers::kOverworldTilesType, yaze::zelda3::zscream::kUnknown, yaze::zelda3::zscream::kZScreamV5, rom_, yaze::Rom::vector(), and version_constants().

Referenced by Load().

Here is the call graph for this function:

◆ GetTile8CollisionTypes()

◆ LoadSprites()

absl::Status yaze::zelda3::Overworld::LoadSprites ( )

Load sprite data for all game states.

Definition at line 1543 of file overworld.cc.

References yaze::zelda3::GetOverworldSpriteLayout(), LoadSpritesFromMap(), RETURN_IF_ERROR, and rom_.

Referenced by Load().

Here is the call graph for this function:

◆ PrepareSpriteSave()

absl::StatusOr< OverworldSpriteSavePlan > yaze::zelda3::Overworld::PrepareSpriteSave ( ) const

Definition at line 1609 of file overworld.cc.

References all_sprites_, yaze::zelda3::PlanOverworldSpriteSave(), rom_, and sprite_maps_loaded_.

Referenced by yaze::editor::OverworldEditor::Save(), Save(), and SaveSprites().

Here is the call graph for this function:

◆ SaveSprites()

absl::Status yaze::zelda3::Overworld::SaveSprites ( )

Definition at line 1654 of file overworld.cc.

References yaze::zelda3::ApplyOverworldSpriteSave(), ASSIGN_OR_RETURN, PrepareSpriteSave(), and rom_.

Here is the call graph for this function:

◆ LoadSpritesFromMap()

absl::Status yaze::zelda3::Overworld::LoadSpritesFromMap ( int sprite_start,
int sprite_count,
int sprite_index )

Load sprites from a specific map range.

Definition at line 1574 of file overworld.cc.

References all_sprites_, ASSIGN_OR_RETURN, current_graphics(), map_parent_, overworld_maps_, yaze::zelda3::ReadOverworldSpriteList(), rom_, yaze::Rom::size(), and sprite_maps_loaded_.

Referenced by LoadSprites().

Here is the call graph for this function:

◆ EnsureMapBuilt()

absl::Status yaze::zelda3::Overworld::EnsureMapBuilt ( int map_index)

Build a map on-demand if it hasn't been built yet.

Used for lazy loading optimization. Maps are built when first accessed rather than all at once during Load().

Definition at line 1162 of file overworld.cc.

References BuildMapWithTilesetCache(), built_map_lru_, cached_version_, yaze::rom::LyraLayoutInspection::capacity, descriptor_layout_, FillBlankMapTiles(), game_state_, yaze::core::FeatureFlags::get(), HasExpandedPointerTables(), is_lyra_preview(), yaze::zelda3::kAreaGfxIdPtr, yaze::zelda3::kDarkWorldMapIdStart, yaze::core::FeatureFlags::Flags::Overworld::kEnableSpecialWorldExpansion, kMaxBuiltMaps, yaze::zelda3::kNumOverworldMaps, yaze::zelda3::kOverworldMapPaletteIds, yaze::zelda3::kOverworldSpecialGfxGroup, yaze::zelda3::kOverworldSpecialPalGroup, yaze::zelda3::kSpecialWorldMapIdStart, yaze::zelda3::kVanilla, yaze::core::FeatureFlags::Flags::overworld, overworld_maps_, rom_, and SyncAreaProperties().

Referenced by yaze::cli::overworld::BuildMapSummary(), BuildSubscreenOverlayLayer(), yaze::editor::CanvasNavigationManager::CheckForCurrentMap(), yaze::editor::TilePaintingManager::DrawBrushPreview(), yaze::editor::OverworldMapTextureCoordinator::EnsureMapTexture(), yaze::editor::OverworldEditor::GraphicsImportContext(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::editor::OverworldEditor::OpenGraphicsForTile16Quadrant(), yaze::editor::CanvasNavigationManager::ProcessPreloadQueue(), yaze::editor::MapRefreshCoordinator::RefreshTile16Blockset(), yaze::app::service::RenderService::RenderOverworldArea(), yaze::editor::OverworldEditor::SelectMapForEditing(), and yaze::editor::OverworldEditor::SwitchToWorld().

◆ SyncAreaProperties()

void yaze::zelda3::Overworld::SyncAreaProperties ( int map_index)

Copy the area parent's render settings (main palette, animated GFX, tile GFX groups, subscreen overlay) onto a child screen.

The game reads these tables with the area id ($8A), which is the parent of a large/wide/tall area, so child screens must render with the parent's values. Call before rebuilding a map's graphics or palette.

Definition at line 1374 of file overworld.cc.

References graphics_preview_, and overworld_maps_.

Referenced by EnsureMapBuilt(), LoadOverworldMaps(), yaze::editor::OverworldEditor::OpenGraphicsForTile16Quadrant(), yaze::editor::anonymous_namespace{map_refresh_coordinator.cc}::PrepareMapForRefresh(), yaze::editor::OverworldEditor::PreviewProjectGraphicsImport(), and SetGraphicsPreview().

◆ SetGraphicsPreview()

◆ BuildSubscreenOverlayLayer()

◆ ClearGraphicsConfigCache()

void yaze::zelda3::Overworld::ClearGraphicsConfigCache ( )
inline

Drop every cached tileset/blockset. Call after graphics buffer or tile16 edits that are not tied to one sheet.

Definition at line 533 of file overworld.h.

References tileset_cache_.

Referenced by yaze::editor::MapRefreshCoordinator::InvalidateGraphicsCache().

◆ InvalidateTilesetCacheForSheet()

void yaze::zelda3::Overworld::InvalidateTilesetCacheForSheet ( int sheet)

Drop cached tilesets that load sheet (graphics sheet edits). Built maps keep their pixels; mark them dirty/rebuild separately.

Definition at line 1355 of file overworld.cc.

References tileset_cache_.

◆ tileset_cache_size()

size_t yaze::zelda3::Overworld::tileset_cache_size ( ) const
inline

Number of cached tileset entries (for tests and diagnostics).

Definition at line 540 of file overworld.h.

References tileset_cache_.

◆ InvalidateMapCache()

void yaze::zelda3::Overworld::InvalidateMapCache ( int map_index)

Invalidate cached tileset for a specific map.

Parameters
map_indexThe map whose cache entry should be invalidated

Definition at line 1478 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, overworld_maps_, and tileset_cache_.

Referenced by InvalidateSiblingMapCaches().

◆ InvalidateSiblingMapCaches()

void yaze::zelda3::Overworld::InvalidateSiblingMapCaches ( int map_index)

Invalidate cached tilesets for a map and all its siblings.

Parameters
map_indexAny map in a multi-area group

Definition at line 1495 of file overworld.cc.

References cached_version_, InvalidateMapCache(), yaze::zelda3::kNumOverworldMaps, yaze::zelda3::LargeArea, mutable_overworld_map(), yaze::zelda3::OverworldVersionHelper::SupportsAreaEnum(), yaze::zelda3::TallArea, and yaze::zelda3::WideArea.

Referenced by yaze::editor::MapRefreshCoordinator::ForceRefreshGraphics(), and yaze::editor::MapRefreshCoordinator::InvalidateGraphicsCache().

Here is the call graph for this function:

◆ Save()

◆ SaveOverworldMaps()

◆ ValidatePrivateNativeTerrainSave()

◆ StageSavedMapTiles()

void yaze::zelda3::Overworld::StageSavedMapTiles ( )

Definition at line 1717 of file overworld.cc.

References map_tiles_, staged_map_tiles_, and staged_map_tiles_valid_.

Referenced by SaveOverworldMaps().

◆ CommitSavedMapTiles()

void yaze::zelda3::Overworld::CommitSavedMapTiles ( )

◆ RollbackSavedMapTiles()

void yaze::zelda3::Overworld::RollbackSavedMapTiles ( )

◆ SaveLargeMaps()

◆ SaveLargeMapsExpanded()

◆ SaveSmallAreaTransitions()

absl::Status yaze::zelda3::Overworld::SaveSmallAreaTransitions ( int i,
int parent_x_pos,
int parent_y_pos,
int transition_target_north,
int transition_target_west,
int transition_pos_x,
int transition_pos_y,
int screen_change_1,
int screen_change_2,
int screen_change_3,
int screen_change_4 )

Save screen transition data for small (1x1) areas.

Definition at line 2301 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, yaze::zelda3::LargeArea, overworld_maps_, RETURN_IF_ERROR, rom(), yaze::zelda3::TallArea, and yaze::zelda3::WideArea.

Referenced by SaveLargeMapsExpanded().

Here is the call graph for this function:

◆ SaveLargeAreaTransitions()

absl::Status yaze::zelda3::Overworld::SaveLargeAreaTransitions ( int i,
int parent_x_pos,
int parent_y_pos,
int transition_target_north,
int transition_target_west,
int transition_pos_x,
int transition_pos_y,
int screen_change_1,
int screen_change_2,
int screen_change_3,
int screen_change_4 )

Save screen transition data for large (2x2) areas.

Definition at line 2410 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, yaze::zelda3::LargeArea, overworld_maps_, RETURN_IF_ERROR, rom(), yaze::zelda3::TallArea, and yaze::zelda3::WideArea.

Referenced by SaveLargeMapsExpanded().

Here is the call graph for this function:

◆ SaveWideAreaTransitions()

absl::Status yaze::zelda3::Overworld::SaveWideAreaTransitions ( int i,
int parent_x_pos,
int parent_y_pos,
int transition_target_north,
int transition_target_west,
int transition_pos_x,
int transition_pos_y,
int screen_change_1,
int screen_change_2,
int screen_change_3,
int screen_change_4 )

Save screen transition data for wide (2x1) areas (v3+ only)

Definition at line 2566 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, yaze::zelda3::LargeArea, overworld_maps_, RETURN_IF_ERROR, rom(), yaze::zelda3::TallArea, and yaze::zelda3::WideArea.

Referenced by SaveLargeMapsExpanded().

Here is the call graph for this function:

◆ SaveTallAreaTransitions()

absl::Status yaze::zelda3::Overworld::SaveTallAreaTransitions ( int i,
int parent_x_pos,
int parent_y_pos,
int transition_target_north,
int transition_target_west,
int transition_pos_x,
int transition_pos_y,
int screen_change_1,
int screen_change_2,
int screen_change_3,
int screen_change_4 )

Save screen transition data for tall (1x2) areas (v3+ only)

Definition at line 2706 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, yaze::zelda3::LargeArea, overworld_maps_, RETURN_IF_ERROR, rom(), yaze::zelda3::TallArea, and yaze::zelda3::WideArea.

Referenced by SaveLargeMapsExpanded().

Here is the call graph for this function:

◆ SaveEntrances()

absl::Status yaze::zelda3::Overworld::SaveEntrances ( )

◆ SaveExits()

absl::Status yaze::zelda3::Overworld::SaveExits ( )

Save exit return points to ROM.

Definition at line 3485 of file overworld.cc.

References all_exits_, RETURN_IF_ERROR, rom_, and yaze::zelda3::SaveExits().

Referenced by yaze::editor::OverworldEditor::Save(), and Save().

Here is the call graph for this function:

◆ SaveItems()

absl::Status yaze::zelda3::Overworld::SaveItems ( )

Save hidden overworld items to ROM.

Definition at line 3490 of file overworld.cc.

References all_items_, ASSIGN_OR_RETURN, yaze::zelda3::LoadItems(), overworld_maps_, RETURN_IF_ERROR, rom_, and yaze::zelda3::SaveItems().

Referenced by yaze::editor::OverworldEditor::Save(), and Save().

Here is the call graph for this function:

◆ SaveMapOverlays()

absl::Status yaze::zelda3::Overworld::SaveMapOverlays ( )

◆ SaveOverworldTilesType()

absl::Status yaze::zelda3::Overworld::SaveOverworldTilesType ( )

◆ SaveCustomOverworldASM()

◆ SaveAreaSpecificBGColors()

absl::Status yaze::zelda3::Overworld::SaveAreaSpecificBGColors ( )

◆ SaveCustomOverworldData()

◆ CreateTile32Tilemap()

◆ SaveMap16Expanded()

absl::Status yaze::zelda3::Overworld::SaveMap16Expanded ( )

◆ SaveMap16Tiles()

absl::Status yaze::zelda3::Overworld::SaveMap16Tiles ( )

Save tile16 definitions to ROM.

Definition at line 3436 of file overworld.cc.

References yaze::Rom::has_lyra_private_reservation(), yaze::zelda3::kMap16Tiles, yaze::util::logf(), yaze::zelda3::NumberOfMap16, RETURN_IF_ERROR, rom(), rom_, tiles16_, and ValidatePrivateNativeTerrainSave().

Referenced by yaze::editor::OverworldEditor::Save(), and Save().

Here is the call graph for this function:

◆ SaveMap32Expanded()

◆ SaveMap32Tiles()

◆ SaveMapProperties()

◆ SaveMusic()

◆ SaveAreaSizes()

absl::Status yaze::zelda3::Overworld::SaveAreaSizes ( )

◆ AssignMapSizes()

void yaze::zelda3::Overworld::AssignMapSizes ( std::vector< OverworldMap > & maps)

Assign map sizes based on area size enum (v3+)

Loads all maps from ROM to see what size they are.

Parameters
mapsThe maps to update (passed by reference)

Definition at line 474 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, yaze::zelda3::LargeArea, yaze::zelda3::SmallArea, yaze::zelda3::TallArea, and yaze::zelda3::WideArea.

Referenced by Load().

◆ ConfigureMultiAreaMap()

◆ rom()

◆ mutable_rom()

auto yaze::zelda3::Overworld::mutable_rom ( )
inline

Definition at line 694 of file overworld.h.

References rom_.

◆ GetProjectedWriteRanges()

◆ HasExpandedPointerTables()

bool yaze::zelda3::Overworld::HasExpandedPointerTables ( ) const
inline

Check if the ROM has expanded pointer tables for tail maps.

Returns true if the TailMapExpansion.asm patch has been applied, enabling support for maps 0xA0-0xBF. Detection is based on the marker byte at 0x1423FF being 0xEA.

Definition at line 713 of file overworld.h.

References yaze::zelda3::zscream::CanUseTailExpansion(), yaze::Rom::data(), yaze::zelda3::GetExpandedPtrTableMagic(), yaze::zelda3::GetExpandedPtrTableMarker(), rom_, and yaze::Rom::size().

Referenced by DecompressAllMapTilesParallel(), and EnsureMapBuilt().

◆ Destroy()

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

◆ GetTileFromPosition()

int yaze::zelda3::Overworld::GetTileFromPosition ( ImVec2 position) const
inline

◆ GetMapTiles()

◆ overworld_maps()

◆ overworld_map()

auto yaze::zelda3::Overworld::overworld_map ( int i) const
inline

Definition at line 770 of file overworld.h.

References overworld_maps_.

Referenced by yaze::editor::OverworldEditor::BuildContextSnapshot(), yaze::cli::overworld::BuildMapSummary(), yaze::editor::BuildOverworldMapMetadata(), yaze::editor::anonymous_namespace{map_properties.cc}::CaptureMapMetadataClipboard(), yaze::editor::LyraTerrainCanvas::CheckAssetSources(), yaze::editor::CanvasNavigationManager::CheckForCurrentMap(), yaze::cli::overworld::CollectTileUsage(), yaze::editor::LyraTerrainCanvas::CopyNativeGraphicsSettings(), yaze::zelda3::DescribeMainGroupUsage(), yaze::zelda3::DescribeRoomsetUsage(), yaze::editor::OverworldToolbar::Draw(), yaze::editor::OverworldSidebar::Draw(), yaze::editor::OverworldSidebar::DrawAreaSection(), yaze::editor::TilePaintingManager::DrawBrushPreview(), yaze::editor::MapPropertiesSystem::DrawCustomBackgroundColorEditor(), yaze::editor::OverworldSidebar::DrawGraphicsSection(), yaze::editor::OverworldSidebar::DrawMusicSection(), yaze::editor::MapPropertiesSystem::DrawOverlayEditor(), yaze::editor::MapPropertiesSystem::DrawOverlayPreviewOnMap(), yaze::editor::OverworldSidebar::DrawPaletteSection(), yaze::editor::OverworldEditor::DrawProjectGraphicsSource(), yaze::editor::LyraTerrainCanvas::DrawProperties(), yaze::editor::OverworldSidebar::DrawQuickProperties(), yaze::editor::UsageStatisticsCard::DrawUsageGrid(), yaze::editor::UsageStatisticsCard::DrawUsageStates(), yaze::editor::OverworldMapTextureCoordinator::EnsureMapTexture(), yaze::cli::handlers::OverworldDescribeMapCommandHandler::Execute(), yaze::cli::handlers::OverworldListSpritesCommandHandler::Execute(), yaze::cli::handlers::OverworldExportGraphCommandHandler::Execute(), yaze::cli::handlers::OverworldSpriteEditCommandHandler::ExecuteWithContext(), GetTile8CollisionTypes(), yaze::editor::OverworldEditor::GraphicsImportContext(), yaze::editor::EntityMutationService::InsertEntity(), yaze::editor::InsertEntrance(), yaze::editor::InsertExit(), yaze::zelda3::InspectSpecialEntrances(), yaze::editor::OverworldEditor::LoadGraphics(), yaze::cli::overworld::LocateScreenTile(), yaze::editor::anonymous_namespace{canvas_navigation_manager.cc}::MapFromCanvasPosition(), yaze::editor::CanvasNavigationManager::MapUnderCursor(), yaze::editor::OverworldEditor::NormalizeCurrentSelectionState(), yaze::editor::OverworldEditor::OpenGraphicsForTile16Quadrant(), yaze::editor::OverworldEditor::OpenProjectGraphicsSource(), yaze::editor::OverworldCanvasRenderer::PrepareContextMenu(), yaze::editor::CanvasNavigationManager::ProcessPreloadQueue(), yaze::editor::CanvasNavigationManager::QueueAdjacentMapsForPreload(), yaze::editor::MapPropertiesSystem::ReadPropertyValue(), yaze::editor::MapRefreshCoordinator::RefreshMapProperties(), yaze::editor::MapRefreshCoordinator::RefreshTile16Blockset(), yaze::app::service::RenderService::RenderOverworldArea(), yaze::cli::overworld::ResolveAreaTileForMap(), yaze::zelda3::ResolveLyraMapAssets(), yaze::editor::anonymous_namespace{canvas_navigation_manager.cc}::SelectMapFallback(), yaze::editor::OverworldEditor::SelectMapForEditing(), yaze::editor::OverworldEditor::set_current_map(), yaze::editor::MapPropertiesSystem::SetupCanvasContextMenu(), yaze::editor::TilePaintingManager::Tile16PixelsForMap(), yaze::editor::OverworldEditor::TryPlaceArmedItem(), and yaze::editor::anonymous_namespace{entity_operations.cc}::ValidateRecordPosition().

◆ mutable_overworld_map()

◆ exits()

◆ mutable_exits()

◆ tiles16()

◆ tiles32_unique()

auto yaze::zelda3::Overworld::tiles32_unique ( ) const
inline

◆ mutable_tiles16()

◆ sprites()

auto yaze::zelda3::Overworld::sprites ( int state) const
inline

◆ mutable_sprites()

◆ current_graphics()

const std::vector< uint8_t > & yaze::zelda3::Overworld::current_graphics ( ) const
inline

Definition at line 797 of file overworld.h.

References current_map_, is_current_map_valid(), and overworld_maps_.

Referenced by yaze::editor::OverworldEditor::LoadGraphics(), and LoadSpritesFromMap().

Here is the call graph for this function:

◆ entrances() [1/2]

◆ entrances() [2/2]

auto & yaze::zelda3::Overworld::entrances ( )
inline

Definition at line 806 of file overworld.h.

References all_entrances_.

◆ mutable_entrances()

auto yaze::zelda3::Overworld::mutable_entrances ( )
inline

◆ holes() [1/2]

◆ holes() [2/2]

auto & yaze::zelda3::Overworld::holes ( )
inline

Definition at line 809 of file overworld.h.

References all_holes_.

◆ mutable_holes()

auto yaze::zelda3::Overworld::mutable_holes ( )
inline

Definition at line 810 of file overworld.h.

References all_holes_.

Referenced by yaze::editor::OverworldEditor::ApplyEntranceEdit().

◆ deleted_entrances()

auto yaze::zelda3::Overworld::deleted_entrances ( ) const
inline

Definition at line 811 of file overworld.h.

References deleted_entrances_.

◆ mutable_deleted_entrances()

auto yaze::zelda3::Overworld::mutable_deleted_entrances ( )
inline

Definition at line 812 of file overworld.h.

References deleted_entrances_.

◆ current_area_palette()

const gfx::SnesPalette & yaze::zelda3::Overworld::current_area_palette ( ) const
inline

Definition at line 813 of file overworld.h.

References current_map_, is_current_map_valid(), and overworld_maps_.

Referenced by yaze::editor::OverworldEditor::LoadGraphics().

Here is the call graph for this function:

◆ current_map_bitmap_data()

const std::vector< uint8_t > & yaze::zelda3::Overworld::current_map_bitmap_data ( ) const
inline

Definition at line 819 of file overworld.h.

References current_map_, is_current_map_valid(), and overworld_maps_.

Here is the call graph for this function:

◆ tile16_blockset_data()

const std::vector< uint8_t > & yaze::zelda3::Overworld::tile16_blockset_data ( ) const
inline

Definition at line 825 of file overworld.h.

References current_map_, is_current_map_valid(), and overworld_maps_.

Referenced by yaze::editor::OverworldEditor::LoadGraphics().

Here is the call graph for this function:

◆ is_current_map_valid()

bool yaze::zelda3::Overworld::is_current_map_valid ( ) const
inline

◆ is_loaded()

auto yaze::zelda3::Overworld::is_loaded ( ) const
inline

Definition at line 836 of file overworld.h.

References is_loaded_.

Referenced by yaze::editor::OverworldEditor::ApplyTile16Stencil(), yaze::editor::OverworldEditor::AutomationGetTile(), yaze::editor::OverworldEditor::AutomationSetTile(), yaze::zelda3::BindLyraTerrainSource(), yaze::editor::OverworldEditor::BuildContextSnapshot(), yaze::editor::OverworldEditor::CheckRomReplacement(), yaze::editor::LyraTerrainCanvas::CopyNativeGraphicsSettings(), yaze::zelda3::DescribeMainGroupUsage(), yaze::zelda3::DescribeRoomsetUsage(), yaze::editor::UsageStatisticsCard::Draw(), yaze::editor::OverworldToolbar::Draw(), yaze::editor::OverworldSidebar::Draw(), yaze::editor::MapPropertiesSystem::DrawCustomBackgroundColorEditor(), yaze::editor::MapPropertiesSystem::DrawOverlayEditor(), yaze::editor::OverworldCanvasRenderer::DrawOverworldCanvas(), yaze::editor::OverworldSidebar::DrawQuickProperties(), yaze::editor::EntityMutationService::InsertEntity(), yaze::editor::InsertEntrance(), yaze::editor::InsertExit(), yaze::editor::InsertItem(), yaze::editor::InsertSprite(), yaze::zelda3::InspectSpecialEntrances(), yaze::editor::OverworldEditor::IsProjectTerrainMap(), yaze::editor::OverworldEditor::JumpToMap(), yaze::editor::OverworldEditor::Load(), yaze::editor::OverworldEditor::OpenGraphicsForContextTile16(), yaze::editor::OverworldEditor::OpenGraphicsForTile16Quadrant(), yaze::editor::OverworldCanvasRenderer::PrepareContextMenu(), yaze::editor::OverworldEditor::RefreshPendingProjectGraphics(), yaze::zelda3::ResolveLyraMapAssets(), yaze::editor::OverworldEditor::SampleContextTile16(), yaze::editor::EditorManager::SaveRomInternal(), yaze::editor::MapPropertiesSystem::SetupCanvasContextMenu(), and yaze::editor::OverworldEditor::Update().

◆ expanded_tile16()

auto yaze::zelda3::Overworld::expanded_tile16 ( ) const
inline

◆ expanded_tile32()

auto yaze::zelda3::Overworld::expanded_tile32 ( ) const
inline

◆ expanded_entrances()

auto yaze::zelda3::Overworld::expanded_entrances ( ) const
inline

Definition at line 839 of file overworld.h.

References expanded_entrances_.

Referenced by yaze::editor::InsertEntrance().

◆ has_tail_map_expansion()

bool yaze::zelda3::Overworld::has_tail_map_expansion ( ) const
inline

Definition at line 840 of file overworld.h.

References has_tail_map_expansion_.

◆ set_has_tail_map_expansion()

void yaze::zelda3::Overworld::set_has_tail_map_expansion ( bool v)
inline

Definition at line 841 of file overworld.h.

References has_tail_map_expansion_.

◆ current_map_id()

int yaze::zelda3::Overworld::current_map_id ( ) const
inline

Definition at line 842 of file overworld.h.

References current_map_.

◆ current_world()

int yaze::zelda3::Overworld::current_world ( ) const
inline

◆ set_current_map()

◆ set_current_world()

◆ set_game_state()

◆ GetTile()

◆ SetTile()

◆ map_tiles()

auto yaze::zelda3::Overworld::map_tiles ( ) const
inline

◆ mutable_map_tiles()

auto yaze::zelda3::Overworld::mutable_map_tiles ( )
inline

◆ all_items()

◆ mutable_all_items()

◆ all_tiles_types()

auto yaze::zelda3::Overworld::all_tiles_types ( ) const
inline

Definition at line 870 of file overworld.h.

References all_tiles_types_.

◆ mutable_all_tiles_types()

auto yaze::zelda3::Overworld::mutable_all_tiles_types ( )
inline

Definition at line 871 of file overworld.h.

References all_tiles_types_.

Referenced by yaze::editor::OverworldEditor::Load().

◆ all_sprites()

auto yaze::zelda3::Overworld::all_sprites ( ) const
inline

Definition at line 872 of file overworld.h.

References all_sprites_.

◆ diggable_tiles()

const DiggableTiles & yaze::zelda3::Overworld::diggable_tiles ( ) const
inline

◆ mutable_diggable_tiles()

DiggableTiles * yaze::zelda3::Overworld::mutable_diggable_tiles ( )
inline

Definition at line 876 of file overworld.h.

References diggable_tiles_.

◆ LoadDiggableTiles()

absl::Status yaze::zelda3::Overworld::LoadDiggableTiles ( )

Definition at line 3630 of file overworld.cc.

References diggable_tiles_, and yaze::zelda3::DiggableTiles::SetVanillaDefaults().

Referenced by Load().

Here is the call graph for this function:

◆ SaveDiggableTiles()

absl::Status yaze::zelda3::Overworld::SaveDiggableTiles ( )

Definition at line 3641 of file overworld.cc.

References cached_version_, yaze::zelda3::OverworldVersionHelper::GetVersion(), and rom_.

Referenced by Save().

Here is the call graph for this function:

◆ AutoDetectDiggableTiles()

◆ FetchLargeMaps()

void yaze::zelda3::Overworld::FetchLargeMaps ( )
private

Definition at line 381 of file overworld.cc.

References yaze::zelda3::kNumOverworldMaps, and overworld_maps_.

Referenced by Load().

◆ GetTile16ForTile32()

absl::StatusOr< uint16_t > yaze::zelda3::Overworld::GetTile16ForTile32 ( int index,
int quadrant,
int dimension,
const uint32_t * map32address )
private

Definition at line 726 of file overworld.cc.

References ASSIGN_OR_RETURN, and rom().

Referenced by AssembleMap32Tiles().

Here is the call graph for this function:

◆ AssembleMap32Tiles()

◆ AssembleMap16Tiles()

absl::Status yaze::zelda3::Overworld::AssembleMap16Tiles ( )
private

Definition at line 838 of file overworld.cc.

References ASSIGN_OR_RETURN, expanded_tile16_, yaze::zelda3::ReadMap16Tiles(), rom(), tiles16(), and tiles16_.

Referenced by BuildLyraTerrainPreview(), and Load().

Here is the call graph for this function:

◆ AssignWorldTiles()

void yaze::zelda3::Overworld::AssignWorldTiles ( int x,
int y,
int sx,
int sy,
int tpos,
OverworldBlockset & world )
private

Definition at line 850 of file overworld.cc.

References tiles32_unique_.

Referenced by BuildLyraTerrainPreview(), OrganizeMapTiles(), and SetLyraA0Tile32().

◆ FillBlankMapTiles()

void yaze::zelda3::Overworld::FillBlankMapTiles ( int map_index)
private

Definition at line 873 of file overworld.cc.

References yaze::zelda3::kDarkWorldMapIdStart, yaze::zelda3::kSpecialWorldMapIdStart, and SelectWorldBlockset().

Referenced by DecompressAllMapTilesParallel(), and EnsureMapBuilt().

Here is the call graph for this function:

◆ SelectWorldBlockset()

OverworldBlockset & yaze::zelda3::Overworld::SelectWorldBlockset ( int world_type)
private

◆ OrganizeMapTiles()

void yaze::zelda3::Overworld::OrganizeMapTiles ( std::vector< uint8_t > & bytes,
std::vector< uint8_t > & bytes2,
int i,
int sx,
int sy,
int & ttpos )
private

◆ DecompressAllMapTilesParallel()

◆ BuildLyraTerrainPreview()

◆ MapTilesUnchanged()

◆ SheetRevisionsForKey()

Overworld::TilesetRevisions yaze::zelda3::Overworld::SheetRevisionsForKey ( const OverworldTilesetKey & key) const
private

Definition at line 1341 of file overworld.cc.

References game_data_, yaze::zelda3::GraphicsSheetStore::Revision(), and yaze::zelda3::GraphicsSheetStoreHolder::sheet_store.

Referenced by BuildMapWithTilesetCache().

Here is the call graph for this function:

◆ Tiles16Fingerprint()

uint64_t yaze::zelda3::Overworld::Tiles16Fingerprint ( ) const
private

Definition at line 1262 of file overworld.cc.

References tiles16_.

Referenced by BuildMapWithTilesetCache().

◆ BuildMapWithTilesetCache()

absl::Status yaze::zelda3::Overworld::BuildMapWithTilesetCache ( int map_index,
int world_type )
private

Member Data Documentation

◆ rom_

◆ game_data_

GameData* yaze::zelda3::Overworld::game_data_ = nullptr
private

◆ is_loaded_

bool yaze::zelda3::Overworld::is_loaded_ = false
private

◆ expanded_tile16_

bool yaze::zelda3::Overworld::expanded_tile16_ = false
private

Definition at line 910 of file overworld.h.

Referenced by AssembleMap16Tiles(), expanded_tile16(), GetProjectedWriteRanges(), Load(), and Save().

◆ expanded_tile32_

bool yaze::zelda3::Overworld::expanded_tile32_ = false
private

Definition at line 911 of file overworld.h.

Referenced by AssembleMap32Tiles(), expanded_tile32(), GetProjectedWriteRanges(), Load(), and Save().

◆ expanded_entrances_

bool yaze::zelda3::Overworld::expanded_entrances_ = false
private

Definition at line 912 of file overworld.h.

Referenced by BuildLyraTerrainPreview(), expanded_entrances(), and Load().

◆ has_tail_map_expansion_

bool yaze::zelda3::Overworld::has_tail_map_expansion_ = false
private

◆ game_state_

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

◆ current_map_

int yaze::zelda3::Overworld::current_map_ = 0
private

◆ current_world_

int yaze::zelda3::Overworld::current_world_ = 0
private

Definition at line 917 of file overworld.h.

Referenced by current_world(), GetTile(), GetTileFromPosition(), set_current_world(), and SetTile().

◆ cached_version_

◆ map_tiles_

◆ descriptor_layout_

rom::LyraLayoutInspection yaze::zelda3::Overworld::descriptor_layout_
private

◆ lyra_a0_tiles_

std::array<uint16_t, 256> yaze::zelda3::Overworld::lyra_a0_tiles_ {}
private

Definition at line 924 of file overworld.h.

Referenced by BuildLyraTerrainPreview(), lyra_a0_tiles(), and SetLyraA0Tile32().

◆ private_loaded_tiles16_

std::vector<gfx::Tile16> yaze::zelda3::Overworld::private_loaded_tiles16_
private

Definition at line 930 of file overworld.h.

Referenced by Load(), and ValidatePrivateNativeTerrainSave().

◆ private_loaded_overlays_

std::vector<uint8_t> yaze::zelda3::Overworld::private_loaded_overlays_
private

Definition at line 931 of file overworld.h.

Referenced by Load(), and ValidatePrivateNativeTerrainSave().

◆ loaded_map_tiles_

OverworldMapTiles yaze::zelda3::Overworld::loaded_map_tiles_
private

Definition at line 932 of file overworld.h.

Referenced by BuildLyraTerrainPreview(), CommitSavedMapTiles(), Load(), and MapTilesUnchanged().

◆ loaded_map_tiles_valid_

bool yaze::zelda3::Overworld::loaded_map_tiles_valid_ = false
private

◆ staged_map_tiles_

OverworldMapTiles yaze::zelda3::Overworld::staged_map_tiles_
private

Definition at line 934 of file overworld.h.

Referenced by CommitSavedMapTiles(), RollbackSavedMapTiles(), and StageSavedMapTiles().

◆ staged_map_tiles_valid_

bool yaze::zelda3::Overworld::staged_map_tiles_valid_ = false
private

Definition at line 935 of file overworld.h.

Referenced by CommitSavedMapTiles(), RollbackSavedMapTiles(), and StageSavedMapTiles().

◆ map_tiles_mutex_

std::mutex yaze::zelda3::Overworld::map_tiles_mutex_
mutableprivate

Definition at line 939 of file overworld.h.

◆ kMaxBuiltMaps

constexpr int yaze::zelda3::Overworld::kMaxBuiltMaps = 8
staticconstexprprivate

Definition at line 944 of file overworld.h.

Referenced by EnsureMapBuilt().

◆ built_map_lru_

std::deque<int> yaze::zelda3::Overworld::built_map_lru_
private

Definition at line 945 of file overworld.h.

Referenced by BuildLyraTerrainPreview(), Destroy(), EnsureMapBuilt(), and LoadOverworldMaps().

◆ tileset_cache_

◆ tileset_cache_clock_

uint64_t yaze::zelda3::Overworld::tileset_cache_clock_ = 0
private

Definition at line 961 of file overworld.h.

Referenced by BuildMapWithTilesetCache().

◆ kMaxCachedTilesets

constexpr size_t yaze::zelda3::Overworld::kMaxCachedTilesets = 24
staticconstexprprivate

Definition at line 965 of file overworld.h.

Referenced by BuildMapWithTilesetCache().

◆ overworld_maps_

◆ graphics_preview_

OverworldGraphicsPreview yaze::zelda3::Overworld::graphics_preview_
private

Definition at line 972 of file overworld.h.

Referenced by SetGraphicsPreview(), and SyncAreaProperties().

◆ all_entrances_

std::vector<OverworldEntrance> yaze::zelda3::Overworld::all_entrances_
private

Definition at line 973 of file overworld.h.

Referenced by Destroy(), entrances(), entrances(), Load(), mutable_entrances(), and SaveEntrances().

◆ all_holes_

std::vector<OverworldEntrance> yaze::zelda3::Overworld::all_holes_
private

Definition at line 974 of file overworld.h.

Referenced by holes(), holes(), Load(), mutable_holes(), and SaveEntrances().

◆ all_exits_

std::vector<OverworldExit> yaze::zelda3::Overworld::all_exits_
private

Definition at line 975 of file overworld.h.

Referenced by Destroy(), exits(), Load(), mutable_exits(), and SaveExits().

◆ all_items_

std::vector<OverworldItem> yaze::zelda3::Overworld::all_items_
private

Definition at line 976 of file overworld.h.

Referenced by all_items(), Destroy(), Load(), mutable_all_items(), and SaveItems().

◆ tiles16_

◆ tiles32_

std::vector<gfx::Tile32> yaze::zelda3::Overworld::tiles32_
private

Definition at line 979 of file overworld.h.

Referenced by Destroy().

◆ tiles32_unique_

◆ tiles32_list_

std::vector<uint16_t> yaze::zelda3::Overworld::tiles32_list_
private

Definition at line 982 of file overworld.h.

Referenced by CreateTile32Tilemap(), Load(), and SaveOverworldMaps().

◆ deleted_entrances_

std::vector<uint64_t> yaze::zelda3::Overworld::deleted_entrances_
private

Definition at line 983 of file overworld.h.

Referenced by deleted_entrances(), and mutable_deleted_entrances().

◆ map_parent_

std::array<uint8_t, kNumOverworldMaps> yaze::zelda3::Overworld::map_parent_ = {0}
private

Definition at line 985 of file overworld.h.

Referenced by BuildLyraTerrainPreview(), Load(), and LoadSpritesFromMap().

◆ all_tiles_types_

std::array<uint8_t, kNumTileTypes> yaze::zelda3::Overworld::all_tiles_types_ = {0}
private

◆ all_sprites_

std::array<std::vector<Sprite>, 3> yaze::zelda3::Overworld::all_sprites_
private

◆ sprite_maps_loaded_

std::array<std::array<bool, 160>, 3> yaze::zelda3::Overworld::sprite_maps_loaded_ {}
private

Definition at line 988 of file overworld.h.

Referenced by Destroy(), LoadSpritesFromMap(), and PrepareSpriteSave().

◆ diggable_tiles_

DiggableTiles yaze::zelda3::Overworld::diggable_tiles_
private

◆ map_data_p1

std::array<std::vector<uint8_t>, kNumOverworldMaps> yaze::zelda3::Overworld::map_data_p1
private

Definition at line 990 of file overworld.h.

Referenced by SaveOverworldMaps().

◆ map_data_p2

std::array<std::vector<uint8_t>, kNumOverworldMaps> yaze::zelda3::Overworld::map_data_p2
private

Definition at line 991 of file overworld.h.

Referenced by SaveOverworldMaps().

◆ map_pointers1_id

std::array<int, kNumOverworldMaps> yaze::zelda3::Overworld::map_pointers1_id
private

Definition at line 992 of file overworld.h.

Referenced by SaveOverworldMaps().

◆ map_pointers2_id

std::array<int, kNumOverworldMaps> yaze::zelda3::Overworld::map_pointers2_id
private

Definition at line 993 of file overworld.h.

Referenced by SaveOverworldMaps().

◆ map_pointers1

std::array<int, kNumOverworldMaps> yaze::zelda3::Overworld::map_pointers1
private

Definition at line 994 of file overworld.h.

Referenced by SaveOverworldMaps().

◆ map_pointers2

std::array<int, kNumOverworldMaps> yaze::zelda3::Overworld::map_pointers2
private

Definition at line 995 of file overworld.h.

Referenced by SaveOverworldMaps().


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