yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
room_collision.h File Reference
#include <array>
#include <cstddef>
#include <cstdint>
#include <optional>
#include <vector>
#include "zelda3/dungeon/game_tilemap_comparison.h"
#include "zelda3/dungeon/room.h"
#include "zelda3/dungeon/room_object.h"

Go to the source code of this file.

Classes

struct  yaze::zelda3::RoomCollisionMaps
 
struct  yaze::zelda3::UnderworldRoomLoadState
 
struct  yaze::zelda3::RoomCollisionInput
 
struct  yaze::zelda3::StaircaseSlotResolution
 

Namespaces

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

Enumerations

enum class  yaze::zelda3::CollisionSource : uint8_t {
  yaze::zelda3::kTilemap = 0 , yaze::zelda3::kStar , yaze::zelda3::kStairs , yaze::zelda3::kLayerStairs ,
  yaze::zelda3::kWater , yaze::zelda3::kManipulable , yaze::zelda3::kTorch , yaze::zelda3::kChest ,
  yaze::zelda3::kBigKeyLock , yaze::zelda3::kDoor , yaze::zelda3::kLockedDoor , yaze::zelda3::kDoorLayerToggle ,
  yaze::zelda3::kDoorSwitch , yaze::zelda3::kCrystalPeg
}
 
enum class  yaze::zelda3::StaircaseSlotStatus {
  yaze::zelda3::kResolved , yaze::zelda3::kTriggerUnavailable , yaze::zelda3::kOverlappingStairs , yaze::zelda3::kOutsideRoom ,
  yaze::zelda3::kTooManyStairs
}
 

Functions

const char * yaze::zelda3::CollisionSourceName (CollisionSource source)
 
std::array< uint8_t, kTileAttributeTableSize > yaze::zelda3::LoadUnderworldTileAttributeTable (const Rom &rom, uint8_t blockset)
 
RoomCollisionMaps yaze::zelda3::ComputeBasicCollisionMaps (const std::array< uint8_t, kTileAttributeTableSize > &table, const RoomTilemaps &tilemaps)
 
RoomCollisionMaps yaze::zelda3::ComputeRoomCollisionMaps (const Rom &rom, const RoomCollisionInput &input, const UnderworldRoomLoadState &state)
 
std::vector< StaircaseSlotResolution > yaze::zelda3::ResolveVanillaStaircaseSlots (const Rom &rom, const RoomCollisionInput &input, const UnderworldRoomLoadState &state)
 
RoomCollisionInput yaze::zelda3::MakeRoomCollisionInput (const Room &room)
 
RoomCollisionInput yaze::zelda3::MakeRoomCollisionInput (const Room &room, const RoomTilemaps &tilemaps)
 

Variables

constexpr size_t yaze::zelda3::kTileAttributeTableSize = 0x200
 
constexpr size_t yaze::zelda3::kCollisionMapTiles = 64 * 64
 
constexpr size_t yaze::zelda3::kRoomCollisionBytes = 2 * kCollisionMapTiles