Handles visualization of all overworld entities (entrances, exits, items, sprites) More...
#include <overworld_entity_renderer.h>

Public Member Functions | |
| OverworldEntityRenderer (zelda3::Overworld *overworld, gui::Canvas *canvas, std::vector< gfx::Bitmap > *sprite_previews) | |
| void | DrawEntrances (const gui::CanvasRuntime &rt, int current_world) |
| void | DrawExits (const gui::CanvasRuntime &rt, int current_world) |
| void | DrawItems (const gui::CanvasRuntime &rt, int current_world) |
| void | DrawSprites (const gui::CanvasRuntime &rt, int current_world, int game_state) |
| void | DrawEntrances (ImVec2 canvas_p0, ImVec2 scrolling, int current_world, int current_mode) |
| void | DrawExits (ImVec2 canvas_p0, ImVec2 scrolling, int current_world, int current_mode) |
| void | DrawItems (int current_world, int current_mode) |
| void | DrawSprites (int current_world, int game_state, int current_mode) |
| void | DrawDiggableTileHighlights (int current_world, int current_map) |
| Draw highlights for all diggable tiles on the current map. | |
| auto | hovered_entity () const |
| void | ResetHoveredEntity () |
| bool | show_diggable_tiles () const |
| void | set_show_diggable_tiles (bool show) |
Private Attributes | |
| zelda3::GameEntity * | hovered_entity_ = nullptr |
| zelda3::Overworld * | overworld_ |
| gui::Canvas * | canvas_ |
| std::vector< gfx::Bitmap > * | sprite_previews_ |
| bool | show_diggable_tiles_ = false |
Handles visualization of all overworld entities (entrances, exits, items, sprites)
This class separates entity rendering logic from the main OverworldEditor, making it easier to maintain and test entity visualization independently.
Definition at line 37 of file overworld_entity_renderer.h.
|
inline |
Definition at line 39 of file overworld_entity_renderer.h.
| void yaze::editor::OverworldEntityRenderer::DrawEntrances | ( | const gui::CanvasRuntime & | rt, |
| int | current_world ) |
Definition at line 51 of file overworld_entity_renderer.cc.
References yaze::gui::DrawRect(), yaze::gui::DrawText(), yaze::zelda3::Overworld::entrances(), yaze::util::HexByte(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), and overworld_.
| void yaze::editor::OverworldEntityRenderer::DrawExits | ( | const gui::CanvasRuntime & | rt, |
| int | current_world ) |
Definition at line 68 of file overworld_entity_renderer.cc.
References yaze::gui::DrawRect(), yaze::gui::DrawText(), yaze::zelda3::GameEntity::entity_id_, yaze::util::HexByte(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), yaze::zelda3::Overworld::mutable_exits(), and overworld_.
| void yaze::editor::OverworldEntityRenderer::DrawItems | ( | const gui::CanvasRuntime & | rt, |
| int | current_world ) |
Definition at line 90 of file overworld_entity_renderer.cc.
References yaze::gui::DrawRect(), yaze::gui::DrawText(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), yaze::zelda3::kSecretItemNames, yaze::zelda3::Overworld::mutable_all_items(), and overworld_.

