Draws dungeon objects to background buffers using game patterns. More...
#include <object_drawer.h>

Classes | |
| struct | DoorDef |
| struct | TileTrace |
| struct | TraceContext |
Public Member Functions | |
| ObjectDrawer (Rom *rom, int room_id, const uint8_t *room_gfx_buffer=nullptr) | |
| absl::Status | DrawObject (const RoomObject &object, gfx::BackgroundBuffer &bg1, gfx::BackgroundBuffer &bg2, const gfx::PaletteGroup &palette_group, const DungeonState *state=nullptr, gfx::BackgroundBuffer *layout_bg1=nullptr) |
| Draw a room object to background buffers. | |
| void | ResetChestIndex () |
| void | SetAllowTrackCornerAliases (bool allow) |
| void | DrawDoor (const DoorDef &door, int door_index, gfx::BackgroundBuffer &bg1, gfx::BackgroundBuffer &bg2, const DungeonState *state=nullptr) |
| Draw a door to background buffers. | |
| void | DrawPotItem (uint8_t item_id, int x, int y, gfx::BackgroundBuffer &bg) |
| Draw a pot item visualization. | |
| absl::Status | DrawObjectList (const std::vector< RoomObject > &objects, gfx::BackgroundBuffer &bg1, gfx::BackgroundBuffer &bg2, const gfx::PaletteGroup &palette_group, const DungeonState *state=nullptr, gfx::BackgroundBuffer *layout_bg1=nullptr, bool reset_chest_index=true) |
| Draw all objects in a room. | |
| int | GetDrawRoutineId (int16_t object_id) const |
| Get draw routine ID for an object. | |
| int | GetDrawRoutineCount () const |
| Get the total number of registered draw routines. | |
| void | InitializeDrawRoutines () |
| Initialize draw routine registry Must be called before drawing objects. | |
| void | DrawTileToBitmap (gfx::Bitmap &bitmap, const gfx::TileInfo &tile_info, int pixel_x, int pixel_y, const uint8_t *tiledata) |
| Draw a single tile directly to bitmap. | |
| absl::Status | DrawRoomDrawObjectData2x2 (uint16_t object_id, int tile_x, int tile_y, RoomObject::LayerType layer, uint16_t room_draw_object_data_offset, gfx::BackgroundBuffer &bg1, gfx::BackgroundBuffer &bg2) |
| Draw a fixed 2x2 (16x16) tile pattern from RoomDrawObjectData. | |
| std::pair< int, int > | CalculateObjectDimensions (const RoomObject &object) |
| Calculate the dimensions (width, height) of an object in pixels. | |
| void | SetTraceCollector (std::vector< TileTrace > *collector, bool trace_only=false) |
| void | ClearTraceCollector () |
| bool | TraceOnly () const |
Protected Types | |
| using | DrawRoutine |
Protected Member Functions | |
| void | DrawChest (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state=nullptr) |
| void | DrawNothing (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state=nullptr) |
| void | CustomDraw (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state=nullptr) |
| void | DrawRightwards4x4_1to16 (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state=nullptr) |
| void | DrawRightwardsDecor4x3spaced4_1to16 (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state=nullptr) |
| void | DrawLargeCanvasObject (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, int width, int height) |
| void | DrawCustomObject (const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state=nullptr) |
| void | DrawMissingCustomObjectPlaceholder (gfx::BackgroundBuffer &bg, int tile_x, int tile_y) |
| void | DrawUsingRegistryRoutine (int routine_id, const RoomObject &obj, gfx::BackgroundBuffer &bg, std::span< const gfx::TileInfo > tiles, const DungeonState *state) |
| void | WriteTile8 (gfx::BackgroundBuffer &bg, int tile_x, int tile_y, const gfx::TileInfo &tile_info) |
| bool | IsValidTilePosition (int tile_x, int tile_y) const |
| void | MarkBG1Transparent (gfx::BackgroundBuffer &bg1, int tile_x, int tile_y, int pixel_width, int pixel_height) |
| Mark BG1 pixels as transparent where BG2 overlay objects are drawn. | |
| void | MarkBg1RectTransparent (gfx::BackgroundBuffer &bg1, int start_px, int start_py, int pixel_width, int pixel_height) |
| void | DrawDoorIndicator (gfx::BackgroundBuffer &bg, int tile_x, int tile_y, int width, int height, DoorType type, DoorDirection direction) |
| void | SetTraceContext (const RoomObject &object, RoomObject::LayerType layer) |
| void | PushTrace (int tile_x, int tile_y, const gfx::TileInfo &tile_info) |
Static Protected Member Functions | |
| static bool | RoutineDrawsToBothBGs (int routine_id) |
| static void | TraceHookThunk (int tile_x, int tile_y, const gfx::TileInfo &tile_info, void *user_data) |
Protected Attributes | |
| std::vector< DrawRoutine > | draw_routines_ |
| bool | routines_initialized_ = false |
| TraceContext | trace_context_ {} |
| std::vector< TileTrace > * | trace_collector_ = nullptr |
| bool | trace_only_ = false |
| Rom * | rom_ |
| int | room_id_ |
| int | current_chest_index_ = 0 |
| bool | allow_track_corner_aliases_ = true |
| const uint8_t * | room_gfx_buffer_ |
Static Protected Attributes | |
| static constexpr int | kMaxTilesX = 64 |
| static constexpr int | kMaxTilesY = 64 |
Draws dungeon objects to background buffers using game patterns.
This class interprets object IDs and draws them to BG1/BG2 buffers using the patterns extracted from the game's drawing routines. Based on ZScream's DungeonObjectData.cs and Subtype1_Draw.cs patterns.
Architecture:
Definition at line 36 of file object_drawer.h.
|
protected |
Definition at line 192 of file object_drawer.h.
|
explicit |
Definition at line 20 of file object_drawer.cc.
References InitializeDrawRoutines().

