Classes | |
| struct | PhysicalChestRecord |
| struct | PhysicalStreamInfo |
| struct | TorchSegment |
Functions | |
| bool | RoomUsesTrackCornerAliases (const std::vector< RoomObject > &objects) |
| uint8_t | Layer2ModeFromHeaderByte (uint8_t byte0) |
| bool | IsDarkRoomHeaderByte (uint8_t byte0) |
| const LayerMergeType & | LayerMergeFromHeaderByte (uint8_t byte0) |
| background2 | Background2FromHeaderByte (uint8_t byte0) |
| template<typename WriteColor > | |
| void | PopulateDungeonRenderPaletteRows (const gfx::SnesPalette &dungeon_palette, const gfx::SnesPalette *hud_palette, WriteColor write_color) |
| PhysicalStreamInfo | AnalyzePhysicalStream (const std::vector< int > &room_addresses, int room_id, int known_region_end=-1) |
| absl::Status | GetObjectPointerTablePc (const std::vector< uint8_t > &rom_data, int *table_pc) |
| uint32_t | ReadRoomObjectAddressSnes (const std::vector< uint8_t > &rom_data, int table_pc, int room_id) |
| int | ReadRoomObjectAddressPc (const std::vector< uint8_t > &rom_data, int table_pc, int room_id) |
| absl::StatusOr< PhysicalStreamInfo > | GetObjectStreamInfo (const std::vector< uint8_t > &rom_data, int room_id) |
| absl::Status | GetSpritePointerTablePc (const std::vector< uint8_t > &rom_data, int *table_pc) |
| int | ReadRoomSpriteAddressPc (const std::vector< uint8_t > &rom_data, int table_pc, int room_id) |
| absl::StatusOr< PhysicalStreamInfo > | GetSpriteStreamInfo (const std::vector< uint8_t > &rom_data, int room_id) |
| int | MeasureSpriteStreamSize (const std::vector< uint8_t > &rom_data, int sprite_address, int hard_end) |
| absl::Status | RelocateDungeonStream (Rom *rom, int room_id, DungeonStreamKind expected_kind, const DungeonStreamLayout &layout, std::vector< uint8_t > encoded_stream) |
| absl::StatusOr< bool > | DungeonStreamRequiresCopyOnWrite (const Rom &rom, int room_id, DungeonStreamKind expected_kind, const DungeonStreamLayout &layout, size_t replacement_size) |
| std::vector< TorchSegment > | ParseRomTorchSegments (const std::vector< uint8_t > &rom_data, int bytes_count) |
| std::vector< uint8_t > | EncodeTorchSegmentForRoom (int room_id, const Room &room) |
| absl::Status | ValidateSpecialObjectDrawLayerSelector (const RoomObject &object, int room_id, const char *object_type) |
| absl::Status | ValidateLightableTorchForSave (const RoomObject &object, int room_id) |
| bool | HalfOpenRangesOverlap (int first_begin, int first_end, int second_begin, int second_end) |
| absl::Status | ValidateBlocksLoaderPointerOperand (const std::vector< uint8_t > &rom_data, int operand_pc) |
| absl::Status | PreflightBlocksLoaderDestinations (const std::vector< uint8_t > &rom_data, std::array< int, 4 > *destination_pcs) |
| std::vector< PhysicalChestRecord > | ParsePhysicalRomChests (const std::vector< uint8_t > &rom_data, int cpos, int byte_length) |
| void | AppendChestRecord (std::vector< uint8_t > *bytes, uint16_t word, uint8_t item) |
| void | AppendEditedChestRecord (std::vector< uint8_t > *bytes, int room_id, const chest_data &chest) |
| void | AppendChangedChestRuns (uint32_t pc, absl::Span< const uint8_t > expected, absl::Span< const uint8_t > replacement, std::vector< ChestWriteRun > *writes) |
| void | SortAndCoalesceChestRuns (std::vector< ChestWriteRun > *writes) |
| std::vector< uint8_t > | EncodeChestRoomState (int room_id, const Room &room) |
| absl::StatusOr< ChestSavePlan > | BuildChestSavePlanImpl (const Rom *rom, int room_count, const std::function< const Room *(int)> &room_lookup) |
| int | ReadRoomPotItemAddressPc (const std::vector< uint8_t > &rom_data, int room_id) |
| absl::StatusOr< PhysicalStreamInfo > | GetPotItemStreamInfo (const std::vector< uint8_t > &rom_data, int room_id) |
Variables | |
| constexpr int | kTorchesMaxSize = 0x120 |
| constexpr int | kBlocksRegionSize = 0x80 |
| constexpr std::array< int, 4 > | kBlocksPointerSlots |
| bool yaze::zelda3::anonymous_namespace{room.cc}::RoomUsesTrackCornerAliases | ( | const std::vector< RoomObject > & | objects | ) |
Definition at line 45 of file room.cc.
References RoomUsesTrackCornerAliases().
Referenced by RoomUsesTrackCornerAliases().

