1#ifndef YAZE_ZELDA3_DUNGEON_ROOM_LINKS_H_
2#define YAZE_ZELDA3_DUNGEON_ROOM_LINKS_H_
39#include "absl/status/status.h"
40#include "absl/status/statusor.h"
47class CustomObjectRenderSnapshot;
154 const std::set<uint8_t>& warp_tag_ids = {});
218 std::vector<std::optional<RoomLinkFacts>>
facts_;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
std::unique_ptr< PitDamageTable > pit_table_
RoomLinkFactsCache(Rom *rom)
const RoomLinkFacts * Get(int room_id)
RoomLinkFactsCache & operator=(const RoomLinkFactsCache &)=delete
const absl::Status & status() const
RoomLinkFactsLookup AsLookup()
std::vector< std::optional< RoomLinkFacts > > facts_
RoomLinkFactsCache(const RoomLinkFactsCache &)=delete
bool IsWarpTileObjectId(int id)
const char * RoomReferenceKindName(RoomReferenceKind kind)
bool UsesExpandedEntranceTables(const Rom &rom)
std::optional< DungeonEntranceTarget > ReadDungeonEntranceTarget(const Rom &rom, int entrance_id)
bool IsDungeonRoomId(int room_id)
bool IsPitObjectId(int id)
int CheckedHeaderDestinationRoom(int source_room_id, uint8_t header_byte)
std::vector< RoomLink > CollectRoomLinks(int room_id, const RoomLinkFactsLookup &lookup, const std::set< uint8_t > &warp_tag_ids)
int DungeonNeighborRoom(int room_id, int direction)
constexpr int kDungeonRoomCount
absl::StatusOr< RoomLinkFacts > CollectRoomLinkFacts(Rom *rom, const Room &room, const PitDamageTable *pit_table, const CustomObjectRenderSnapshot *custom_objects, util::StopToken stop_token)
bool IsWarpTileAttribute(uint8_t attribute)
bool IsHoleRoomTag(uint8_t tag)
const char * RoomDoorRoleName(RoomDoorRole role)
constexpr int kDungeonEntranceCount
bool IsPitTileAttribute(uint8_t attribute)
std::function< const RoomLinkFacts *(int room_id)> RoomLinkFactsLookup
constexpr uint8_t kTeleportDoorType
std::array< bool, 4 > stair_slot_used
std::array< bool, 4 > stair_slot_estimated
bool pits_only_in_braziers
std::vector< Door > doors
std::array< uint8_t, 4 > stair_bytes
RoomHolewarpCause holewarp_cause