1#ifndef YAZE_ZELDA3_GFX_SHEET_INVENTORY_H
2#define YAZE_ZELDA3_GFX_SHEET_INVENTORY_H
12#include "absl/status/statusor.h"
13#include "nlohmann/json_fwd.hpp"
108 std::vector<GfxSheetInventoryEntry>
sheets;
119 const Rom& rom,
const std::map<int, OverworldAreaGfxInfo>& areas,
120 const std::map<int, RoomGfxInfo>& rooms,
127 Rom& rom, GameData* game_data =
nullptr);
147 int spriteset,
const std::map<int, OverworldAreaGfxInfo>& areas,
148 const std::map<int, RoomGfxInfo>& rooms);
151 const std::map<int, OverworldAreaGfxInfo>& areas,
152 const std::map<int, RoomGfxInfo>& rooms);
171 const std::map<int, RoomGfxInfo>& rooms,
172 const Overworld* live_overworld =
nullptr);
196 Rom& rom,
GameData& game_data,
int group,
int slot,
197 const std::map<int, RoomGfxInfo>& rooms,
198 const std::map<int, uint8_t>& explicit_room_main = {},
199 const Overworld* live_overworld =
nullptr);
212 const std::string& csv_text);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Locates graphics sheets in the ROM and writes edited sheets back.
Zelda 3 specific classes and functions.
constexpr int kNumDungeonRooms
absl::StatusOr< RoomsetUsageReport > DescribeRoomsetUsage(Rom &rom, GameData &game_data, int roomset, const std::map< int, RoomGfxInfo > &rooms, const Overworld *live_overworld)
GfxGroupUsage FindSpritesetUsage(int spriteset, const std::map< int, OverworldAreaGfxInfo > &areas, const std::map< int, RoomGfxInfo > &rooms)
absl::StatusOr< MainGroupUsageReport > DescribeMainGroupUsage(Rom &rom, GameData &game_data, int group, int slot, const std::map< int, RoomGfxInfo > &rooms, const std::map< int, uint8_t > &explicit_room_main, const Overworld *live_overworld)
std::map< int, OverworldAreaGfxInfo > CollectOverworldAreaGfx(Rom &rom, GameData *game_data)
const char * GfxSheetInventoryKindName(GfxSheetStorageKind kind)
absl::StatusOr< GfxSheetInventory > BuildGfxSheetInventory(const Rom &rom, const std::map< int, OverworldAreaGfxInfo > &areas, const std::map< int, RoomGfxInfo > &rooms, const GfxSheetInventoryOptions &options)
constexpr uint16_t kDungeonSpritesetBase
constexpr uint16_t kSpriteSheetValueCount
std::map< int, RoomGfxInfo > CollectRoomGfx(const Rom &rom)
constexpr uint16_t kSpriteSheetBase
GfxGroupUsage FindRoomsetUsage(int roomset, const std::map< int, OverworldAreaGfxInfo > &areas, const std::map< int, RoomGfxInfo > &rooms)
std::map< uint8_t, std::set< std::string > > ParseSpritesetLabelCsv(const std::string &csv_text)
constexpr int kNumOverworldAreas
nlohmann::json GfxSheetInventoryToJson(const GfxSheetInventory &inventory)
Where one spriteset or roomset is used.
std::array< std::vector< int >, 3 > ow_areas_by_state
std::vector< int > ow_areas
std::vector< uint16_t > same_content_as
std::optional< size_t > stored_bytes
std::vector< std::string > labels
std::vector< uint16_t > shares_pointer_with
std::optional< uint8_t > sprite_value
std::vector< int > empty_16x16_blocks
std::vector< uint16_t > reserved_blocks
std::vector< int > FreeBlocks() const
std::set< uint16_t > flagged_sheets
std::map< uint8_t, std::set< std::string > > sprite_value_labels
std::map< uint16_t, std::vector< uint16_t > > reserved_blocks
std::set< uint16_t > reserved_sheets
std::vector< GfxSheetInventoryEntry > sheets
std::vector< std::array< uint8_t, 8 > > main_blocksets
std::vector< std::array< uint8_t, 4 > > spritesets
std::vector< std::array< uint8_t, 4 > > room_blocksets
std::map< int, OverworldAreaGfxInfo > overworld_areas
std::map< int, RoomGfxInfo > rooms
std::vector< int > ow_areas_sprite
std::vector< int > spritesets
std::vector< int > room_blocksets
std::vector< int > main_blocksets
std::vector< int > ow_areas_static
std::vector< int > rooms_sprite
std::vector< int > overridden_ow_areas
std::vector< int > independent_ow_areas
std::vector< int > inferred_default_rooms
std::vector< int > direct_default_rooms
std::vector< int > ow_areas
std::vector< int > fallback_rooms
std::vector< int > overridden_rooms
std::vector< int > explicit_preview_rooms
bool slot7_bottom_half_only
std::array< uint8_t, 16 > static_graphics
std::array< uint8_t, 3 > sprite_graphics
std::vector< int > overridden_ow_areas
std::vector< int > ow_areas
std::vector< int > independent_ow_areas