1#ifndef YAZE_APP_DATA_OVERWORLD_H
2#define YAZE_APP_DATA_OVERWORLD_H
8#include "absl/status/status.h"
164 int transition_target_north,
int transition_target_west,
165 int transition_pos_x,
int transition_pos_y,
166 int screen_change_1,
int screen_change_2,
167 int screen_change_3,
int screen_change_4);
169 int transition_target_north,
int transition_target_west,
170 int transition_pos_x,
int transition_pos_y,
171 int screen_change_1,
int screen_change_2,
172 int screen_change_3,
int screen_change_4);
174 int transition_target_north,
int transition_target_west,
175 int transition_pos_x,
int transition_pos_y,
176 int screen_change_1,
int screen_change_2,
177 int screen_change_3,
int screen_change_4);
179 int transition_target_north,
int transition_target_west,
180 int transition_pos_x,
int transition_pos_y,
181 int screen_change_1,
int screen_change_2,
182 int screen_change_3,
int screen_change_4);
189 bool enable_mosaic,
bool enable_gfx_groups,
190 bool enable_subscreen_overlay,
bool enable_animated);
245 switch (world_type) {
302 void SetTile(
int x,
int y, uint16_t tile_id) {
330 const uint32_t *map32address);
336 std::vector<uint8_t> &bytes2,
int i,
int sx,
int sy,
The Rom class is used to load, save, and modify Rom data.
Represents the full Overworld data, light and dark world.
std::vector< uint64_t > deleted_entrances_
absl::Status SaveMap32Expanded()
auto tile16_blockset_data() const
auto current_area_palette() const
absl::Status DecompressAllMapTilesParallel()
std::vector< uint16_t > tiles32_list_
void set_current_world(int world)
int GetTileFromPosition(ImVec2 position) const
auto mutable_deleted_entrances()
absl::Status Load(Rom *rom)
std::vector< OverworldItem > all_items_
void OrganizeMapTiles(std::vector< uint8_t > &bytes, std::vector< uint8_t > &bytes2, int i, int sx, int sy, int &ttpos)
auto expanded_tile32() const
std::array< int, kNumOverworldMaps > map_pointers1
std::vector< gfx::Tile32 > tiles32_unique_
auto deleted_entrances() const
void DecompressAllMapTiles()
absl::Status SaveMapProperties()
const std::vector< OverworldEntrance > & holes() const
absl::Status SaveMap32Tiles()
std::vector< OverworldEntrance > all_entrances_
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)
OverworldMapTiles map_tiles_
absl::Status SaveMap16Tiles()
absl::Status SaveAreaSizes()
std::vector< gfx::Tile16 > tiles16() const
auto sprites(int state) const
absl::Status SaveLargeMaps()
std::array< uint8_t, kNumOverworldMaps > map_parent_
void AssignWorldTiles(int x, int y, int sx, int sy, int tpos, OverworldBlockset &world)
auto expanded_tile16() const
std::array< uint8_t, kNumTileTypes > all_tiles_types_
auto current_graphics() const
absl::Status CreateTile32Tilemap()
std::array< int, kNumOverworldMaps > map_pointers1_id
auto overworld_map(int i) const
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)
auto all_tiles_types() const
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)
void set_current_map(int i)
auto mutable_overworld_map(int i)
absl::Status SaveEntrances()
absl::Status LoadSprites()
absl::Status EnsureMapBuilt(int map_index)
Build a map on-demand if it hasn't been built yet.
std::vector< OverworldMap > overworld_maps_
absl::Status SaveAreaSpecificBGColors()
absl::Status LoadEntrances()
absl::Status Save(Rom *rom)
std::vector< gfx::Tile32 > tiles32_
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)
uint16_t GetTile(int x, int y) const
absl::Status SaveOverworldMaps()
auto mutable_all_tiles_types()
std::array< std::vector< Sprite >, 3 > all_sprites_
std::array< int, kNumOverworldMaps > map_pointers2_id
auto tiles32_unique() const
void SetTile(int x, int y, uint16_t tile_id)
absl::Status LoadOverworldMaps()
std::vector< gfx::Tile16 > tiles16_
auto expanded_entrances() const
absl::Status AssembleMap16Tiles()
std::mutex map_tiles_mutex_
auto mutable_sprites(int state)
absl::Status LoadSpritesFromMap(int sprite_start, int sprite_count, int sprite_index)
const std::vector< OverworldEntrance > & entrances() const
std::array< std::vector< uint8_t >, kNumOverworldMaps > map_data_p1
absl::Status SaveLargeMapsExpanded()
void AssignMapSizes(std::vector< OverworldMap > &maps)
Loads all maps from ROM to see what size they are.
absl::Status SaveMap16Expanded()
std::vector< OverworldExit > all_exits_
std::array< int, kNumOverworldMaps > map_pointers2
absl::StatusOr< uint16_t > GetTile16ForTile32(int index, int quadrant, int dimension, const uint32_t *map32address)
auto current_map_bitmap_data() const
std::array< std::vector< uint8_t >, kNumOverworldMaps > map_data_p2
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)
absl::Status SaveMapOverlays()
absl::Status AssembleMap32Tiles()
OverworldBlockset & GetMapTiles(int world_type)
absl::Status SaveOverworldTilesType()
absl::Status ConfigureMultiAreaMap(int parent_index, AreaSizeEnum size)
Configure a multi-area map structure (Large/Wide/Tall)
auto overworld_maps() const
std::vector< OverworldEntrance > all_holes_
constexpr int overworldSpecialSpritePaletteExpandedTemp
constexpr int kAreaGfxIdPtr
constexpr int overworldItemsPointersNew
constexpr int kOverworldSpritePaletteGroup
constexpr int kOverworldTransitionPositionY
constexpr int kNumMapsPerWorld
constexpr int kOverworldSpriteset
constexpr int kMap16ExpandedFlagPos
constexpr int LimitOfMap32
constexpr int NumberOfMap16Ex
constexpr int kOverworldScreenTileMapChangeByScreen1
constexpr int kOverworldMapDataOverflow
constexpr int kOverworldMapSizeHighByte
constexpr int overworldMessagesExpanded
constexpr int GravesTilemapPos
constexpr int overworldItemsAddressBank
constexpr int overworldSpritesBeginingExpanded
constexpr int kNumTileTypes
constexpr int NumberOfMap32
constexpr int kOverworldScreenSize
constexpr int kOverworldScreenTileMapChangeByScreen4
constexpr int kNumTile16Individual
constexpr int ExpandedOverlaySpace
constexpr int GravesCountOnY
constexpr int kMap16Tiles
constexpr int overworldSpritesAgahnimExpanded
constexpr int GravesYLine
constexpr int kNumOverworldMaps
constexpr int GravesXTilePos
constexpr int kOverworldMusicBeginning
constexpr int kMap32TileBLExpanded
constexpr int kOverworldTransitionPositionX
constexpr int kOverworldMusicDarkWorld
constexpr int overworldSpecialSpriteGFXGroupExpandedTemp
constexpr int kOverworldSpecialPalGroup
constexpr int kOverworldScreenSizeForLoading
constexpr int kOverworldSpritePaletteIds
constexpr int overworldTilesType
constexpr int overworldItemsAddress
constexpr int kMap32TileBRExpanded
constexpr int kMap32TileCountExpanded
constexpr int kTransitionTargetWest
constexpr int overworldMessages
constexpr int kOverworldMusicAgahnim
constexpr int overworldItemsEndData
constexpr int kOverworldSpritesZelda
constexpr int kOverworldMapParentId
constexpr int GraveLinkSpecialHole
constexpr int Map32PerScreen
constexpr int kMap32ExpandedFlagPos
constexpr int overworldItemsPointers
constexpr int overworldCustomMosaicASM
constexpr int kOverworldMusicMasterSword
constexpr int kOverworldMusicZelda
constexpr int kOverworldMessageIds
constexpr int NumberOfMap16
constexpr int kOverworldMapSize
constexpr int kOverworldScreenTileMapChangeByScreen2
constexpr int overworldSpritesDataStartExpanded
constexpr int overworldItemsStartDataNew
constexpr int kOverworldCompressedMapPos
constexpr int overworldCustomMosaicArray
constexpr int overworldBombDoorItemLocationsNew
constexpr int kOverworldSpritesBeginning
std::vector< std::vector< uint16_t > > OverworldBlockset
Represents tile32 data for the overworld.
constexpr int kOverworldScreenTileMapChangeByScreen3
constexpr int kMap16TilesExpanded
constexpr int kOverworldEntranceExpandedFlagPos
constexpr int kOverworldSpritesAgahnim
constexpr int kTransitionTargetNorth
constexpr int overworldSpritesZeldaExpanded
constexpr int kOverworldCompressedOverflowPos
constexpr int GravesYTilePos
constexpr int NumberOfOWSprites
constexpr int kMap32TileTRExpanded
constexpr int kOverworldMapPaletteIds
constexpr int kOverworldEntranceAllowedTilesLeft
constexpr int kOverworldSpecialGfxGroup
constexpr int kOverworldEntranceAllowedTilesRight
constexpr int GraveLinkSpecialStairs
Main namespace for the application.
Overworld map tile32 data.
OverworldBlockset dark_world
OverworldBlockset special_world
OverworldBlockset light_world