yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::editor::DungeonCanvasViewer Class Reference

#include <dungeon_canvas_viewer.h>

Classes

struct  EntityVisibility
 
struct  ObjectOutlineToggles
 
struct  ObjectRenderCache
 

Public Member Functions

 DungeonCanvasViewer (Rom *rom=nullptr)
 
void DrawDungeonCanvas (int room_id)
 
void Draw (int room_id)
 
void SetContext (EditorContext ctx)
 
EditorContext context () const
 
void SetRom (Rom *rom)
 
Romrom () const
 
void SetGameData (zelda3::GameData *game_data)
 
zelda3::GameDatagame_data () const
 
void SetRenderer (gfx::IRenderer *renderer)
 
void SetRooms (std::array< zelda3::Room, 0x128 > *rooms)
 
bool HasRooms () const
 
void set_active_rooms (const ImVector< int > &rooms)
 
void set_current_active_room_tab (int tab)
 
void set_current_palette_group_id (uint64_t id)
 
void SetCurrentPaletteId (uint64_t id)
 
void SetCurrentPaletteGroup (const gfx::PaletteGroup &group)
 
void SetRoomNavigationCallback (std::function< void(int)> callback)
 
void SetRoomSwapCallback (std::function< void(int, int)> callback)
 
void SetShowObjectPanelCallback (std::function< void()> callback)
 
void SetShowSpritePanelCallback (std::function< void()> callback)
 
void SetShowItemPanelCallback (std::function< void()> callback)
 
gui::Canvascanvas ()
 
const gui::Canvascanvas () const
 
DungeonObjectInteractionobject_interaction ()
 
void SetEditorSystem (zelda3::DungeonEditorSystem *system)
 
void SetObjectInteractionEnabled (bool enabled)
 
bool IsObjectInteractionEnabled () const
 
void SetObjectRenderMode (ObjectRenderMode mode)
 
ObjectRenderMode GetObjectRenderMode () const
 
void SetLayerVisible (int room_id, zelda3::LayerType layer, bool visible)
 
bool IsLayerVisible (int room_id, zelda3::LayerType layer) const
 
void SetBG1Visible (int room_id, bool visible)
 
void SetBG2Visible (int room_id, bool visible)
 
bool IsBG1Visible (int room_id) const
 
bool IsBG2Visible (int room_id) const
 
void SetLayerBlendMode (int room_id, zelda3::LayerType layer, zelda3::LayerBlendMode mode)
 
zelda3::LayerBlendMode GetLayerBlendMode (int room_id, zelda3::LayerType layer) const
 
void SetObjectTranslucent (int room_id, size_t object_index, bool translucent, uint8_t alpha=128)
 
zelda3::RoomLayerManagerGetRoomLayerManager (int room_id)
 
const zelda3::RoomLayerManagerGetRoomLayerManager (int room_id) const
 
void SetBG2LayerType (int room_id, int type)
 
int GetBG2LayerType (int room_id) const
 
void SetPreviewObject (const zelda3::RoomObject &object)
 
void ClearPreviewObject ()
 
void DeleteSelectedObjects ()
 
void SetSpritesVisible (bool visible)
 
bool AreSpritesVisible () const
 
void SetPotItemsVisible (bool visible)
 
bool ArePotItemsVisible () const
 

Private Member Functions

void DisplayObjectInfo (const gui::CanvasRuntime &rt, const zelda3::RoomObject &object, int canvas_x, int canvas_y)
 