| void yaze::editor::OverworldEntityRenderer::DrawSprites | ( | const gui::CanvasRuntime & | rt, |
| int | current_world, | ||
| int | game_state ) |
Definition at line 111 of file overworld_entity_renderer.cc.
References canvas_, yaze::gui::Canvas::DrawBitmap(), yaze::gui::DrawRect(), yaze::gui::DrawText(), yaze::core::FeatureFlags::get(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), yaze::zelda3::Overworld::mutable_sprites(), overworld_, and sprite_previews_.
| void yaze::editor::OverworldEntityRenderer::DrawEntrances | ( | ImVec2 | canvas_p0, |
| ImVec2 | scrolling, | ||
| int | current_world, | ||
| int | current_mode ) |
Definition at line 144 of file overworld_entity_renderer.cc.
References canvas_, yaze::gui::Canvas::DrawRect(), yaze::gui::Canvas::DrawText(), yaze::zelda3::Overworld::entrances(), yaze::gui::Canvas::global_scale(), yaze::util::HexByte(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), and overworld_.
| void yaze::editor::OverworldEntityRenderer::DrawExits | ( | ImVec2 | canvas_p0, |
| ImVec2 | scrolling, | ||
| int | current_world, | ||
| int | current_mode ) |
Definition at line 166 of file overworld_entity_renderer.cc.
References canvas_, yaze::gui::Canvas::DrawRect(), yaze::gui::Canvas::DrawText(), yaze::zelda3::GameEntity::entity_id_, yaze::gui::Canvas::global_scale(), yaze::util::HexByte(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), yaze::zelda3::Overworld::mutable_exits(), and overworld_.
| void yaze::editor::OverworldEntityRenderer::DrawItems | ( | int | current_world, |
| int | current_mode ) |
Definition at line 192 of file overworld_entity_renderer.cc.
References canvas_, yaze::gui::Canvas::DrawRect(), yaze::gui::Canvas::DrawText(), yaze::gui::Canvas::global_scale(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), yaze::zelda3::kSecretItemNames, yaze::zelda3::Overworld::mutable_all_items(), overworld_, yaze::gui::Canvas::scrolling(), and yaze::gui::Canvas::zero_point().
| void yaze::editor::OverworldEntityRenderer::DrawSprites | ( | int | current_world, |
| int | game_state, | ||
| int | current_mode ) |
Definition at line 219 of file overworld_entity_renderer.cc.
References canvas_, yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawRect(), yaze::gui::Canvas::DrawText(), yaze::core::FeatureFlags::get(), yaze::gui::Canvas::global_scale(), hovered_entity_, yaze::editor::IsMouseHoveringOverEntity(), yaze::core::FeatureFlags::Flags::Overworld::kDrawOverworldSprites, yaze::zelda3::Overworld::mutable_sprites(), yaze::core::FeatureFlags::Flags::overworld, overworld_, yaze::gui::Canvas::scrolling(), sprite_previews_, and yaze::gui::Canvas::zero_point().
| void yaze::editor::OverworldEntityRenderer::DrawDiggableTileHighlights | ( | int | current_world, |
| int | current_map ) |
Draw highlights for all diggable tiles on the current map.
Renders a semi-transparent overlay on each tile position that has a Map16 tile marked as diggable in the DiggableTiles bitfield.
| current_world | Current world (0=Light, 1=Dark, 2=Special) |
| current_map | Current map index within the world |
Definition at line 261 of file overworld_entity_renderer.cc.
References canvas_, yaze::zelda3::Overworld::diggable_tiles(), yaze::gui::Canvas::DrawRect(), yaze::zelda3::Overworld::GetMapTiles(), overworld_, and show_diggable_tiles_.

|
inline |
Definition at line 77 of file overworld_entity_renderer.h.
References hovered_entity_.
|
inline |
Definition at line 78 of file overworld_entity_renderer.h.
References hovered_entity_.
|
inline |
Definition at line 79 of file overworld_entity_renderer.h.
References show_diggable_tiles_.
|
inline |
Definition at line 80 of file overworld_entity_renderer.h.
References show_diggable_tiles_.
|
private |
Definition at line 83 of file overworld_entity_renderer.h.
Referenced by DrawEntrances(), DrawEntrances(), DrawExits(), DrawExits(), DrawItems(), DrawItems(), DrawSprites(), DrawSprites(), hovered_entity(), and ResetHoveredEntity().
|
private |
Definition at line 84 of file overworld_entity_renderer.h.
Referenced by DrawDiggableTileHighlights(), DrawEntrances(), DrawEntrances(), DrawExits(), DrawExits(), DrawItems(), DrawItems(), DrawSprites(), and DrawSprites().
|
private |
Definition at line 85 of file overworld_entity_renderer.h.
Referenced by DrawDiggableTileHighlights(), DrawEntrances(), DrawExits(), DrawItems(), DrawSprites(), and DrawSprites().
|
private |
Definition at line 86 of file overworld_entity_renderer.h.
Referenced by DrawSprites(), and DrawSprites().
|
private |
Definition at line 87 of file overworld_entity_renderer.h.
Referenced by DrawDiggableTileHighlights(), set_show_diggable_tiles(), and show_diggable_tiles().