| absl::Status yaze::zelda3::ObjectDrawer::DrawObject | ( | const RoomObject & | object, |
| gfx::BackgroundBuffer & | bg1, | ||
| gfx::BackgroundBuffer & | bg2, | ||
| const gfx::PaletteGroup & | palette_group, | ||
| const DungeonState * | state = nullptr, | ||
| gfx::BackgroundBuffer * | layout_bg1 = nullptr ) |
Draw a room object to background buffers.
| object | The object to draw |
| bg1 | Background layer 1 buffer (object buffer) |
| bg2 | Background layer 2 buffer (object buffer) |
| palette_group | Current palette group for color mapping |
| layout_bg1 | Optional layout buffer to mask for BG2 object transparency |
Definition at line 134 of file object_drawer.cc.
References allow_track_corner_aliases_, yaze::zelda3::RoomObject::BG1, yaze::zelda3::RoomObject::BG2, yaze::zelda3::RoomObject::BG3, CalculateObjectDimensions(), yaze::zelda3::DrawRoutineUtils::ClearTraceHook(), draw_routines_, DrawCustomObject(), yaze::core::FeatureFlags::get(), yaze::zelda3::CustomObjectManager::Get(), yaze::zelda3::DrawRoutineRegistry::Get(), GetDrawRoutineId(), yaze::zelda3::CustomObjectManager::GetObjectInternal(), yaze::zelda3::DrawRoutineRegistry::GetRoutineInfo(), yaze::Rom::is_loaded(), yaze::core::FeatureFlags::Flags::kEnableCustomObjects, LOG_DEBUG, LOG_WARN, MarkBG1Transparent(), yaze::zelda3::DrawRoutineInfo::min_tiles, yaze::zelda3::DrawRoutineInfo::name, rom_, RoutineDrawsToBothBGs(), routines_initialized_, yaze::zelda3::RoomObject::SetRom(), SetTraceContext(), yaze::zelda3::DrawRoutineUtils::SetTraceHook(), yaze::zelda3::RoomObject::tiles(), trace_collector_, trace_only_, TraceHookThunk(), and WriteTile8().
Referenced by yaze::zelda3::ObjectTileEditor::CaptureObjectLayout(), DrawObjectList(), yaze::cli::DungeonObjectValidateCommandHandler::Execute(), yaze::editor::ObjectSelectorContent::OpenStaticObjectEditor(), yaze::emu::render::EmulatorRenderService::RenderDungeonObjectStatic(), and yaze::editor::TileObjectHandler::RenderGhostPreviewBitmap().
|
inline |
Definition at line 73 of file object_drawer.h.
References current_chest_index_.
Referenced by DrawObjectList().
|
inline |
Definition at line 74 of file object_drawer.h.
References allow_track_corner_aliases_.
Referenced by yaze::zelda3::RoomLayout::Draw(), and yaze::zelda3::Room::RenderObjectsToBackground().
| void yaze::zelda3::ObjectDrawer::DrawDoor | ( | const DoorDef & | door, |
| int | door_index, | ||
| gfx::BackgroundBuffer & | bg1, | ||
| gfx::BackgroundBuffer & | bg2, | ||
| const DungeonState * | state = nullptr ) |
Draw a door to background buffers.
| door | Door definition (type, direction, position) |
| bg1 | Background layer 1 buffer |
| bg2 | Background layer 2 buffer |
Definition at line 1307 of file object_drawer.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), yaze::zelda3::BottomShutterLower, yaze::zelda3::BottomSidedShutter, yaze::zelda3::CurtainDoor, yaze::Rom::data(), yaze::zelda3::ObjectDrawer::DoorDef::direction, yaze::zelda3::DoubleSidedShutter, yaze::zelda3::DoubleSidedShutterLower, DrawDoorIndicator(), DrawTileToBitmap(), yaze::zelda3::East, yaze::zelda3::ExplicitRoomDoor, yaze::zelda3::ExplodingWall, yaze::zelda3::ObjectDrawer::DoorDef::GetDimensions(), yaze::zelda3::GetDoorDimensions(), yaze::zelda3::GetDoorDirectionName(), yaze::zelda3::GetDoorTypeName(), yaze::zelda3::ObjectDrawer::DoorDef::GetTileCoords(), yaze::Rom::is_loaded(), yaze::zelda3::DungeonState::IsDoorOpen(), yaze::zelda3::kDoorGfxDown, yaze::zelda3::kDoorGfxLeft, yaze::zelda3::kDoorGfxRight, yaze::zelda3::kDoorGfxUp, LOG_DEBUG, yaze::gfx::BackgroundBuffer::mutable_coverage_data(), yaze::gfx::BackgroundBuffer::mutable_priority_data(), yaze::zelda3::NormalDoor, yaze::zelda3::NormalDoorOneSidedShutter, yaze::zelda3::North, yaze::zelda3::ObjectDrawer::DoorDef::position, rom_, room_gfx_buffer_, room_id_, yaze::Rom::size(), yaze::zelda3::South, yaze::zelda3::TopShutterLower, yaze::zelda3::TopSidedShutter, yaze::zelda3::ObjectDrawer::DoorDef::type, yaze::zelda3::West, yaze::zelda3::DoorDimensions::width_tiles, and yaze::gfx::WordToTileInfo().
Referenced by yaze::zelda3::Room::RenderObjectsToBackground().
| void yaze::zelda3::ObjectDrawer::DrawPotItem | ( | uint8_t | item_id, |
| int | x, | ||
| int | y, | ||
| gfx::BackgroundBuffer & | bg ) |
Draw a pot item visualization.
| item_id | Item ID |
| x | X coordinate (pixels) |
| y | Y coordinate (pixels) |
| bg | Background buffer |
Definition at line 3032 of file object_drawer.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), and yaze::gfx::BackgroundBuffer::mutable_coverage_data().
Referenced by yaze::zelda3::Room::RenderObjectsToBackground().

