- 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.
- Updated CMake configuration to ensure theme files are included in macOS bundles and added explicit file handling for theme resources.
- Refactored ThemeManager to replace hardcoded theme lists with dynamic discovery of available themes, improving flexibility across development and deployment scenarios.
- Introduced methods for refreshing and loading themes at runtime, enhancing user experience and customization options.
- Improved logging for theme loading processes, providing better feedback on successes and failures.
- Introduced a new .clang-tidy configuration file for improved code quality checks with a lenient setup.
- Updated Doxyfile to reflect the new project version 0.3.0 and set the output directory for documentation.
- Enhanced README and changelog with new features, including theme management and multi-session support.
- Improved CI workflow to run clang-tidy with specified configurations for better code analysis.
- Introduced a comprehensive theme management system, allowing users to load, save, and switch between multiple themes.
- Added support for various built-in themes, enhancing the visual customization of the application.
- Implemented a background renderer for improved visual effects in docking windows, including grid backgrounds and subtle animations.
- Enhanced the EditorManager UI with themed elements, providing a more cohesive and engaging user experience.
- Updated CMake configuration to include new theme and background renderer source files, ensuring proper integration into the build system.
- Updated the CMake packaging script to conditionally set the CPACK_GENERATOR based on the environment, differentiating between CI/CD builds and local builds.
- Enhanced NSIS-specific configuration to only apply for local builds, improving clarity and maintainability.
- Adjusted package file naming conventions for Windows builds to reflect the environment, ensuring consistency across different build scenarios.
- Updated the Rom class to use core::ResourceLabelManager for better namespace clarity.
- Introduced a comprehensive YazeProject structure consolidating project metadata, settings, and resource management.
- Enhanced project management capabilities with methods for creating, opening, saving, and validating projects.
- Implemented support for ZScream project format import and export, improving compatibility with existing projects.
- Added workspace settings and feature flags to streamline user configurations and project setup.
- Updated the ROM status display to include a clickable button that opens a detailed popup with metadata.
- Improved tooltips for ROM information, providing enhanced visibility on hover.
- Redesigned the session switcher and manager to include session metadata and improved styling for better user experience.
- Added animated background effects and enhanced button styles on the welcome screen for a more engaging interface.
- Added checks to conditionally set the DMG background image and DS Store setup script only if the files exist, improving robustness in packaging.
- Updated the emulator build configuration to skip unnecessary steps in minimal builds, ensuring cleaner builds and better resource management.
- Streamlined target include directories and linking for the emulator, maintaining modularity and clarity in the CMake setup.
- Removed the homepage display logic and replaced it with a welcome screen that appears when no ROM is loaded or no active editors are present.
- Enhanced session management by iterating through all sessions to check for active editors, allowing for better multi-session docking.
- Introduced new methods for generating unique editor titles based on session context and added feature flags for per-session configurations.
- Added safeguards for ROM loading state checks in editor methods to prevent operations on unloaded ROMs.
- Updated the GitHub Actions workflow to utilize a dedicated Python script for extracting changelog information based on the release version.
- Removed the previous inline changelog generation logic, streamlining the process and improving maintainability.
- Added a new script, `extract_changelog.py`, to handle changelog extraction from the documentation, ensuring accurate release notes for each version.
- Modified the core test execution command in the CI workflow to run tests sequentially with a single job (-j1) for better stability.
- Removed the outdated CMake workflow file, streamlining the CI configuration and eliminating redundancy.
- Added filesystem support to ensure the base directory exists before creating a temporary patch file.
- Improved error reporting by including the path of the failed temporary patch file creation in the error message.
- Added backend source files for ImGui, improving functionality with SDL2.
- Updated CMakeLists.txt to conditionally create the yaze_c library as static or shared based on the YAZE_MINIMAL_BUILD flag.
- Streamlined test linking by ensuring yaze_test links against yaze_core instead of yaze_c, enhancing modularity.
- Updated CMakeLists.txt to create a separate core library (yaze_core) for testing, enhancing modularity.
- Adjusted source file organization for yaze_c and yaze_core, ensuring proper inclusion of essential components.
- Modified test CMakeLists.txt to link against yaze_core instead of yaze_c, streamlining dependencies for test targets.
- Disabled installation of the library in minimal builds while maintaining the ability to build for testing purposes.
- Revised README to enhance feature descriptions and streamline sections for better readability.
- Updated build instructions to clarify platform-specific setup and improve the overall structure.
- Added new documentation files for platform compatibility and build presets, detailing native file dialog support and build configuration options.
- Removed outdated documentation related to overworld expansion to maintain relevance.
- Refactored target_include_directories in app.cmake, emu.cmake, and z3ed.cmake to use absolute paths for better clarity and maintainability.
- Updated test_manager.cc and test_manager.h to simplify ImGui header inclusion.
- Enhanced test CMakeLists.txt to conditionally include directories for the extract_vanilla_values utility, ensuring proper integration with the new structure.
- Removed unnecessary compile flags from .clangd to streamline configuration.
- Added YAZE_BUILD_LIB option in CMakeLists.txt for conditional library building in minimal builds.
- Enhanced SDL2 CMake configuration to set include directories for bundled SDL, ensuring proper integration.
- Updated test CMakeLists.txt to conditionally link yaze_c and ImGuiTestEngine based on build options, improving modularity and flexibility.
- Refactored test_editor.cc and test_editor.h to conditionally include ImGuiTestEngine headers and manage engine initialization based on availability.
- Introduced a new .clangd file to specify compile flags, inlay hints, hover options, and diagnostics settings for improved code analysis and development experience.
- Updated CMakePresets.json to enable export of compile commands, enhancing integration with IDEs and tools that rely on compilation information.
- Simplified platform variable initialization by removing redundant declarations and ensuring a default case for macOS.
- Improved code clarity and maintainability in the GetConfigDirectory function.
- Introduced a .clang-format file to enforce Google C++ style guidelines across the codebase.
- Updated CMakeLists.txt to include custom targets for formatting and format-checking using clang-format.
- Added a quality_check.sh script to automate code quality checks, including formatting and static analysis with cppcheck.
- Enhanced CMakePresets.json with new macOS-specific configurations for ARM64 and universal binaries, improving build flexibility and support.
- Updated the CI workflow to conditionally set up vcpkg only for non-CI Windows builds, improving build efficiency.
- Simplified CMake configuration for Windows by consolidating build type checks and ensuring proper handling of resource files based on the YAZE_MINIMAL_BUILD flag.
- Enhanced modularity in file dialog implementation by introducing wrapper methods for better maintainability and clarity in the codebase.
- Cleaned up formatting in main function for better readability.
- Simplified platform initialization in LoadConfigFile and GetConfigDirectory functions.
- Introduced wrapper methods for file dialog operations to enhance modularity and maintainability.
- Improved code clarity by adjusting line breaks and spacing in various functions.
- Updated the CMake configuration to use target_compile_definitions for ImGuiTestEngine, improving clarity and maintainability.
- Introduced IMGUI_TEST_ENGINE_DEFINITIONS to streamline the definition process for targets linking to ImGuiTestEngine.
- Modified feature flags in features.h to conditionally enable the native file dialog based on the YAZE_ENABLE_NFD flag, enhancing flexibility in feature management.
- Added a fallback CRC32 implementation in bps.cc when zlib is not available, ensuring compatibility across different build environments.
- Wrapped zlib inclusion and CRC32 function definition with preprocessor directives to maintain functionality based on the YAZE_LIB_PNG flag.
- Added support for UI tests in the CMake configuration by introducing the YAZE_ENABLE_UI_TESTS option, ensuring proper linking with the ImGuiTestEngine if available.
- Updated SDL2 linking in test CMakeLists to use variable targets for improved flexibility and compatibility across platforms.
- Modified sprite_position_test to check for ROM file existence using std::ifstream for better error handling.
- Modified the preprocessor directive to include WIN32 in the condition for adding the SDL subdirectory, ensuring compatibility across additional Windows platforms.
- Added new Abseil components: absl::str_format, absl::container_memory, absl::memory, and absl::utility to the CMake configuration for improved functionality.
- Updated SDL2 configuration to use static targets when bundled and adjusted the handling of system SDL to ensure proper target usage across platforms.
- Removed static format strings in HexByte, HexWord, HexLong, and HexLongLong functions.
- Replaced them with direct format specifiers in absl::StrFormat calls to enhance code clarity and reduce redundancy.
- Updated CMakeLists.txt to disable additional optional components (EMU and Z3ED) in minimal builds for better build management.
- Refactored emulation timing calculations in emu.cc to use consistent method naming conventions, enhancing code readability and maintainability.
- Modified the CI workflow to conditionally set up vcpkg and configure CMake based on the build type for Windows, enhancing build flexibility.
- Refactored the handling of staircase objects in the Room class to use initializer lists for improved clarity and consistency in object construction.
- Updated chest data handling to utilize modern C++ syntax for better readability.
- Updated preprocessor directives to ensure NFD functionality is only included when YAZE_ENABLE_NFD is defined and enabled.
- Corrected the usage of NFD functions to improve resource management by replacing deprecated calls with the appropriate alternatives.
- Ensured consistent handling of file and folder dialog operations across platforms, enhancing overall user experience.
- Implemented NFD (Native File Dialog) functionality for opening files and folders when YAZE_ENABLE_NFD is defined.
- Enhanced ShowOpenFileDialogNFD and ShowOpenFolderDialogNFD methods to utilize NFD for improved user experience.
- Added necessary initialization and cleanup for NFD to ensure proper resource management.
- Removed several internal Abseil components from the CMake configuration to simplify dependency management.
- Cleaned up the list of required Abseil libraries, enhancing clarity and maintainability of the build configuration.
- Introduced a new app icon file (yaze.icns) for the macOS bundle.
- Updated CMake configuration to set macOS bundle properties, including icon file, bundle name, executable name, and versioning information.
- Removed outdated macOS bundle settings to streamline the configuration process.
- Modified the CI workflow to enable vcpkg installation and specify the vcpkg directory and JSON glob for better dependency management.
- Added <cstring> header inclusion in bps.cc to support string manipulation functionalities.