- Updated CMakeLists.txt to set a minimum required version of 3.5 and removed older policy settings for improved compatibility.
- Enhanced yaze.h and zelda.h with detailed documentation, including versioning information and API descriptions, to improve clarity for developers.
- Added new functions for version compatibility checks and improved error handling in the YAZE API.
- Refactored existing structures and enums for better readability and maintainability, ensuring a more consistent coding style.
- Implemented conditional compilation for image copy and retrieval functions in clipboard.cc, clipboard.h, and clipboard.mm, enabling PNG support when YAZE_LIB_PNG is defined.
- Updated graphics_editor.cc and overworld_editor.cc to handle PNG data copying to the clipboard, including error handling for cases when PNG support is disabled.
- Enhanced user feedback by providing alternative actions when PNG export is unavailable, improving overall user experience.
- Updated the DrawSimplifiedMapSettings method to streamline the layout and enhance usability with new UI constants for table and button dimensions.
- Removed the Tools popup from the MapPropertiesSystem, consolidating editing functionalities for a cleaner interface.
- Enhanced the DrawGraphicsPopup and DrawPalettesPopup methods with custom input widths for better alignment and user experience.
- Improved the organization of map properties sections, adding clear headers for Basic Properties, Area Configuration, and Visual Effects.
- Adjusted button functionalities and hover hints for better user guidance and interaction.
- Updated the DrawOverworldEntrancePopup to include new options for deleting entrances and improved UI labels for better clarity.
- Integrated new UI constants for consistent styling across the editor.
- Refactored MapPropertiesSystem to support additional toolset functionalities, including editing tools and view controls.
- Improved overlay handling in OverworldMap, consolidating vanilla and custom overlay loading logic.
- Enhanced user interaction with new buttons and streamlined layout for better usability in the editor.
- Changed the included assembly file for custom overworld to version 3 for improved features.
- Enhanced documentation in the overworld loading guide to clarify overlay effects and configurations.
- Refactored MapPropertiesSystem to support overlay previews and improved mosaic controls.
- Added functionality for loading vanilla overlays and displaying overlay descriptions in the editor.
- Updated UI components in OverworldEditor to integrate new overlay settings and preview options.
- Updated the MapPropertiesSystem to improve the layout of the simplified map settings table, increasing column widths for better visibility and usability.
- Adjusted button sizes in the OverworldEditor for Graphics, Palettes, Overlays, and Properties to enhance user interaction.
- Implemented filtering of sprites in the OverworldEditor based on the current world, ensuring only relevant sprites are displayed.
- Refactored sprite drawing logic to utilize global coordinates directly, improving accuracy in sprite rendering.
- Introduced MapPropertiesSystem class to manage map properties, including settings for area size, graphics, palettes, and overlays.
- Implemented UI components for drawing map properties, allowing users to customize map settings through a dedicated panel.
- Enhanced OverworldEditor to integrate map properties functionality, providing quick access to map settings via context menus and UI interactions.
- Added support for custom background colors and overlays, improving the overall customization experience for users.
- Updated OverworldEditor to include new table columns for CopyMap, MapLock, CustomBG, and Overlay, improving user interaction and customization options.
- Implemented DrawCustomBackgroundColorEditor and DrawOverlayEditor methods for managing custom background colors and overlay settings, respectively.
- Added context menu functionality for map locking and quick access to map properties, enhancing usability.
- Refactored OverworldMap to support new features related to animated graphics and subscreen overlays, ensuring compatibility with ZScreamCustomOverworld v3.
- Introduced ZScream Custom Overworld ASM to enhance customization of the ALTTP overworld, allowing users to modify various aspects such as palettes, backgrounds, and transitions.
- Updated OverworldEditor to include area size selection for v3 support, enabling users to choose between different area sizes (Small, Large, Wide, Tall).
- Enhanced OverworldMap to load area size information based on the applied ASM version, ensuring compatibility with expanded features.
- Implemented SaveAreaSizes method in Overworld to persist area size settings in the ROM, supporting the new customization capabilities.
- Refactored related classes and methods to accommodate the new area size logic and ensure seamless integration with existing functionalities.
- Introduced SharedClipboard struct in EditorContext to manage cross-session clipboard data.
- Implemented Copy and Paste methods in OverworldEditor to handle tile16 selections and transfers.
- Enhanced clipboard management to support both rectangular selections and single tile copies.
- Added error handling for clipboard operations to ensure robust functionality.
- Eliminated the SharedRom class to enhance modularity and reduce global state management.
- Updated various classes to directly manage ROM instances, improving clarity and encapsulation.
- Added new functions for loading messages and colors from ROM, enhancing functionality.
- Refactored Canvas and Editor classes to utilize direct ROM references, streamlining interactions.
- Improved documentation and comments for better code understanding and maintainability.
- Replaced platform backend references with a dedicated Window class for better encapsulation of window and audio device management.
- Updated various files to include the new window header, enhancing clarity and reducing dependencies on the platform backend.
- Removed obsolete platform backend code to streamline the codebase and improve maintainability.
- Refactored controller and editor classes to utilize the new window management system, ensuring consistent handling of window creation and rendering.
- Updated namespace usage to yaze::editor for consistency.
- Replaced string search methods with contains and ranges::find for better clarity and performance.
- Simplified Load function in AssemblyEditor for conciseness.
- Enhanced OverworldEditor by consolidating GUI element bindings and improving input handling.
- Refactored toolset drawing logic to streamline the editor interface and improve user experience.
- Updated tab item handling in GraphicsEditor and ScreenEditor to ensure proper opening and closing of tab items.
- Improved layout management by replacing deprecated macros with ImGui table functions for better readability and maintainability.
- Adjusted palette display function signature in color handling to return a boolean for success status instead of absl::Status.
- Enhanced tile rendering functions for consistency and clarity in the graphics editing workflow.
- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Updated various rendering methods to streamline bitmap updates and enhance performance.
- Removed unused includes and comments to improve code clarity and maintainability.
Update various editors to replace instances of GraphicsSheetManager with gfx::Arena for accessing graphics sheets. This change enhances memory management and performance by centralizing graphics data handling within the Arena class. Clean up related code for improved clarity and maintainability.
Refactor the handling of graphics sheets by introducing a singleton class `GraphicsSheetManager`. This centralizes the management of graphics sheets, replacing direct access through the `Rom` object. Key changes include:
- Updated various methods across multiple classes to use `GraphicsSheetManager::GetInstance()` for accessing and manipulating graphics sheets.
- Introduced standalone functions `LoadLinkGraphics`, `LoadAllGraphicsData`, and `SaveAllGraphicsData` for loading and saving graphics data.
- Refactored the `Rom` class to remove methods and member variables related to graphics sheet management.
- Updated `OverworldEditor` to use `std::array` for `maps_bmp_` and added error handling for `std::bad_alloc` exceptions.
- Improved code modularity and error handling throughout the application.