Refactor DungeonEditor and related components for improved object management and UI enhancements

- Replaced vertical separators with standard separators in the EditorManager's menu bar for consistency.
- Introduced a new room selection callback mechanism in DungeonRoomSelector to facilitate room selection events.
- Enhanced DungeonEditor with drag-and-select functionality for object placement, improving user interaction.
- Added an object browser in DungeonObjectSelector for better object management and preview capabilities.
- Streamlined object rendering and selection processes, ensuring a more intuitive editing experience.
This commit is contained in:
scawful
2025-09-25 18:56:30 -04:00
parent dd73ea080b
commit 1964d31930
10 changed files with 537 additions and 1485 deletions

View File

@@ -3,7 +3,6 @@
#include <cstdint>
#include <string>
#include <string_view>
namespace yaze {
@@ -45,7 +44,7 @@ class GameEntity {
virtual void UpdateMapProperties(uint16_t map_id) = 0;
};
constexpr std::string_view kEntranceNames[] = {
constexpr const char* kEntranceNames[] = {
"Link's House Intro",
"Link's House Post-intro",
"Sanctuary",

View File

@@ -5,7 +5,6 @@
#include <string>
#include <vector>
#include "absl/strings/string_view.h"
#include "app/gfx/snes_tile.h"
#include "app/rom.h"
#include "app/zelda3/dungeon/object_parser.h"
@@ -254,7 +253,7 @@ class Subtype3 : public RoomObject {
}
};
constexpr static inline absl::string_view Type1RoomObjectNames[] = {
constexpr static inline const char* Type1RoomObjectNames[] = {
"Ceiling ↔",
"Wall (top, north) ↔",
"Wall (top, south) ↔",
@@ -505,7 +504,7 @@ constexpr static inline absl::string_view Type1RoomObjectNames[] = {
"Nothing",
};
constexpr static inline absl::string_view Type2RoomObjectNames[] = {
constexpr static inline const char* Type2RoomObjectNames[] = {
"Corner (top, concave) ▛",
"Corner (top, concave) ▙",
"Corner (top, concave) ▜",
@@ -572,7 +571,7 @@ constexpr static inline absl::string_view Type2RoomObjectNames[] = {
"Magic bat altar",
};
constexpr static inline absl::string_view Type3RoomObjectNames[] = {
constexpr static inline const char* Type3RoomObjectNames[] = {
"Waterfall face (empty)",
"Waterfall face (short)",
"Waterfall face (long)",