- Created a backup of the vcpkg.json file, detailing project dependencies including zlib, libpng, sdl2, and abseil, with platform exclusions for UWP.
- Specified a builtin-baseline and provided version overrides for abseil, ensuring consistent dependency management.
- Introduced the abseil library as a dependency in vcpkg.json, excluding UWP platform support.
- Updated the vcpkg configuration to include a new features section for pkg-config, improving dependency detection.
- Modified yaze.vcxproj to conditionally include additional dependencies and library directories based on vcpkg integration status, enhancing build flexibility.
- Organized source and header files in the project structure for better clarity and maintainability.
- Added a new workflow for validating Visual Studio builds on push and pull request events, ensuring that both x64 and x86 configurations are tested.
- Integrated vcpkg setup into the validation process to automatically manage dependencies.
- Implemented a PowerShell script for build validation, checking for executable creation and asset copying.
- Updated documentation to reflect the new CI/CD processes and automated validation features, improving clarity on build requirements and procedures.
- Refactored the EditorManager to streamline testing feature initialization, ensuring better control over testing capabilities.
- Introduced `yaze.sln` and `yaze.vcxproj` files for easier integration with Visual Studio, supporting both x64 and x86 configurations.
- Updated the Visual Studio setup guide to reflect changes in project structure and provide clearer instructions for building and running the project.
- Enhanced asset management in the build process, ensuring automatic copying of necessary files during builds.
- Improved the setup script for vcpkg, adding checks for installation and dependencies, and clarifying user instructions for a smoother setup experience.
- Removed unnecessary dependencies from vcpkg.json for a cleaner configuration.
- Updated sdl2.cmake to improve handling of ZLIB and PNG dependencies for minimal builds on Windows.
- Added a comprehensive Visual Studio setup guide to assist users in configuring the YAZE project on Windows, including prerequisites and troubleshooting tips.
- Improved app configuration to prevent conflicts with Google Test integration, ensuring a smoother testing experience.
- Clarified build commands for Windows, specifying the purpose of each preset.
- Added a new development build preset that includes Google Test and ROM testing.
- Enhanced documentation with a summary of build types for better user understanding.
- Introduced a new CMake preset for Windows development, enabling vcpkg integration and testing features.
- Configured the preset to inherit from the debug configuration, ensuring consistency in build settings.
- Set up cache variables for vcpkg and testing options, enhancing the development workflow on Windows.
- Added conditional compilation flags for enabling testing features in EditorManager, ensuring that testing-related functionalities are only initialized when tests are enabled.
- Updated app configuration to define YAZE_ENABLE_TESTING based on the build settings, improving clarity and control over testing capabilities.
- Refactored comments to clarify the context of testing features throughout the EditorManager code.
- Replaced inline array with a static constant for palette group names, enhancing code readability and maintainability.
- Updated the display logic for the current palette group to utilize the new constant, ensuring consistent output.
- Added vcpkg integration in CMake for Windows, enabling automatic dependency management.
- Updated CMakePresets.json to include presets for debug and release builds with vcpkg.
- Created setup scripts for easy vcpkg installation on Windows.
- Enhanced documentation to guide users on vcpkg setup and usage with YAZE.
- Improved logging in Overworld class to track expanded tile flags during map assembly.
- Rearranged include statements for better organization and reduced redundancy.
- Enhanced the DrawSimplifiedMapSettings method by improving formatting and readability.
- Streamlined the logic for handling world and map changes, ensuring more efficient updates.
- Updated the DrawMapPropertiesPanel and related methods to improve layout and user interaction.
- Refactored overlay handling logic to enhance maintainability and clarity in the Overworld class.
- Simplified tile selection detection by integrating it with the tile selector drawing method.
- Enhanced click position calculations to use dynamic grid step values, improving responsiveness to different grid sizes.
- Rearranged drawing calls for better organization and clarity in the UpdateBlockset method.
- Updated the DrawToCurrentTile16 method to accept an optional source tile parameter, improving flexibility in tile rendering.
- Refined the logic for regenerating tile16 bitmaps from ROM data, ensuring accurate updates and palette management.
- Enhanced the UI layout for the Tile16 editor, optimizing the interaction of tile8 and tile16 controls.
- Improved code readability by standardizing formatting and reducing unnecessary whitespace.
- Added a callback mechanism in OverworldEditor to refresh the tile16 blockset and overworld map upon committing changes.
- Improved the Tile16Editor with new methods for committing changes to the overworld and discarding local modifications.
- Enhanced the UI layout for the Tile16 editor, optimizing the display and interaction of tile8 and tile16 controls.
- Updated the drawing logic for tile previews and improved palette management features for better user experience.
- Implemented full support for ZSCustomOverworld v3, including complex transition calculations and interactive overlays.
- Introduced a new unified settings table in OverworldEditorManager for streamlined management of toolsets and properties.
- Enhanced scratch space functionality with selection transfer capabilities between overworld and scratch slots.
- Removed the outdated ZEML system in favor of a pure ImGui layout for improved performance and maintainability.
- Updated changelog to reflect significant new features and improvements in the Overworld Editor.
- Simplified the logic for determining custom overworld behavior based on ASM version, enhancing clarity and maintainability.
- Updated comments for better understanding of expanded tile and entrance data checks in the Overworld class.
- Ensured that expanded data checks are more straightforward, improving the overall flow of the overworld map assembly process.
- Removed the outdated ZEML layout file and associated references to streamline the OverworldEditor.
- Introduced the OverworldEditorManager class to encapsulate v3 settings management, improving code organization and maintainability.
- Updated the OverworldEditor to utilize ImGui for layout, enhancing user interaction and flexibility.
- Enhanced the changelog with detailed descriptions of new features and improvements, including a comprehensive undo/redo system and advanced palette management.
- Removed deprecated diagnostic patterns from the clangd configuration to improve code quality checks.
- Updated EditorManager to improve welcome screen logic, ensuring it only displays in truly empty states and not when a ROM is loaded but current_rom_ is null.
- Enhanced error handling in EditorManager by routing editor errors to the toast manager for better user feedback.
- Improved OverworldEditor with enhanced tile interaction detection and added scratch space functionality for better layout management.
- Introduced a new ScratchSpaceSlot structure in OverworldEditor to manage scratch space for tile16 layouts, allowing for more flexible editing and selection.
- Added utility functions in canvas_utils for grid alignment and effective scaling, improving overall canvas interaction.
- Implemented an enhanced palette editor with ROM integration, providing users with tools for color analysis and palette management.
- Added a basic implementation for the Linux save file dialog using a system command, returning a placeholder path for CI/CD.
- Introduced a new ShowSaveFileDialog method that utilizes a global feature flag to choose between native and bespoke dialog implementations, improving flexibility and maintainability.
- Added checks to ensure tile16 blockset is loaded and active before drawing in OverworldEditor.
- Improved tile rendering logic in Canvas to pre-render tiles and ensure they are active before drawing, preventing timing issues.
- Cleared cached tile bitmaps to force re-rendering when the tile16 blockset is updated, enhancing visual consistency.
- Added a new Music tab in the Map Properties panel for editing music tracks associated with different game states.
- Implemented functionality to save music data for both Light and Dark World maps.
- Updated feature flags to enable custom overworld features based on ASM version, improving flexibility for ROM modifications.
- Enhanced UI elements with tooltips and popups for better user guidance on custom overworld settings.
- Rearranged the Color struct to place the blue component after green for consistency.
- Removed the Theme struct and its associated functions from style.h and style.cc, streamlining the codebase and focusing on color management.
- Updated the logic for displaying the welcome screen to only show it if it hasn't been manually closed by the user.
- Introduced a new flag to track whether the welcome screen was manually closed, enhancing user experience by preventing unwanted re-displays.
- Reset the welcome screen state when a ROM is loaded, ensuring a fresh start for the user.
- Minor adjustments to comments for clarity and maintainability.
- Updated the command palette UI to include a search input with focus management, allowing users to filter and categorize commands more effectively.
- Enhanced the global search UI with tabbed results for recent files and labels, improving organization and accessibility.
- Refactored the display settings to be accessible via a popup, allowing customization without needing to load a ROM.
- Improved the welcome screen with enhanced particle effects and customization options, making it more visually appealing and user-friendly.
- Added functionality for global font scaling and theme management within the display settings, enhancing user experience.
- Added SaveRomAs method to allow users to save ROM files with specified filenames, ensuring proper file extensions are applied.
- Updated the DrawMenuBar method to utilize SaveRomAs, providing feedback on save success or failure through toast notifications.
- Enhanced session management by introducing RemoveSession method to mark sessions as closed instead of removing them, improving user experience when managing active sessions.
- Updated session handling logic to ensure closed sessions are properly skipped in the UI, maintaining clarity in session management.
- Added ShowSaveFileDialog and its platform-specific implementations for Windows and macOS, allowing users to save files with specified names and extensions.
- Enhanced the FileDialogWrapper class to support both native and bespoke dialog options based on feature flags.
- Updated the editor manager to utilize the new save dialog for ROM and project file saving, improving user experience and file management.
- Refactored existing dialog methods to ensure consistency and maintainability across different platforms.
- Introduced new helper functions for managing table canvases in the GUI, allowing for better sizing and layout of elements.
- Updated the theme manager to include additional color properties for navigation elements, tree lines, and tab variations, improving visual consistency.
- Enhanced the theme selection interface with a more organized table layout for built-in and file themes, along with action buttons for theme management.
- Updated the release workflow to check for an existing macOS app bundle before creating a new one, improving efficiency.
- Added debug output to list built files and clarify the build process.
- Streamlined the resource copying process for both existing and newly created bundles, ensuring all necessary assets are included.
- Modified the FILE_DIALOG_SRC variable to include both platform-independent and macOS-specific source files.
- This change enhances clarity by explicitly indicating the purpose of each source file in the CMake configuration.
- Updated z3ed CMake configuration to conditionally set the file dialog source based on the platform (macOS or other).
- This change simplifies the build process by using a single variable for the file dialog source, enhancing maintainability and clarity.
- Updated the error message assignment in LoadRomComponent to ensure proper string handling by explicitly constructing a std::string from the message data.
- This change improves the robustness of error reporting when loading ROM files.
- Updated CMake files for both emu and z3ed to include the imgui_test_engine directory in the target include directories.
- This change ensures that the necessary headers for the imgui_test_engine are accessible during the build process, facilitating UI testing capabilities.
- Updated the build environment setup step to provide clearer messaging for all platforms.
- Streamlined the CMake configuration for Linux/macOS to enable UI tests and full dependency support.
- Adjusted Windows configuration to maintain a minimal build approach while disabling UI tests and ensuring compatibility.
- Added flags to disable emulator and developer tools for cleaner releases across all platforms.
- Renamed the job from 'create-release' to 'validate-and-prepare' to better reflect its purpose.
- Added a step to store release notes for later use, enhancing the release process.
- Updated dependencies in the build-release job to rely on the new validation job outputs.
- Improved the announcement step to utilize the validated tag name and release notes, ensuring clarity in release communications.
- Updated code style in message_data.cc and message_data.h for uniformity, specifically adjusting spacing around references and pointers.
- Improved readability by ensuring consistent use of `const` and reference qualifiers in function signatures.
- No functional changes were made; this commit focuses solely on code style enhancements.
- Set the shell to cmd for the Windows CMake configuration step, ensuring compatibility with the Windows environment.
- This change aims to streamline the build process on Windows by explicitly defining the shell used for running commands.
- Added caching for vcpkg dependencies to improve build efficiency on Windows.
- Included a verification step to check installed vcpkg packages and ensure zlib is present.
- Updated vcpkg installation step to run automatically, streamlining the setup process.
- Modified the Doxygen GitHub Actions workflow to only run when documentation-related files are modified, enhancing efficiency.
- Updated the checkout action to version 4 and added a step to check if documentation changes are present before proceeding with the build.
- Cleaned up previous build artifacts only if documentation changes are detected, ensuring a fresh build environment.
- Improved deployment step to GitHub Pages with a summary message indicating the success or skip of the documentation generation.
- Enhanced the release workflow to validate tag formats more robustly, ensuring compliance with semantic versioning.
- Added detailed error messages and guidance for users on creating valid tags.
- Updated the workflow to use a validated tag for release creation and announcements, improving consistency and clarity in the release process.
- Updated the release workflow to enforce semantic versioning for tags, improving consistency in release management.
- Added a validation step to ensure tags follow the semantic versioning format before proceeding with the release.
- Introduced a new script to facilitate the creation of release tags, including checks for existing tags and uncommitted changes, enhancing the release process.
- Modified the release workflow to output the tag name instead of upload URL and release ID.
- Improved changelog extraction with error handling and default release notes creation if extraction fails.
- Switched to using softprops/action-gh-release for creating releases and uploading assets.
- Added macOS dependency installation step for UI tests and refined CMake configurations for better build control.
- Enhanced packaging steps to include documentation and assets in the release artifacts.
- Added a welcome screen that can be accessed from the View menu, improving user experience for new users.
- Enhanced session management by allowing the reuse of empty sessions when loading ROMs, reducing unnecessary session creation.
- Improved the session table layout for better readability and added a custom overworld feature flag for each session.
- Updated the DrawWelcomeScreen method for better visual integration and added a glow effect to the decorative line.
- Updated the CI configuration to allow relaxed code quality checks for the release and master branches, including warnings for formatting errors and reduced cppcheck categories.
- Implemented conditional logic for clang-tidy and cppcheck to run less stringent checks during release builds, improving build efficiency while maintaining code quality.
- Enhanced feedback messages to guide developers on formatting and code quality expectations for different branches.