| uint8_t yaze::zelda3::anonymous_namespace{room.cc}::Layer2ModeFromHeaderByte | ( | uint8_t | byte0 | ) |
Definition at line 50 of file room.cc.
References Layer2ModeFromHeaderByte().
Referenced by Background2FromHeaderByte(), Layer2ModeFromHeaderByte(), and LayerMergeFromHeaderByte().

| bool yaze::zelda3::anonymous_namespace{room.cc}::IsDarkRoomHeaderByte | ( | uint8_t | byte0 | ) |
Definition at line 54 of file room.cc.
References IsDarkRoomHeaderByte().
Referenced by Background2FromHeaderByte(), IsDarkRoomHeaderByte(), and LayerMergeFromHeaderByte().

| const LayerMergeType & yaze::zelda3::anonymous_namespace{room.cc}::LayerMergeFromHeaderByte | ( | uint8_t | byte0 | ) |
Definition at line 58 of file room.cc.
References IsDarkRoomHeaderByte(), Layer2ModeFromHeaderByte(), and LayerMergeFromHeaderByte().
Referenced by LayerMergeFromHeaderByte().

| background2 yaze::zelda3::anonymous_namespace{room.cc}::Background2FromHeaderByte | ( | uint8_t | byte0 | ) |
Definition at line 64 of file room.cc.
References Background2FromHeaderByte(), IsDarkRoomHeaderByte(), and Layer2ModeFromHeaderByte().
Referenced by Background2FromHeaderByte().

| void yaze::zelda3::anonymous_namespace{room.cc}::PopulateDungeonRenderPaletteRows | ( | const gfx::SnesPalette & | dungeon_palette, |
| const gfx::SnesPalette * | hud_palette, | ||
| WriteColor | write_color ) |
Definition at line 72 of file room.cc.
References PopulateDungeonRenderPaletteRows(), and yaze::gfx::SnesPalette::size().
Referenced by PopulateDungeonRenderPaletteRows().

| PhysicalStreamInfo yaze::zelda3::anonymous_namespace{room.cc}::AnalyzePhysicalStream | ( | const std::vector< int > & | room_addresses, |
| int | room_id, | ||
| int | known_region_end = -1 ) |
Definition at line 222 of file room.cc.
References yaze::zelda3::anonymous_namespace{room.cc}::PhysicalStreamInfo::address, AnalyzePhysicalStream(), yaze::zelda3::anonymous_namespace{room.cc}::PhysicalStreamInfo::physical_end, and yaze::zelda3::anonymous_namespace{room.cc}::PhysicalStreamInfo::shared.
Referenced by AnalyzePhysicalStream(), GetObjectStreamInfo(), GetPotItemStreamInfo(), and GetSpriteStreamInfo().

| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::GetObjectPointerTablePc | ( | const std::vector< uint8_t > & | rom_data, |
| int * | table_pc ) |
Definition at line 270 of file room.cc.
References GetObjectPointerTablePc(), yaze::zelda3::kNumberOfRooms, yaze::zelda3::kRoomObjectPointer, and yaze::SnesToPc().
Referenced by GetObjectPointerTablePc(), and GetObjectStreamInfo().

| uint32_t yaze::zelda3::anonymous_namespace{room.cc}::ReadRoomObjectAddressSnes | ( | const std::vector< uint8_t > & | rom_data, |
| int | table_pc, | ||
| int | room_id ) |
Definition at line 293 of file room.cc.
References yaze::zelda3::kNumberOfRooms, and ReadRoomObjectAddressSnes().
Referenced by ReadRoomObjectAddressPc(), and ReadRoomObjectAddressSnes().

| int yaze::zelda3::anonymous_namespace{room.cc}::ReadRoomObjectAddressPc | ( | const std::vector< uint8_t > & | rom_data, |
| int | table_pc, | ||
| int | room_id ) |
Definition at line 307 of file room.cc.
References ReadRoomObjectAddressPc(), ReadRoomObjectAddressSnes(), and yaze::SnesToPc().
Referenced by GetObjectStreamInfo(), and ReadRoomObjectAddressPc().