| absl::Status yaze::zelda3::ObjectDrawer::DrawObjectList | ( | const std::vector< RoomObject > & | objects, |
| gfx::BackgroundBuffer & | bg1, | ||
| gfx::BackgroundBuffer & | bg2, | ||
| const gfx::PaletteGroup & | palette_group, | ||
| const DungeonState * | state = nullptr, | ||
| gfx::BackgroundBuffer * | layout_bg1 = nullptr, | ||
| bool | reset_chest_index = true ) |
Draw all objects in a room.
| objects | Vector of room objects |
| bg1 | Background layer 1 buffer (object buffer) |
| bg2 | Background layer 2 buffer (object buffer) |
| palette_group | Current palette group for color mapping |
| layout_bg1 | Optional layout buffer to mask for BG2 object transparency |
| reset_chest_index | If true, reset per-room chest counter before drawing (set false on subsequent USDASM list passes; see Room::RenderObjectsToBackground) |
Definition at line 324 of file object_drawer.cc.
References yaze::zelda3::RoomObject::BG2, yaze::gfx::BackgroundBuffer::bitmap(), DrawObject(), GetDrawRoutineId(), LOG_DEBUG, ResetChestIndex(), and RoutineDrawsToBothBGs().
Referenced by yaze::zelda3::RoomLayout::Draw(), and yaze::zelda3::Room::RenderObjectsToBackground().
| int yaze::zelda3::ObjectDrawer::GetDrawRoutineId | ( | int16_t | object_id | ) | const |
Get draw routine ID for an object.
| object_id | The object ID to look up |
Definition at line 1298 of file object_drawer.cc.
References yaze::zelda3::DrawRoutineRegistry::Get(), and yaze::zelda3::DrawRoutineRegistry::GetRoutineIdForObject().
Referenced by CalculateObjectDimensions(), DrawObject(), yaze::editor::DungeonObjectSelector::DrawObjectAssetBrowser(), DrawObjectList(), and yaze::cli::DungeonObjectValidateCommandHandler::Execute().

