1#ifndef YAZE_APP_EDITOR_OVERWORLD_OVERWORLD_CANVAS_RENDERER_H
2#define YAZE_APP_EDITOR_OVERWORLD_OVERWORLD_CANVAS_RENDERER_H
7#include <unordered_map>
10#include "absl/status/status.h"
13#include "imgui/imgui.h"
Handles all canvas drawing and panel rendering for the overworld editor.
absl::Status DrawTile16Selector()
Draw the tile16 selector panel.
std::vector< int > tile16_usage_counts_
gui::AdaptiveSheetScaleMode area_graphics_scale_mode_
OverworldCanvasRenderer(OverworldEditor *editor)
int tile16_usage_count(int tile_id) const
double tile16_last_count_time_
void ResetTile16Order()
Shows every tile in ID order and forces a recount on the next refresh.
Tile16UsageScope tile16_scope_
void DrawEntityHoverTooltip()
absl::Status DrawAreaGraphics()
Draw the area graphics panel.
std::optional< ImVec2 > entity_drag_origin_
void DrawMapProperties()
Draw the map properties panel (sidebar-based)
void DrawOverworldProperties()
Draw the overworld properties grid (debug/info view)
std::string Tile16ScopeLabel() const
zelda3::Tile16SortMode tile16_sort_
void FilterHoveredEntityByMode()
In an entity mode only that entity type responds to hover/drag/menu.
OverworldEditor * editor_
Non-owning pointer to the parent editor.
void DrawTile16AreaPicker()
const std::vector< int > & tile16_usage_counts() const
int tile16_counted_world_
gui::AdaptiveSheetScaleMode tile16_scale_mode_
void DrawOverworldCanvas()
Draw the main overworld canvas with toolbar, maps, and entities. This is the primary entry point call...
bool PrepareContextMenu(const ImVec2 &screen_position)
OverlayLayer * EnsureOverlayLayer(int map_index)
std::vector< int > Tile16ScopeMaps() const
void DrawV3Settings()
Draw the v3 settings panel.
void DrawTile16ViewControls()
void DrawMapWithAreaLayers(int map_index, int map_x, int map_y, float scale)
bool tile16_grid_hovered_
void RefreshTile16Order(bool grid_hovered)
char tile16_area_search_[64]
std::unordered_map< int, OverlayLayer > overlay_layers_
void DrawTile8Selector()
Draw the tile8 selector panel (graphics bin)
void DrawOverworldMaps()
Render the 64 overworld map bitmaps to the canvas.
int tile16_counted_parent_
Main UI class for editing overworld maps in A Link to the Past.
Represents a bitmap image optimized for SNES ROM hacking.
void DrawSheetScaleControl(const char *id, gui::AdaptiveSheetScaleMode *mode)