| absl::StatusOr< PhysicalStreamInfo > yaze::zelda3::anonymous_namespace{room.cc}::GetObjectStreamInfo | ( | const std::vector< uint8_t > & | rom_data, |
| int | room_id ) |
Definition at line 317 of file room.cc.
References yaze::zelda3::anonymous_namespace{room.cc}::PhysicalStreamInfo::address, AnalyzePhysicalStream(), yaze::zelda3::GetDungeonObjectDataRegionEnd(), GetObjectPointerTablePc(), GetObjectStreamInfo(), yaze::zelda3::kNumberOfRooms, ReadRoomObjectAddressPc(), and RETURN_IF_ERROR.
Referenced by GetObjectStreamInfo().
| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::GetSpritePointerTablePc | ( | const std::vector< uint8_t > & | rom_data, |
| int * | table_pc ) |
Definition at line 337 of file room.cc.
References GetSpritePointerTablePc(), yaze::zelda3::kNumberOfRooms, yaze::zelda3::kRoomsSpritePointer, and yaze::SnesToPc().
Referenced by GetSpritePointerTablePc(), and GetSpriteStreamInfo().

| int yaze::zelda3::anonymous_namespace{room.cc}::ReadRoomSpriteAddressPc | ( | const std::vector< uint8_t > & | rom_data, |
| int | table_pc, | ||
| int | room_id ) |
Definition at line 358 of file room.cc.
References yaze::zelda3::kNumberOfRooms, ReadRoomSpriteAddressPc(), and yaze::SnesToPc().
Referenced by GetSpriteStreamInfo(), and ReadRoomSpriteAddressPc().

| absl::StatusOr< PhysicalStreamInfo > yaze::zelda3::anonymous_namespace{room.cc}::GetSpriteStreamInfo | ( | const std::vector< uint8_t > & | rom_data, |
| int | room_id ) |
Definition at line 380 of file room.cc.
References yaze::zelda3::anonymous_namespace{room.cc}::PhysicalStreamInfo::address, AnalyzePhysicalStream(), GetSpritePointerTablePc(), GetSpriteStreamInfo(), yaze::zelda3::kNumberOfRooms, yaze::zelda3::kSpritesDataEndExclusive, ReadRoomSpriteAddressPc(), and RETURN_IF_ERROR.
Referenced by GetSpriteStreamInfo().

| int yaze::zelda3::anonymous_namespace{room.cc}::MeasureSpriteStreamSize | ( | const std::vector< uint8_t > & | rom_data, |
| int | sprite_address, | ||
| int | hard_end ) |
Definition at line 401 of file room.cc.
References MeasureSpriteStreamSize().
Referenced by MeasureSpriteStreamSize().

| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::RelocateDungeonStream | ( | Rom * | rom, |
| int | room_id, | ||
| DungeonStreamKind | expected_kind, | ||
| const DungeonStreamLayout & | layout, | ||
| std::vector< uint8_t > | encoded_stream ) |
Definition at line 424 of file room.cc.
References yaze::zelda3::ApplyDungeonStreamWritePlan(), ASSIGN_OR_RETURN, yaze::zelda3::InventoryDungeonStreams(), yaze::zelda3::DungeonStreamLayout::kind, yaze::zelda3::PlanDungeonStreamWrites(), and RelocateDungeonStream().
Referenced by RelocateDungeonStream().

| absl::StatusOr< bool > yaze::zelda3::anonymous_namespace{room.cc}::DungeonStreamRequiresCopyOnWrite | ( | const Rom & | rom, |
| int | room_id, | ||
| DungeonStreamKind | expected_kind, | ||
| const DungeonStreamLayout & | layout, | ||
| size_t | replacement_size ) |
Definition at line 443 of file room.cc.
References yaze::zelda3::DungeonStreamInventory::aliases, ASSIGN_OR_RETURN, yaze::zelda3::DungeonStreamLayout::data_ranges, DungeonStreamRequiresCopyOnWrite(), yaze::zelda3::InventoryDungeonStreams(), yaze::zelda3::DungeonStreamInventory::issues, yaze::zelda3::DungeonStreamLayout::kind, yaze::zelda3::DungeonStreamInventory::layout, yaze::zelda3::DungeonStreamInventory::ok(), yaze::zelda3::DungeonStreamInventory::overlaps, yaze::zelda3::DungeonStreamLayout::pointer_count, and yaze::zelda3::DungeonStreamInventory::streams.
Referenced by DungeonStreamRequiresCopyOnWrite().

| std::vector< TorchSegment > yaze::zelda3::anonymous_namespace{room.cc}::ParseRomTorchSegments | ( | const std::vector< uint8_t > & | rom_data, |
| int | bytes_count ) |
Definition at line 2709 of file room.cc.
References yaze::zelda3::anonymous_namespace{room.cc}::TorchSegment::bytes, yaze::zelda3::kNumberOfRooms, yaze::zelda3::kTorchData, kTorchesMaxSize, ParseRomTorchSegments(), and yaze::zelda3::anonymous_namespace{room.cc}::TorchSegment::room_id.
Referenced by ParseRomTorchSegments().

| std::vector< uint8_t > yaze::zelda3::anonymous_namespace{room.cc}::EncodeTorchSegmentForRoom | ( | int | room_id, |
| const Room & | room ) |
Definition at line 2755 of file room.cc.
References yaze::zelda3::EncodeLightableTorchEntry(), EncodeTorchSegmentForRoom(), yaze::zelda3::Room::GetTileObjects(), yaze::zelda3::LightableTorchBytes::high, yaze::zelda3::LightableTorchBytes::low, yaze::zelda3::Nothing, and yaze::zelda3::Torch.
Referenced by EncodeTorchSegmentForRoom().

| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::ValidateSpecialObjectDrawLayerSelector | ( | const RoomObject & | object, |
| int | room_id, | ||
| const char * | object_type ) |
Definition at line 2782 of file room.cc.
References ValidateSpecialObjectDrawLayerSelector().
Referenced by ValidateLightableTorchForSave(), and ValidateSpecialObjectDrawLayerSelector().

| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::ValidateLightableTorchForSave | ( | const RoomObject & | object, |
| int | room_id ) |
Definition at line 2796 of file room.cc.
References RETURN_IF_ERROR, ValidateLightableTorchForSave(), and ValidateSpecialObjectDrawLayerSelector().
Referenced by ValidateLightableTorchForSave().

| bool yaze::zelda3::anonymous_namespace{room.cc}::HalfOpenRangesOverlap | ( | int | first_begin, |
| int | first_end, | ||
| int | second_begin, | ||
| int | second_end ) |
Definition at line 2970 of file room.cc.
References HalfOpenRangesOverlap().
Referenced by HalfOpenRangesOverlap(), and PreflightBlocksLoaderDestinations().

| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::ValidateBlocksLoaderPointerOperand | ( | const std::vector< uint8_t > & | rom_data, |
| int | operand_pc ) |
Definition at line 2975 of file room.cc.
References ValidateBlocksLoaderPointerOperand().
Referenced by PreflightBlocksLoaderDestinations(), and ValidateBlocksLoaderPointerOperand().

| absl::Status yaze::zelda3::anonymous_namespace{room.cc}::PreflightBlocksLoaderDestinations | ( | const std::vector< uint8_t > & | rom_data, |
| std::array< int, 4 > * | destination_pcs ) |
Definition at line 3001 of file room.cc.
References HalfOpenRangesOverlap(), yaze::zelda3::kBlocksLength, kBlocksPointerSlots, kBlocksRegionSize, PreflightBlocksLoaderDestinations(), RETURN_IF_ERROR, yaze::SnesToPc(), and ValidateBlocksLoaderPointerOperand().
Referenced by PreflightBlocksLoaderDestinations().

| std::vector< PhysicalChestRecord > yaze::zelda3::anonymous_namespace{room.cc}::ParsePhysicalRomChests | ( | const std::vector< uint8_t > & | rom_data, |
| int | cpos, | ||
| int | byte_length ) |
Definition at line 3486 of file room.cc.
References yaze::zelda3::kChestTableRecordSize, and ParsePhysicalRomChests().
Referenced by BuildChestSavePlanImpl(), and ParsePhysicalRomChests().

| void yaze::zelda3::anonymous_namespace{room.cc}::AppendChestRecord | ( | std::vector< uint8_t > * | bytes, |
| uint16_t | word, | ||
| uint8_t | item ) |
Definition at line 3504 of file room.cc.
References AppendChestRecord().
Referenced by AppendChestRecord(), AppendEditedChestRecord(), and BuildChestSavePlanImpl().

| void yaze::zelda3::anonymous_namespace{room.cc}::AppendEditedChestRecord | ( | std::vector< uint8_t > * | bytes, |
| int | room_id, | ||
| const chest_data & | chest ) |
Definition at line 3511 of file room.cc.
References AppendChestRecord(), and AppendEditedChestRecord().
Referenced by AppendEditedChestRecord(), BuildChestSavePlanImpl(), and EncodeChestRoomState().

| void yaze::zelda3::anonymous_namespace{room.cc}::AppendChangedChestRuns | ( | uint32_t | pc, |
| absl::Span< const uint8_t > | expected, | ||
| absl::Span< const uint8_t > | replacement, | ||
| std::vector< ChestWriteRun > * | writes ) |
Definition at line 3518 of file room.cc.
References AppendChangedChestRuns(), yaze::zelda3::ChestWriteRun::expected_bytes, yaze::zelda3::ChestWriteRun::pc, and yaze::zelda3::ChestWriteRun::replacement_bytes.
Referenced by AppendChangedChestRuns(), and BuildChestSavePlanImpl().

| void yaze::zelda3::anonymous_namespace{room.cc}::SortAndCoalesceChestRuns | ( | std::vector< ChestWriteRun > * | writes | ) |
Definition at line 3552 of file room.cc.
References SortAndCoalesceChestRuns().
Referenced by BuildChestSavePlanImpl(), and SortAndCoalesceChestRuns().

| std::vector< uint8_t > yaze::zelda3::anonymous_namespace{room.cc}::EncodeChestRoomState | ( | int | room_id, |
| const Room & | room ) |
Definition at line 3574 of file room.cc.
References AppendEditedChestRecord(), EncodeChestRoomState(), yaze::zelda3::Room::GetChests(), and yaze::zelda3::kChestTableRecordSize.
Referenced by BuildChestSavePlanImpl(), and EncodeChestRoomState().

| absl::StatusOr< ChestSavePlan > yaze::zelda3::anonymous_namespace{room.cc}::BuildChestSavePlanImpl | ( | const Rom * | rom, |
| int | room_count, | ||
| const std::function< const Room *(int)> & | room_lookup ) |
Definition at line 3583 of file room.cc.
References yaze::zelda3::ChestSavePlan::any_dirty, AppendChangedChestRuns(), AppendChestRecord(), AppendEditedChestRecord(), ASSIGN_OR_RETURN, BuildChestSavePlanImpl(), yaze::zelda3::Room::chests_dirty(), yaze::zelda3::ChestSavePlan::data_pc, yaze::zelda3::ChestSavePlan::dirty_rooms, EncodeChestRoomState(), yaze::zelda3::Room::GetChests(), yaze::zelda3::GetChestTableWriteRanges(), yaze::Rom::is_loaded(), yaze::zelda3::kChestsDataPointer1, yaze::zelda3::kChestsLengthPointer, yaze::zelda3::kChestTableCapacityBytes, yaze::zelda3::kChestTableCapacityRecords, yaze::zelda3::kChestTableRecordSize, yaze::zelda3::kNumberOfRooms, yaze::zelda3::ChestSavePlan::original_byte_length, yaze::zelda3::ChestSavePlan::original_capacity_bytes, ParsePhysicalRomChests(), yaze::zelda3::ChestSavePlan::pointer_operand, yaze::zelda3::ChestSavePlan::room_limit, SortAndCoalesceChestRuns(), yaze::Rom::vector(), and yaze::zelda3::ChestSavePlan::writes.
Referenced by BuildChestSavePlanImpl().
| int yaze::zelda3::anonymous_namespace{room.cc}::ReadRoomPotItemAddressPc | ( | const std::vector< uint8_t > & | rom_data, |
| int | room_id ) |
Definition at line 3712 of file room.cc.
References yaze::zelda3::kNumberOfRooms, yaze::zelda3::kRoomItemsPointers, ReadRoomPotItemAddressPc(), and yaze::SnesToPc().
Referenced by GetPotItemStreamInfo(), and ReadRoomPotItemAddressPc().

| absl::StatusOr< PhysicalStreamInfo > yaze::zelda3::anonymous_namespace{room.cc}::GetPotItemStreamInfo | ( | const std::vector< uint8_t > & | rom_data, |
| int | room_id ) |
Definition at line 3732 of file room.cc.
References yaze::zelda3::anonymous_namespace{room.cc}::PhysicalStreamInfo::address, AnalyzePhysicalStream(), GetPotItemStreamInfo(), yaze::zelda3::kNumberOfRooms, yaze::zelda3::kRoomItemsDataEnd, yaze::zelda3::kRoomItemsPointers, and ReadRoomPotItemAddressPc().
Referenced by GetPotItemStreamInfo().

|
constexpr |
Definition at line 2701 of file room.cc.
Referenced by ParseRomTorchSegments().
|
constexpr |
Definition at line 2966 of file room.cc.
Referenced by PreflightBlocksLoaderDestinations().
|
constexpr |
Definition at line 2967 of file room.cc.
Referenced by PreflightBlocksLoaderDestinations().