|
inline |
Get the total number of registered draw routines.
Definition at line 126 of file object_drawer.h.
References draw_routines_.
| void yaze::zelda3::ObjectDrawer::InitializeDrawRoutines | ( | ) |
Initialize draw routine registry Must be called before drawing objects.
Definition at line 418 of file object_drawer.cc.
References draw_routines_, DrawChest(), DrawCustomObject(), DrawNothing(), DrawUsingRegistryRoutine(), yaze::zelda3::DrawRoutineIds::kActual4x4, yaze::zelda3::DrawRoutineIds::kArcheryGameTargetDoor, yaze::zelda3::DrawRoutineIds::kBed4x5, yaze::zelda3::DrawRoutineIds::kBigLightBeam, yaze::zelda3::DrawRoutineIds::kBossShell4x4, yaze::zelda3::DrawRoutineIds::kGanonTriforceFloorDecor, yaze::zelda3::DrawRoutineIds::kHorizontalTurtleRockPipe, yaze::zelda3::DrawRoutineIds::kLightBeam, yaze::zelda3::DrawRoutineIds::kRightwards3x6, yaze::zelda3::DrawRoutineIds::kRupeeFloor, yaze::zelda3::DrawRoutineIds::kSingle2x2, yaze::zelda3::DrawRoutineIds::kSingle4x3, yaze::zelda3::DrawRoutineIds::kSingle4x4, yaze::zelda3::DrawRoutineIds::kSolidWallDecor3x4, yaze::zelda3::DrawRoutineIds::kUtility3x5, yaze::zelda3::DrawRoutineIds::kUtility6x3, yaze::zelda3::DrawRoutineIds::kVerticalTurtleRockPipe, yaze::zelda3::DrawRoutineIds::kWaterfall47, yaze::zelda3::DrawRoutineIds::kWaterfall48, and routines_initialized_.
Referenced by CalculateObjectDimensions(), ObjectDrawer(), yaze::editor::ObjectSelectorContent::OpenStaticObjectEditor(), yaze::emu::render::EmulatorRenderService::RenderDungeonObjectStatic(), and yaze::editor::TileObjectHandler::RenderGhostPreviewBitmap().

| void yaze::zelda3::ObjectDrawer::DrawTileToBitmap | ( | gfx::Bitmap & | bitmap, |
| const gfx::TileInfo & | tile_info, | ||
| int | pixel_x, | ||
| int | pixel_y, | ||
| const uint8_t * | tiledata ) |
Draw a single tile directly to bitmap.
| bitmap | Target bitmap to draw to |
| tile_info | Tile information (ID, palette, mirroring) |
| pixel_x | X pixel coordinate in bitmap |
| pixel_y | Y pixel coordinate in bitmap |
| tiledata | Source graphics data from ROM |
Definition at line 2025 of file object_drawer.cc.
References yaze::gfx::Bitmap::height(), yaze::gfx::TileInfo::horizontal_mirror_, yaze::gfx::TileInfo::id_, yaze::gfx::Bitmap::is_active(), LOG_DEBUG, yaze::gfx::Bitmap::mutable_data(), yaze::gfx::TileInfo::palette_, yaze::gfx::Bitmap::set_modified(), yaze::gfx::TileInfo::vertical_mirror_, and yaze::gfx::Bitmap::width().
Referenced by yaze::zelda3::ObjectTileEditor::BuildTile8Atlas(), DrawDoor(), yaze::zelda3::ObjectTileEditor::RenderLayoutToBitmap(), and WriteTile8().
| absl::Status yaze::zelda3::ObjectDrawer::DrawRoomDrawObjectData2x2 | ( | uint16_t | object_id, |
| int | tile_x, | ||
| int | tile_y, | ||
| RoomObject::LayerType | layer, | ||
| uint16_t | room_draw_object_data_offset, | ||
| gfx::BackgroundBuffer & | bg1, | ||
| gfx::BackgroundBuffer & | bg2 ) |
Draw a fixed 2x2 (16x16) tile pattern from RoomDrawObjectData.
USDASM uses hardcoded offsets into RoomDrawObjectData for certain special objects that are NOT part of the room object stream (e.g. pushable blocks and lightable torches). See bank_01.asm: RoomDraw_PushableBlock and RoomDraw_LightableTorch.
| object_id | Identifier used only for tracing/debugging (not used for routine lookup) |
| tile_x | Top-left X position in tiles |
| tile_y | Top-left Y position in tiles |
| layer | Target layer (BG1/BG2) |
| room_draw_object_data_offset | Offset from RoomDrawObjectData base (not an absolute PC address) |
Definition at line 2134 of file object_drawer.cc.
References yaze::zelda3::RoomObject::BG2, yaze::Rom::is_loaded(), yaze::zelda3::kRoomObjectTileAddress, rom_, SetTraceContext(), yaze::Rom::vector(), yaze::gfx::WordToTileInfo(), and WriteTile8().
Referenced by yaze::zelda3::Room::RenderObjectsToBackground().
| std::pair< int, int > yaze::zelda3::ObjectDrawer::CalculateObjectDimensions | ( | const RoomObject & | object | ) |
Calculate the dimensions (width, height) of an object in pixels.
| object | The object to calculate dimensions for |
Definition at line 2204 of file object_drawer.cc.
References GetDrawRoutineId(), InitializeDrawRoutines(), and routines_initialized_.
Referenced by DrawObject().

| void yaze::zelda3::ObjectDrawer::SetTraceCollector | ( | std::vector< TileTrace > * | collector, |
| bool | trace_only = false ) |
Definition at line 26 of file object_drawer.cc.
References trace_collector_, and trace_only_.
Referenced by yaze::zelda3::ObjectTileEditor::CaptureObjectLayout(), and yaze::cli::DungeonObjectValidateCommandHandler::Execute().
| void yaze::zelda3::ObjectDrawer::ClearTraceCollector | ( | ) |
Definition at line 32 of file object_drawer.cc.
References trace_collector_, and trace_only_.
Referenced by yaze::zelda3::ObjectTileEditor::CaptureObjectLayout().
|
inline |
Definition at line 188 of file object_drawer.h.
References trace_only_.
|
protected |
Definition at line 1783 of file object_drawer.cc.
References current_chest_index_, room_id_, WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.
Referenced by InitializeDrawRoutines().

|
protected |
Definition at line 1823 of file object_drawer.cc.
References yaze::zelda3::RoomObject::id_, and LOG_DEBUG.
Referenced by InitializeDrawRoutines().
|
protected |
Definition at line 1833 of file object_drawer.cc.
References WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

|
protected |
Definition at line 1844 of file object_drawer.cc.
References yaze::zelda3::RoomObject::id_, LOG_DEBUG, yaze::zelda3::RoomObject::size_, WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

|
protected |
Definition at line 1879 of file object_drawer.cc.
References yaze::zelda3::RoomObject::size_, WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

|
protected |
Definition at line 2187 of file object_drawer.cc.
References WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

|
protected |
Definition at line 2950 of file object_drawer.cc.
References yaze::zelda3::CustomObjectManager::Get(), yaze::zelda3::RoomObject::id_, LOG_DEBUG, yaze::zelda3::RoomObject::size_, yaze::gfx::WordToTileInfo(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.
Referenced by DrawObject(), and InitializeDrawRoutines().

|
protected |
Definition at line 2986 of file object_drawer.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), yaze::gfx::BackgroundBuffer::mutable_coverage_data(), and yaze::gfx::BackgroundBuffer::mutable_priority_data().

|
protected |
Definition at line 79 of file object_drawer.cc.
References yaze::zelda3::DrawRoutineUtils::ClearTraceHook(), yaze::zelda3::DrawRoutineRegistry::Get(), yaze::zelda3::DrawRoutineRegistry::GetRoutineInfo(), LOG_DEBUG, rom_, room_gfx_buffer_, room_id_, yaze::zelda3::DrawRoutineUtils::SetTraceHook(), yaze::zelda3::DrawContext::target_bg, yaze::zelda3::RoomObject::tiles(), and WriteTile8().
Referenced by InitializeDrawRoutines().
|
protected |
Definition at line 1945 of file object_drawer.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), DrawTileToBitmap(), IsValidTilePosition(), LOG_DEBUG, yaze::gfx::BackgroundBuffer::mutable_coverage_data(), yaze::gfx::BackgroundBuffer::mutable_priority_data(), yaze::gfx::TileInfo::over_, PushTrace(), room_gfx_buffer_, and trace_only_.
Referenced by CustomDraw(), DrawChest(), DrawLargeCanvasObject(), DrawObject(), DrawRightwards4x4_1to16(), DrawRightwardsDecor4x3spaced4_1to16(), DrawRoomDrawObjectData2x2(), and DrawUsingRegistryRoutine().
|
protected |
Definition at line 2020 of file object_drawer.cc.
References kMaxTilesY.
Referenced by WriteTile8().
|
staticprotected |
Definition at line 409 of file object_drawer.cc.
References yaze::zelda3::DrawRoutineRegistry::Get(), and yaze::zelda3::DrawRoutineRegistry::RoutineDrawsToBothBGs().
Referenced by DrawObject(), and DrawObjectList().

|
protected |
Mark BG1 pixels as transparent where BG2 overlay objects are drawn.
This creates "holes" in BG1 that allow BG2 content to show through, matching SNES behavior where Layer 1 objects only write to BG2 tilemap.
| bg1 | Background layer 1 buffer to mark transparent |
| tile_x | Object X position in tiles |
| tile_y | Object Y position in tiles |
| pixel_width | Width of the object in pixels |
| pixel_height | Height of the object in pixels |
Definition at line 1938 of file object_drawer.cc.
References MarkBg1RectTransparent().
Referenced by DrawObject().

|
protected |
Definition at line 1909 of file object_drawer.cc.
References yaze::gfx::BackgroundBuffer::bitmap().
Referenced by MarkBG1Transparent().

