yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
room_links.h File Reference
#include <array>
#include <cstdint>
#include <functional>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <vector>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "util/stop_token.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  yaze::zelda3::RoomLinkFacts
 
struct  yaze::zelda3::RoomLinkFacts::Door
 
struct  yaze::zelda3::RoomLink
 
struct  yaze::zelda3::DungeonEntranceTarget
 
class  yaze::zelda3::RoomLinkFactsCache
 

Namespaces

namespace  yaze
 
namespace  yaze::zelda3
 Zelda 3 specific classes and functions.
 

Typedefs

using yaze::zelda3::RoomLinkFactsLookup = std::function<const RoomLinkFacts*(int room_id)>
 

Enumerations

enum class  yaze::zelda3::RoomReferenceKind : uint8_t {
  yaze::zelda3::kEntrance , yaze::zelda3::kHole , yaze::zelda3::kSpawn , yaze::zelda3::kUnplacedEntrance ,
  yaze::zelda3::kDoor , yaze::zelda3::kStair , yaze::zelda3::kHolewarp , yaze::zelda3::kWarpTag ,
  yaze::zelda3::kHeaderOnly , yaze::zelda3::kProjectListing , yaze::zelda3::kDungeonMap , yaze::zelda3::kTeleportDoor
}
 
enum class  yaze::zelda3::RoomDoorRole : uint8_t { yaze::zelda3::kNeighbor , yaze::zelda3::kTeleport , yaze::zelda3::kExit , yaze::zelda3::kKeyStairs }
 
enum class  yaze::zelda3::RoomHolewarpCause : uint8_t {
  yaze::zelda3::kNone , yaze::zelda3::kPits , yaze::zelda3::kWarpTiles , yaze::zelda3::kTag ,
  yaze::zelda3::kSprite
}
 

Functions

const char * yaze::zelda3::RoomReferenceKindName (RoomReferenceKind kind)
 
const char * yaze::zelda3::RoomDoorRoleName (RoomDoorRole role)
 
std::vector< RoomLink > yaze::zelda3::CollectRoomLinks (int room_id, const RoomLinkFactsLookup &lookup, const std::set< uint8_t > &warp_tag_ids)
 
bool yaze::zelda3::IsDungeonRoomId (int room_id)
 
int yaze::zelda3::DungeonNeighborRoom (int room_id, int direction)
 
int yaze::zelda3::CheckedHeaderDestinationRoom (int source_room_id, uint8_t header_byte)
 
bool yaze::zelda3::UsesExpandedEntranceTables (const Rom &rom)
 
std::optional< DungeonEntranceTarget > yaze::zelda3::ReadDungeonEntranceTarget (const Rom &rom, int entrance_id)
 
bool yaze::zelda3::IsPitObjectId (int id)
 
bool yaze::zelda3::IsWarpTileObjectId (int id)
 
bool yaze::zelda3::IsHoleRoomTag (uint8_t tag)
 
bool yaze::zelda3::IsPitTileAttribute (uint8_t attribute)
 
bool yaze::zelda3::IsWarpTileAttribute (uint8_t attribute)
 
absl::StatusOr< RoomLinkFacts > yaze::zelda3::CollectRoomLinkFacts (Rom *rom, const Room &room, const PitDamageTable *pit_table, const CustomObjectRenderSnapshot *custom_objects, util::StopToken stop_token)
 

Variables

constexpr int yaze::zelda3::kDungeonRoomCount = 0x128
 
constexpr int yaze::zelda3::kDungeonEntranceCount = 0x85
 
constexpr uint8_t yaze::zelda3::kTeleportDoorType = 0x46