1#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_CANVAS_VIEWER_H
2#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_CANVAS_VIEWER_H
11#include "imgui/imgui.h"
31 void Draw(
int room_id);
120 std::array<zelda3::Room, 0x128>*
rooms_ =
nullptr;
The Rom class is used to load, save, and modify Rom data.
Handles the main dungeon canvas rendering and interaction.
std::map< int, RoomLayerSettings > room_layer_settings_
void SetCurrentPaletteId(uint64_t id)
std::pair< int, int > CanvasToRoomCoordinates(int canvas_x, int canvas_y) const
std::pair< int, int > RoomToCanvasCoordinates(int room_x, int room_y) const
RoomLayerSettings & GetRoomLayerSettings(int room_id)
ObjectOutlineToggles object_outline_toggles_
std::array< zelda3::Room, 0x128 > * rooms_
absl::Status LoadAndRenderRoomGraphics(int room_id)
bool show_room_debug_info_
bool IsBG1Visible(int room_id) const
int GetBG2LayerType(int room_id) const
void DrawRoomBackgroundLayers(int room_id)
void set_active_rooms(const ImVector< int > &rooms)
void SetBG2LayerType(int room_id, int type)
bool object_interaction_enabled_
void SetCurrentPaletteGroup(const gfx::PaletteGroup &group)
int current_active_room_tab_
void DrawObjectPositionOutlines(const zelda3::Room &room)
DungeonCanvasViewer(Rom *rom=nullptr)
DungeonObjectInteraction object_interaction_
uint64_t last_palette_hash_
DungeonObjectInteraction & object_interaction()
void ClearPreviewObject()
void SetPreviewObject(const zelda3::RoomObject &object)
void SetBG1Visible(int room_id, bool visible)
void SetBG2Visible(int room_id, bool visible)
ImVector< int > active_rooms_
bool IsObjectInteractionEnabled() const
uint64_t current_palette_id_
void set_current_palette_group_id(uint64_t id)
gfx::PaletteGroup current_palette_group_
uint64_t current_palette_group_id_
void SetObjectInteractionEnabled(bool enabled)
void RenderSprites(const zelda3::Room &room)
bool IsWithinCanvasBounds(int canvas_x, int canvas_y, int margin=32) const
bool IsBG2Visible(int room_id) const
void CalculateWallDimensions(const zelda3::RoomObject &object, int &width, int &height)
void set_current_active_room_tab(int tab)
void DrawDungeonCanvas(int room_id)
std::vector< ObjectRenderCache > object_render_cache_
void SetRooms(std::array< zelda3::Room, 0x128 > *rooms)
const gui::Canvas & canvas() const
void DisplayObjectInfo(const zelda3::RoomObject &object, int canvas_x, int canvas_y)
Handles object selection, placement, and interaction within the dungeon canvas.
void SetPreviewObject(const zelda3::RoomObject &object, bool loaded)
Represents a bitmap image optimized for SNES ROM hacking.
Modern, robust canvas for drawing and manipulating graphics.
Main namespace for the application.
gfx::Bitmap rendered_bitmap
Represents a group of palettes.