|
protected |
Definition at line 1679 of file object_drawer.cc.
References yaze::zelda3::BigKeyDoor, yaze::gfx::BackgroundBuffer::bitmap(), yaze::zelda3::BombableCaveExit, yaze::zelda3::BombableDoor, yaze::zelda3::BottomShutterLower, yaze::zelda3::BottomSidedShutter, yaze::zelda3::CaveExit, yaze::zelda3::CurtainDoor, yaze::zelda3::DashWall, yaze::zelda3::DoubleSidedShutter, yaze::zelda3::DoubleSidedShutterLower, yaze::zelda3::DungeonSwapMarker, yaze::zelda3::ExitMarker, yaze::zelda3::ExplodingWall, yaze::zelda3::EyeWatchDoor, yaze::zelda3::FancyDungeonExit, yaze::zelda3::FancyDungeonExitLower, yaze::zelda3::LayerSwapMarker, yaze::zelda3::LitCaveExitLower, yaze::gfx::BackgroundBuffer::mutable_coverage_data(), yaze::zelda3::NormalDoor, yaze::zelda3::NormalDoorLower, yaze::zelda3::SmallKeyDoor, yaze::zelda3::SmallKeyStairsDown, yaze::zelda3::SmallKeyStairsDownLower, yaze::zelda3::SmallKeyStairsUp, yaze::zelda3::SmallKeyStairsUpLower, yaze::zelda3::TopShutterLower, yaze::zelda3::TopSidedShutter, yaze::zelda3::UnopenableBigKeyDoor, and yaze::zelda3::WaterfallDoor.
Referenced by DrawDoor().

|
protected |
Definition at line 37 of file object_drawer.cc.
References yaze::zelda3::ObjectDrawer::TraceContext::layer, yaze::zelda3::ObjectDrawer::TraceContext::object_id, yaze::zelda3::ObjectDrawer::TraceContext::size, and trace_context_.
Referenced by DrawObject(), and DrawRoomDrawObjectData2x2().
|
protected |
Definition at line 44 of file object_drawer.cc.
References yaze::gfx::TileInfo::horizontal_mirror_, yaze::gfx::TileInfo::id_, yaze::zelda3::ObjectDrawer::TraceContext::layer, yaze::zelda3::ObjectDrawer::TileTrace::object_id, yaze::zelda3::ObjectDrawer::TraceContext::object_id, yaze::gfx::TileInfo::over_, yaze::gfx::TileInfo::palette_, yaze::zelda3::ObjectDrawer::TraceContext::size, trace_collector_, trace_context_, and yaze::gfx::TileInfo::vertical_mirror_.
Referenced by TraceHookThunk(), and WriteTile8().
|
staticprotected |
Definition at line 69 of file object_drawer.cc.
References PushTrace().
Referenced by DrawObject().

|
protected |
Definition at line 268 of file object_drawer.h.
Referenced by DrawObject(), GetDrawRoutineCount(), and InitializeDrawRoutines().
|
protected |
Definition at line 269 of file object_drawer.h.
Referenced by CalculateObjectDimensions(), DrawObject(), and InitializeDrawRoutines().
|
protected |
Definition at line 282 of file object_drawer.h.
Referenced by PushTrace(), and SetTraceContext().
|
protected |
Definition at line 283 of file object_drawer.h.
Referenced by ClearTraceCollector(), DrawObject(), PushTrace(), and SetTraceCollector().
|
protected |
Definition at line 284 of file object_drawer.h.
Referenced by ClearTraceCollector(), DrawObject(), SetTraceCollector(), TraceOnly(), and WriteTile8().
|
protected |
Definition at line 286 of file object_drawer.h.
Referenced by DrawDoor(), DrawObject(), DrawRoomDrawObjectData2x2(), and DrawUsingRegistryRoutine().
|
protected |
Definition at line 287 of file object_drawer.h.
Referenced by DrawChest(), DrawDoor(), and DrawUsingRegistryRoutine().
|
mutableprotected |
Definition at line 288 of file object_drawer.h.
Referenced by DrawChest(), and ResetChestIndex().
|
protected |
Definition at line 289 of file object_drawer.h.
Referenced by DrawObject(), and SetAllowTrackCornerAliases().
|
protected |
Definition at line 291 of file object_drawer.h.
Referenced by DrawDoor(), DrawUsingRegistryRoutine(), and WriteTile8().
|
staticconstexprprotected |
Definition at line 294 of file object_drawer.h.
|
staticconstexprprotected |
Definition at line 295 of file object_drawer.h.
Referenced by IsValidTilePosition().