1#ifndef YAZE_APP_EDITOR_DUNGEON_PANELS_MINECART_TRACK_EDITOR_PANEL_H
2#define YAZE_APP_EDITOR_DUNGEON_PANELS_MINECART_TRACK_EDITOR_PANEL_H
8#include <unordered_map>
37 std::string
GetId()
const override {
return "dungeon.minecart_tracks"; }
42 void Draw(
bool* p_open)
override;
46 void SetRooms(std::array<zelda3::Room, 0x128>* rooms) {
64 const std::vector<MinecartTrack>&
GetTracks();
74 bool ParseSection(
const std::string& content,
const std::string& label,
75 std::vector<int>& out_values);
77 const std::vector<int>& values);
85 std::vector<uint16_t>& target);
98 std::array<zelda3::Room, 0x128>*
rooms_ =
nullptr;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Base interface for all logical panel components.
void SetProject(project::YazeProject *project)
std::string overlay_track_stop_tiles_input_
std::string overlay_track_object_ids_input_
void StartCoordinatePicking(int track_index)
std::string overlay_track_switch_tiles_input_
std::string FormatSection(const std::string &label, const std::vector< int > &values)
bool IsDefaultTrack(const MinecartTrack &track) const
std::string GetId() const override
Unique identifier for this panel.
std::string GetIcon() const override
Material Design icon for this panel.
bool IsPickingCoordinates() const
std::string GetEditorCategory() const override
Editor category this panel belongs to.
std::string status_message_
std::string overlay_minecart_sprite_ids_input_
void Draw(bool *p_open) override
Draw the panel content.
int GetPickingTrackIndex() const
const std::vector< MinecartTrack > & GetTracks()
std::vector< bool > track_subtype_used_
std::unordered_map< int, RoomTrackAudit > room_audit_
std::function< void(int room_id)> RoomNavigationCallback
std::vector< MinecartTrack > tracks_
RoomNavigationCallback room_navigation_callback_
void SetRoomNavigationCallback(RoomNavigationCallback callback)
std::string overlay_track_tiles_input_
void DrawOverlaySettings()
bool overlay_inputs_initialized_
std::array< zelda3::Room, 0x128 > * rooms_
MinecartTrackEditorPanel(const std::string &start_root="")
void SetRooms(std::array< zelda3::Room, 0x128 > *rooms)
void CancelCoordinatePicking()
void InitializeOverlayInputs()
std::unordered_map< int, std::vector< int > > track_usage_rooms_
bool ParseSection(const std::string &content, const std::string &label, std::vector< int > &out_values)
std::string project_root_
void SetProjectRoot(const std::string &root)
project::YazeProject * project_
std::string GetDisplayName() const override
Human-readable name shown in menus and title bars.
void SetPickedCoordinates(int room_id, uint16_t camera_x, uint16_t camera_y)
bool UpdateOverlayList(const char *label, std::string &input, std::vector< uint16_t > &target)
Editors are the view controllers for the application.
std::vector< int > track_subtypes
bool has_minecart_on_stop
Modern project structure with comprehensive settings consolidation.