void RenderSprites (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void RenderPotItems (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void RenderEntityOverlay (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
std::pair< int, int > RoomToCanvasCoordinates (int room_x, int room_y) const
 
std::pair< int, int > CanvasToRoomCoordinates (int canvas_x, int canvas_y) const
 
bool IsWithinCanvasBounds (int canvas_x, int canvas_y, int margin=32) const
 
void DrawObjectPositionOutlines (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void DrawMaskHighlights (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
absl::Status LoadAndRenderRoomGraphics (int room_id)
 
void DrawRoomBackgroundLayers (int room_id)
 

Private Attributes

Romrom_ = nullptr
 
zelda3::GameDatagame_data_ = nullptr
 
gui::Canvas canvas_ {"##DungeonCanvas", ImVec2(0x200, 0x200)}
 
DungeonObjectInteraction object_interaction_
 
std::optional< std::pair< int, int > > pending_scroll_target_
 
std::array< zelda3::Room, 0x128 > * rooms_ = nullptr
 
ImVector< int > active_rooms_
 
int current_active_room_tab_ = 0
 
bool object_interaction_enabled_ = true
 
std::map< int, zelda3::RoomLayerManagerroom_layer_managers_
 
uint64_t current_palette_group_id_ = 0
 
uint64_t current_palette_id_ = 0
 
gfx::PaletteGroup current_palette_group_
 
std::function< void(int)> room_navigation_callback_
 
std::function< void(int, int)> room_swap_callback_
 
std::function< void()> show_object_panel_callback_
 
std::function< void()> show_sprite_panel_callback_
 
std::function< void()> show_item_panel_callback_
 
std::vector< ObjectRenderCacheobject_render_cache_
 
uint64_t last_palette_hash_ = 0
 
bool show_room_debug_info_ = false
 
bool show_texture_debug_ = false
 
bool show_object_bounds_ = false
 
bool show_layer_info_ = false
 
bool show_grid_ = false
 
bool show_coordinate_overlay_ = true
 
int layout_override_ = -1
 
int custom_grid_size_ = 8
 
ObjectRenderMode object_render_mode_
 
ObjectOutlineToggles object_outline_toggles_
 
EntityVisibility entity_visibility_
 
gfx::IRendererrenderer_ = nullptr
 
int prev_blockset_ = -1
 
int prev_palette_ = -1
 
int prev_layout_ = -1
 
int prev_spriteset_ = -1
 

Detailed Description

Definition at line 31 of file dungeon_canvas_viewer.h.

Constructor & Destructor Documentation

◆ DungeonCanvasViewer()

yaze::editor::DungeonCanvasViewer::DungeonCanvasViewer ( Rom * rom = nullptr)
inlineexplicit

Definition at line 33 of file dungeon_canvas_viewer.h.

References object_interaction_, rom(), and yaze::editor::DungeonObjectInteraction::SetRom().

Here is the call graph for this function:

Member Function Documentation

◆ DrawDungeonCanvas()

void yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas ( int room_id)

Definition at line 51 of file dungeon_canvas_viewer.cc.

References yaze::gui::Canvas::AddContextMenuItem(), yaze::zelda3::BG1_Layout, yaze::zelda3::BG1_Objects, yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, yaze::gui::CanvasMenuItem::callback, canvas_, yaze::gui::CanvasFrameOptions::canvas_size, yaze::gui::Canvas::ClearContextMenuItems(), yaze::editor::DungeonObjectInteraction::ClearEntitySelection(), yaze::gfx::CreatePaletteGroupFromLargePalette(), current_palette_group_, current_palette_group_id_, custom_grid_size_, yaze::gui::Canvas::custom_step(), yaze::gui::CanvasMenuItem::Disabled(), yaze::editor::Door, yaze::gui::CanvasFrameOptions::draw_context_menu, yaze::gui::CanvasFrameOptions::draw_grid, yaze::gui::CanvasFrameOptions::draw_overlay, yaze::gfx::PaletteGroupMap::dungeon_main, yaze::gui::CanvasMenuItem::enabled_condition, entity_visibility_, game_data_, yaze::zelda3::GetDoorTypeName(), yaze::editor::DungeonObjectInteraction::GetLayerFilter(), GetRoomLayerManager(), yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), yaze::gui::Canvas::global_scale(), yaze::gui::CanvasFrameOptions::grid_step, yaze::gui::Canvas::height(), yaze::gui::CanvasMenuItem::icon, ICON_MD_ADD, ICON_MD_ADD_CIRCLE, ICON_MD_ARROW_DOWNWARD, ICON_MD_ARROW_UPWARD, ICON_MD_AUTO_AWESOME, ICON_MD_BUG_REPORT, ICON_MD_CANCEL, ICON_MD_CONTENT_COPY, ICON_MD_CONTENT_CUT, ICON_MD_CONTENT_PASTE, ICON_MD_CROP_SQUARE, ICON_MD_DELETE, ICON_MD_DOOR_FRONT, ICON_MD_FILTER_ALT, ICON_MD_FLIP_TO_BACK, ICON_MD_FLIP_TO_FRONT, ICON_MD_GRID_OFF, ICON_MD_GRID_ON, ICON_MD_GRID_VIEW, ICON_MD_IMAGE, ICON_MD_INFO, ICON_MD_INVENTORY, ICON_MD_LABEL, ICON_MD_LABEL_OUTLINE, ICON_MD_LAYERS, ICON_MD_LOOKS_3, ICON_MD_LOOKS_ONE, ICON_MD_LOOKS_TWO, ICON_MD_MERGE_TYPE, ICON_MD_MY_LOCATION, ICON_MD_PALETTE, ICON_MD_PERSON, ICON_MD_PEST_CONTROL, ICON_MD_PRINT, ICON_MD_REFRESH, ICON_MD_SELECT_ALL, ICON_MD_SQUARE, ICON_MD_SQUARE_FOOT, ICON_MD_SWAP_VERT, ICON_MD_TUNE, ICON_MD_VIEW_MODULE, ICON_MD_WIDGETS, yaze::gui::InputHexByteEx(), yaze::Rom::is_loaded(), yaze::editor::DungeonObjectInteraction::IsDoorPlacementActive(), yaze::editor::DungeonObjectInteraction::IsItemPlacementActive(), yaze::editor::DungeonObjectInteraction::IsLayerFilterActive(), yaze::editor::DungeonObjectInteraction::IsSpritePlacementActive(), yaze::editor::Item, yaze::editor::ObjectSelection::kLayer1, yaze::editor::ObjectSelection::kLayer2, yaze::editor::ObjectSelection::kLayer3, yaze::editor::ObjectSelection::kLayerAll, yaze::editor::ObjectSelection::kMaskLayer, yaze::gui::CanvasMenuItem::label, LOG_DEBUG, yaze::zelda3::NormalDoor, yaze::zelda3::NumberOfRooms, object_interaction_, object_interaction_enabled_, object_outline_toggles_, yaze::zelda3::GameData::palette_groups, yaze::zelda3::GameData::paletteset_ids, pending_scroll_target_, prev_blockset_, prev_layout_, prev_palette_, prev_spriteset_, yaze::Rom::ReadWord(), yaze::gui::CanvasFrameOptions::render_popups, yaze::zelda3::ResolveSpriteName(), rom_, room_navigation_callback_, room_swap_callback_, rooms_, SetCurrentPaletteId(), yaze::editor::DungeonObjectInteraction::SetDoorPlacementMode(), yaze::editor::DungeonObjectInteraction::SetItemPlacementMode(), yaze::editor::DungeonObjectInteraction::SetLayerFilter(), yaze::editor::DungeonObjectInteraction::SetLayersMerged(), yaze::gui::Canvas::SetShowBuiltinContextMenu(), yaze::editor::DungeonObjectInteraction::SetSpritePlacementMode(), yaze::gui::InputHexResult::ShouldApply(), show_coordinate_overlay_, show_grid_, show_item_panel_callback_, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_layer0_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_layer1_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_layer2_objects, show_layer_info_, show_object_bounds_, show_object_panel_callback_, yaze::editor::DungeonCanvasViewer::EntityVisibility::show_pot_items, show_room_debug_info_, show_sprite_panel_callback_, yaze::editor::DungeonCanvasViewer::EntityVisibility::show_sprites, show_texture_debug_, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_type1_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_type2_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_type3_objects, yaze::gfx::PaletteGroup::size(), yaze::editor::Sprite, yaze::gui::CanvasMenuItem::subitems, yaze::gui::Canvas::width(), and yaze::gui::Canvas::zero_point().

Referenced by yaze::editor::DungeonRoomPanel::Draw(), and Draw().

◆ Draw()

void yaze::editor::DungeonCanvasViewer::Draw ( int room_id)

Definition at line 47 of file dungeon_canvas_viewer.cc.

References DrawDungeonCanvas().

Here is the call graph for this function:

◆ SetContext()

void yaze::editor::DungeonCanvasViewer::SetContext ( EditorContext ctx)
inline

◆ context()

EditorContext yaze::editor::DungeonCanvasViewer::context ( ) const
inline

Definition at line 46 of file dungeon_canvas_viewer.h.

References game_data_, and rom_.

◆ SetRom()

void yaze::editor::DungeonCanvasViewer::SetRom ( Rom * rom)
inline

Definition at line 47 of file dungeon_canvas_viewer.h.

References object_interaction_, rom(), rom_, and yaze::editor::DungeonObjectInteraction::SetRom().

Here is the call graph for this function:

◆ rom()

Rom * yaze::editor::DungeonCanvasViewer::rom ( ) const
inline

Definition at line 51 of file dungeon_canvas_viewer.h.

References rom_.

Referenced by DungeonCanvasViewer(), and SetRom().

◆ SetGameData()

void yaze::editor::DungeonCanvasViewer::SetGameData ( zelda3::GameData * game_data)
inline

Definition at line 52 of file dungeon_canvas_viewer.h.

References game_data(), and game_data_.

Here is the call graph for this function:

◆ game_data()

zelda3::GameData * yaze::editor::DungeonCanvasViewer::game_data ( ) const
inline

Definition at line 53 of file dungeon_canvas_viewer.h.

References game_data_.

Referenced by SetGameData().

◆ SetRenderer()

void yaze::editor::DungeonCanvasViewer::SetRenderer ( gfx::IRenderer * renderer)
inline

Definition at line 54 of file dungeon_canvas_viewer.h.

References renderer_.

◆ SetRooms()

void yaze::editor::DungeonCanvasViewer::SetRooms ( std::array< zelda3::Room, 0x128 > * rooms)
inline

Definition at line 57 of file dungeon_canvas_viewer.h.

References rooms_.

◆ HasRooms()

bool yaze::editor::DungeonCanvasViewer::HasRooms ( ) const
inline

Definition at line 58 of file dungeon_canvas_viewer.h.

References rooms_.

Referenced by yaze::editor::ObjectEditorPanel::DrawSelectedObjectInfo().

◆ set_active_rooms()

void yaze::editor::DungeonCanvasViewer::set_active_rooms ( const ImVector< int > & rooms)
inline

Definition at line 60 of file dungeon_canvas_viewer.h.

References active_rooms_.

◆ set_current_active_room_tab()

void yaze::editor::DungeonCanvasViewer::set_current_active_room_tab ( int tab)
inline

Definition at line 61 of file dungeon_canvas_viewer.h.

References current_active_room_tab_.

◆ set_current_palette_group_id()

void yaze::editor::DungeonCanvasViewer::set_current_palette_group_id ( uint64_t id)
inline

Definition at line 64 of file dungeon_canvas_viewer.h.

References current_palette_group_id_.

◆ SetCurrentPaletteId()

void yaze::editor::DungeonCanvasViewer::SetCurrentPaletteId ( uint64_t id)
inline

Definition at line 67 of file dungeon_canvas_viewer.h.

References current_palette_id_.

Referenced by DrawDungeonCanvas().

◆ SetCurrentPaletteGroup()

void yaze::editor::DungeonCanvasViewer::SetCurrentPaletteGroup ( const gfx::PaletteGroup & group)
inline

Definition at line 68 of file dungeon_canvas_viewer.h.

References current_palette_group_.

◆ SetRoomNavigationCallback()

void yaze::editor::DungeonCanvasViewer::SetRoomNavigationCallback ( std::function< void(int)> callback)
inline

Definition at line 71 of file dungeon_canvas_viewer.h.

References room_navigation_callback_.

◆ SetRoomSwapCallback()

void yaze::editor::DungeonCanvasViewer::SetRoomSwapCallback ( std::function< void(int, int)> callback)
inline

Definition at line 75 of file dungeon_canvas_viewer.h.

References room_swap_callback_.

◆ SetShowObjectPanelCallback()

void yaze::editor::DungeonCanvasViewer::SetShowObjectPanelCallback ( std::function< void()> callback)
inline

Definition at line 78 of file dungeon_canvas_viewer.h.

References show_object_panel_callback_.

◆ SetShowSpritePanelCallback()

void yaze::editor::DungeonCanvasViewer::SetShowSpritePanelCallback ( std::function< void()> callback)
inline

Definition at line 81 of file dungeon_canvas_viewer.h.

References show_sprite_panel_callback_.

◆ SetShowItemPanelCallback()

void yaze::editor::DungeonCanvasViewer::SetShowItemPanelCallback ( std::function< void()> callback)
inline

Definition at line 84 of file dungeon_canvas_viewer.h.

References show_item_panel_callback_.

◆ canvas() [1/2]

gui::Canvas & yaze::editor::DungeonCanvasViewer::canvas ( )
inline

Definition at line 89 of file dungeon_canvas_viewer.h.

References canvas_.

◆ canvas() [2/2]

const gui::Canvas & yaze::editor::DungeonCanvasViewer::canvas ( ) const
inline

Definition at line 90 of file dungeon_canvas_viewer.h.

References canvas_.

◆ object_interaction()

◆ SetEditorSystem()

void yaze::editor::DungeonCanvasViewer::SetEditorSystem ( zelda3::DungeonEditorSystem * system)
inline

Definition at line 95 of file dungeon_canvas_viewer.h.

References object_interaction_, and yaze::editor::DungeonObjectInteraction::SetEditorSystem().

Here is the call graph for this function:

◆ SetObjectInteractionEnabled()

void yaze::editor::DungeonCanvasViewer::SetObjectInteractionEnabled ( bool enabled)
inline

◆ IsObjectInteractionEnabled()

bool yaze::editor::DungeonCanvasViewer::IsObjectInteractionEnabled ( ) const
inline

Definition at line 103 of file dungeon_canvas_viewer.h.

References object_interaction_enabled_.

◆ SetObjectRenderMode()

void yaze::editor::DungeonCanvasViewer::SetObjectRenderMode ( ObjectRenderMode mode)
inline

Definition at line 108 of file dungeon_canvas_viewer.h.

References object_render_mode_.

◆ GetObjectRenderMode()

ObjectRenderMode yaze::editor::DungeonCanvasViewer::GetObjectRenderMode ( ) const
inline

Definition at line 111 of file dungeon_canvas_viewer.h.

References object_render_mode_.

◆ SetLayerVisible()

void yaze::editor::DungeonCanvasViewer::SetLayerVisible ( int room_id,
zelda3::LayerType layer,
bool visible )
inline

Definition at line 114 of file dungeon_canvas_viewer.h.

References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetLayerVisible().

Here is the call graph for this function:

◆ IsLayerVisible()

bool yaze::editor::DungeonCanvasViewer::IsLayerVisible ( int room_id,
zelda3::LayerType layer ) const
inline

Definition at line 117 of file dungeon_canvas_viewer.h.

References room_layer_managers_.

◆ SetBG1Visible()

void yaze::editor::DungeonCanvasViewer::SetBG1Visible ( int room_id,
bool visible )
inline

Definition at line 124 of file dungeon_canvas_viewer.h.

References yaze::zelda3::BG1_Layout, yaze::zelda3::BG1_Objects, and GetRoomLayerManager().

Here is the call graph for this function:

◆ SetBG2Visible()

void yaze::editor::DungeonCanvasViewer::SetBG2Visible ( int room_id,
bool visible )
inline

Definition at line 129 of file dungeon_canvas_viewer.h.

References yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, and GetRoomLayerManager().

Here is the call graph for this function:

◆ IsBG1Visible()

bool yaze::editor::DungeonCanvasViewer::IsBG1Visible ( int room_id) const
inline

◆ IsBG2Visible()

bool yaze::editor::DungeonCanvasViewer::IsBG2Visible ( int room_id) const
inline

◆ SetLayerBlendMode()

void yaze::editor::DungeonCanvasViewer::SetLayerBlendMode ( int room_id,
zelda3::LayerType layer,
zelda3::LayerBlendMode mode )
inline

Definition at line 148 of file dungeon_canvas_viewer.h.

References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetLayerBlendMode().

Here is the call graph for this function:

◆ GetLayerBlendMode()

zelda3::LayerBlendMode yaze::editor::DungeonCanvasViewer::GetLayerBlendMode ( int room_id,
zelda3::LayerType layer ) const
inline

Definition at line 152 of file dungeon_canvas_viewer.h.

References yaze::zelda3::Normal, and room_layer_managers_.

Referenced by GetBG2LayerType().

◆ SetObjectTranslucent()

void yaze::editor::DungeonCanvasViewer::SetObjectTranslucent ( int room_id,
size_t object_index,
bool translucent,
uint8_t alpha = 128 )
inline

Definition at line 161 of file dungeon_canvas_viewer.h.

References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetObjectTranslucency().

Here is the call graph for this function:

◆ GetRoomLayerManager() [1/2]

zelda3::RoomLayerManager & yaze::editor::DungeonCanvasViewer::GetRoomLayerManager ( int room_id)
inline

◆ GetRoomLayerManager() [2/2]

const zelda3::RoomLayerManager & yaze::editor::DungeonCanvasViewer::GetRoomLayerManager ( int room_id) const
inline

Definition at line 171 of file dungeon_canvas_viewer.h.

References room_layer_managers_.

◆ SetBG2LayerType()

void yaze::editor::DungeonCanvasViewer::SetBG2LayerType ( int room_id,
int type )
inline

◆ GetBG2LayerType()

int yaze::editor::DungeonCanvasViewer::GetBG2LayerType ( int room_id) const
inline

◆ SetPreviewObject()

void yaze::editor::DungeonCanvasViewer::SetPreviewObject ( const zelda3::RoomObject & object)
inline

◆ ClearPreviewObject()

void yaze::editor::DungeonCanvasViewer::ClearPreviewObject ( )
inline

Definition at line 227 of file dungeon_canvas_viewer.h.

References object_interaction_, and yaze::editor::DungeonObjectInteraction::SetPreviewObject().

Referenced by yaze::editor::ObjectEditorPanel::CancelPlacement().

Here is the call graph for this function:

◆ DeleteSelectedObjects()

void yaze::editor::DungeonCanvasViewer::DeleteSelectedObjects ( )
inline

Definition at line 233 of file dungeon_canvas_viewer.h.

References yaze::editor::DungeonObjectInteraction::HandleDeleteSelected(), and object_interaction_.

Here is the call graph for this function:

◆ SetSpritesVisible()

void yaze::editor::DungeonCanvasViewer::SetSpritesVisible ( bool visible)
inline

◆ AreSpritesVisible()

bool yaze::editor::DungeonCanvasViewer::AreSpritesVisible ( ) const
inline

◆ SetPotItemsVisible()

void yaze::editor::DungeonCanvasViewer::SetPotItemsVisible ( bool visible)
inline

◆ ArePotItemsVisible()

bool yaze::editor::DungeonCanvasViewer::ArePotItemsVisible ( ) const
inline

◆ DisplayObjectInfo()

void yaze::editor::DungeonCanvasViewer::DisplayObjectInfo ( const gui::CanvasRuntime & rt,
const zelda3::RoomObject & object,
int canvas_x,
int canvas_y )
private

Definition at line 1389 of file dungeon_canvas_viewer.cc.

References yaze::gui::DrawText().

Here is the call graph for this function:

◆ RenderSprites()

void yaze::editor::DungeonCanvasViewer::RenderSprites ( const gui::CanvasRuntime & rt,
const zelda3::Room & room )
private

Definition at line 1409 of file dungeon_canvas_viewer.cc.

References yaze::gui::DrawRect(), yaze::gui::DrawText(), yaze::zelda3::GetSpriteLabel(), and yaze::zelda3::Room::GetSprites().

Here is the call graph for this function:

◆ RenderPotItems()

void yaze::editor::DungeonCanvasViewer::RenderPotItems ( const gui::CanvasRuntime & rt,
const zelda3::Room & room )
private

Definition at line 1456 of file dungeon_canvas_viewer.cc.

References yaze::gui::DrawRect(), yaze::gui::DrawText(), and yaze::zelda3::Room::GetPotItems().

Here is the call graph for this function:

◆ RenderEntityOverlay()

void yaze::editor::DungeonCanvasViewer::RenderEntityOverlay ( const gui::CanvasRuntime & rt,
const zelda3::Room & room )
private

Definition at line 1543 of file dungeon_canvas_viewer.cc.

◆ RoomToCanvasCoordinates()

std::pair< int, int > yaze::editor::DungeonCanvasViewer::RoomToCanvasCoordinates ( int room_x,
int room_y ) const
private

Definition at line 1551 of file dungeon_canvas_viewer.cc.

◆ CanvasToRoomCoordinates()

std::pair< int, int > yaze::editor::DungeonCanvasViewer::CanvasToRoomCoordinates ( int canvas_x,
int canvas_y ) const
private

Definition at line 1562 of file dungeon_canvas_viewer.cc.

◆ IsWithinCanvasBounds()

bool yaze::editor::DungeonCanvasViewer::IsWithinCanvasBounds ( int canvas_x,
int canvas_y,
int margin = 32 ) const
private

Definition at line 1581 of file dungeon_canvas_viewer.cc.

◆ DrawObjectPositionOutlines()

◆ DrawMaskHighlights()

◆ LoadAndRenderRoomGraphics()

absl::Status yaze::editor::DungeonCanvasViewer::LoadAndRenderRoomGraphics ( int room_id)
private

Definition at line 1693 of file dungeon_canvas_viewer.cc.

References ASSIGN_OR_RETURN, yaze::gfx::CreatePaletteGroupFromLargePalette(), LOG_DEBUG, and LOG_ERROR.

Here is the call graph for this function:

◆ DrawRoomBackgroundLayers()

void yaze::editor::DungeonCanvasViewer::DrawRoomBackgroundLayers ( int room_id)
private

Member Data Documentation

◆ rom_

Rom* yaze::editor::DungeonCanvasViewer::rom_ = nullptr
private

Definition at line 268 of file dungeon_canvas_viewer.h.

Referenced by context(), DrawDungeonCanvas(), rom(), SetContext(), and SetRom().

◆ game_data_

zelda3::GameData* yaze::editor::DungeonCanvasViewer::game_data_ = nullptr
private

◆ canvas_

gui::Canvas yaze::editor::DungeonCanvasViewer::canvas_ {"##DungeonCanvas", ImVec2(0x200, 0x200)}
private

Definition at line 270 of file dungeon_canvas_viewer.h.

Referenced by canvas(), canvas(), and DrawDungeonCanvas().

◆ object_interaction_

◆ pending_scroll_target_

std::optional<std::pair<int, int> > yaze::editor::DungeonCanvasViewer::pending_scroll_target_
private

Definition at line 275 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ rooms_

std::array<zelda3::Room, 0x128>* yaze::editor::DungeonCanvasViewer::rooms_ = nullptr
private

Definition at line 278 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), HasRooms(), and SetRooms().

◆ active_rooms_

ImVector<int> yaze::editor::DungeonCanvasViewer::active_rooms_
private

Definition at line 280 of file dungeon_canvas_viewer.h.

Referenced by set_active_rooms().

◆ current_active_room_tab_

int yaze::editor::DungeonCanvasViewer::current_active_room_tab_ = 0
private

Definition at line 281 of file dungeon_canvas_viewer.h.

Referenced by set_current_active_room_tab().

◆ object_interaction_enabled_

bool yaze::editor::DungeonCanvasViewer::object_interaction_enabled_ = true
private

◆ room_layer_managers_

std::map<int, zelda3::RoomLayerManager> yaze::editor::DungeonCanvasViewer::room_layer_managers_
private

◆ current_palette_group_id_

uint64_t yaze::editor::DungeonCanvasViewer::current_palette_group_id_ = 0
private

Definition at line 290 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and set_current_palette_group_id().

◆ current_palette_id_

uint64_t yaze::editor::DungeonCanvasViewer::current_palette_id_ = 0
private

Definition at line 291 of file dungeon_canvas_viewer.h.

Referenced by SetCurrentPaletteId().

◆ current_palette_group_

gfx::PaletteGroup yaze::editor::DungeonCanvasViewer::current_palette_group_
private

◆ room_navigation_callback_

std::function<void(int)> yaze::editor::DungeonCanvasViewer::room_navigation_callback_
private

Definition at line 293 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and SetRoomNavigationCallback().

◆ room_swap_callback_

std::function<void(int, int)> yaze::editor::DungeonCanvasViewer::room_swap_callback_
private

Definition at line 294 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and SetRoomSwapCallback().

◆ show_object_panel_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_object_panel_callback_
private

Definition at line 295 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and SetShowObjectPanelCallback().

◆ show_sprite_panel_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_sprite_panel_callback_
private

Definition at line 296 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and SetShowSpritePanelCallback().

◆ show_item_panel_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_item_panel_callback_
private

Definition at line 297 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and SetShowItemPanelCallback().

◆ object_render_cache_

std::vector<ObjectRenderCache> yaze::editor::DungeonCanvasViewer::object_render_cache_
private

Definition at line 307 of file dungeon_canvas_viewer.h.

◆ last_palette_hash_

uint64_t yaze::editor::DungeonCanvasViewer::last_palette_hash_ = 0
private

Definition at line 308 of file dungeon_canvas_viewer.h.

◆ show_room_debug_info_

bool yaze::editor::DungeonCanvasViewer::show_room_debug_info_ = false
private

Definition at line 311 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ show_texture_debug_

bool yaze::editor::DungeonCanvasViewer::show_texture_debug_ = false
private

Definition at line 312 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ show_object_bounds_

bool yaze::editor::DungeonCanvasViewer::show_object_bounds_ = false
private

Definition at line 313 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ show_layer_info_

bool yaze::editor::DungeonCanvasViewer::show_layer_info_ = false
private

Definition at line 314 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ show_grid_

bool yaze::editor::DungeonCanvasViewer::show_grid_ = false
private

Definition at line 315 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ show_coordinate_overlay_

bool yaze::editor::DungeonCanvasViewer::show_coordinate_overlay_ = true
private

Definition at line 316 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ layout_override_

int yaze::editor::DungeonCanvasViewer::layout_override_ = -1
private

Definition at line 317 of file dungeon_canvas_viewer.h.

◆ custom_grid_size_

int yaze::editor::DungeonCanvasViewer::custom_grid_size_ = 8
private

Definition at line 318 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ object_render_mode_

ObjectRenderMode yaze::editor::DungeonCanvasViewer::object_render_mode_
private

◆ object_outline_toggles_

ObjectOutlineToggles yaze::editor::DungeonCanvasViewer::object_outline_toggles_
private

Definition at line 331 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ entity_visibility_

EntityVisibility yaze::editor::DungeonCanvasViewer::entity_visibility_
private

◆ renderer_

gfx::IRenderer* yaze::editor::DungeonCanvasViewer::renderer_ = nullptr
private

Definition at line 341 of file dungeon_canvas_viewer.h.

Referenced by SetRenderer().

◆ prev_blockset_

int yaze::editor::DungeonCanvasViewer::prev_blockset_ = -1
private

Definition at line 344 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ prev_palette_

int yaze::editor::DungeonCanvasViewer::prev_palette_ = -1
private

Definition at line 345 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ prev_layout_

int yaze::editor::DungeonCanvasViewer::prev_layout_ = -1
private

Definition at line 346 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().

◆ prev_spriteset_

int yaze::editor::DungeonCanvasViewer::prev_spriteset_ = -1
private

Definition at line 347 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas().


The documentation for this class was generated from the following files: