1#ifndef YAZE_APP_EDITOR_OVERWORLD_ENTITY_H
2#define YAZE_APP_EDITOR_OVERWORLD_ENTITY_H
9#include "imgui/imgui.h"
30 ImVec2 canvas_p0, ImVec2 scrolling,
40 const gui::CanvasRuntime& rt);
51 ImVec2 scrolling,
bool free_movement =
false,
80 std::vector<SpriteItem>& items) {
90 const ImGuiTableColumnSortSpecs* sort_spec =
93 switch (sort_spec->ColumnUserID) {
95 delta = (a.
id - b.
id);
98 delta = strcmp(a.
name + 2, b.
name + 2);
102 return (sort_spec->SortDirection == ImGuiSortDirection_Ascending)
110void DrawSpriteTable(std::function<
void(
int)> onSpriteSelect,
int& selected_id);
129 const std::vector<gfx::Tile16>& tiles16,
130 const std::array<uint8_t, 0x200>& all_tiles_types);
Manages diggable tile state as a 512-bit bitfield.
A class for managing sprites in the overworld and underworld.
void DrawExitInserterPopup()
bool DrawSpriteEditorPopup(zelda3::Sprite &sprite)
void DrawItemInsertPopup()
bool DrawEntranceInserterPopup()
void DrawSpriteInserterPopup()
void DrawSpriteTable(std::function< void(int)> onSpriteSelect, int &selected_id)
bool DrawOverworldEntrancePopup(zelda3::OverworldEntrance &entrance)
bool DrawItemEditorPopup(zelda3::OverworldItem &item)
bool DrawDiggableTilesEditorPopup(zelda3::DiggableTiles *diggable_tiles, const std::vector< gfx::Tile16 > &tiles16, const std::array< uint8_t, 0x200 > &all_tiles_types)
Draw popup dialog for editing diggable tiles configuration.
void MoveEntityOnGrid(zelda3::GameEntity *entity, ImVec2 canvas_p0, ImVec2 scrolling, bool free_movement, float scale)
Move entity to grid-aligned position based on mouse.
SpriteItemColumnID
Column IDs for the sprite table.
@ SpriteItemColumnID_Name
@ SpriteItemColumnID_Description
bool DrawExitEditorPopup(zelda3::OverworldExit &exit)
bool IsMouseHoveringOverEntity(const zelda3::GameEntity &entity, ImVec2 canvas_p0, ImVec2 scrolling, float scale)
Check if mouse is hovering over an entity.
static const ImGuiTableSortSpecs * s_current_sort_specs
static bool CompareWithSortSpecs(const SpriteItem &a, const SpriteItem &b)
static void SortWithSortSpecs(ImGuiTableSortSpecs *sort_specs, std::vector< SpriteItem > &items)