Commit Graph

2672 Commits

Author SHA1 Message Date
scawful
920e5002ee Update changelog for version 0.3.1 with minor bug fixes related to color themes, ZSCustomOverworld v3 item loading, and Tile16 selection. 2025-09-27 11:40:12 -04:00
scawful
7e46b2b7be Enhance tile rendering and update logic in OverworldEditor and Canvas
- 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.
2025-09-27 11:36:12 -04:00
scawful
c6490314f3 Enhance overworld editor with music editing features and custom overworld support
- 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.
2025-09-27 11:32:42 -04:00
scawful
8fe90c4c50 Refactor color structure and remove theme management from style files
- 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.
2025-09-27 10:55:57 -04:00
scawful
86067fc066 Refactor welcome screen behavior in EditorManager to improve user control
- 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.
2025-09-27 10:55:47 -04:00
scawful
9fc84c9a0c Remove DrawHomepage method from EditorManager and adjust welcome screen layout for improved UI consistency 2025-09-27 10:24:18 -04:00
scawful
41a3ee6ce2 Enhance editor UI and functionality with improved command palette and display settings
- 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.
2025-09-27 10:12:54 -04:00
scawful
730d01fcff Implement SaveRomAs functionality and enhance session management
- 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.
2025-09-27 09:42:51 -04:00
scawful
fff706b38e Implement save file dialog functionality across platforms
- 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.
2025-09-27 09:31:07 -04:00
scawful
65b17c5f6a Enhance theme management and add table canvas support
- 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.
2025-09-27 09:15:05 -04:00
scawful
326305a337 Enhance macOS app bundle creation in release workflow
- 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.
2025-09-27 00:25:45 -04:00
scawful
042f19464b Update file dialog source selection in z3ed CMake configuration
- 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.
2025-09-27 00:14:23 -04:00
scawful
495886e93d Implement platform-specific file dialog source selection in CMake
- 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.
2025-09-27 00:01:33 -04:00
scawful
128c9f5bb8 Fix error message handling in LoadRomComponent for better string management
- 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.
2025-09-26 23:51:37 -04:00
scawful
01ab9951e9 Add imgui_test_engine include path to CMake configuration
- 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.
2025-09-26 23:41:46 -04:00
scawful
2948ffc746 Refactor build environment setup in release workflow
- 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.
2025-09-26 23:31:19 -04:00
scawful
84b83417e9 Refactor release workflow to improve validation and note handling
- 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.
2025-09-26 22:53:07 -04:00
scawful
9b295d5d75 Refactor message_data for consistency in formatting
- 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.
2025-09-26 22:49:14 -04:00
scawful
575dc55487 Update Windows build configuration in release workflow
- 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.
2025-09-26 22:42:49 -04:00
scawful
a3bcf8de2c Refactor Windows build setup in release workflow
- Simplified the Windows build environment setup by removing vcpkg caching and verification steps.
- Introduced a minimal build approach to avoid vcpkg dependency issues, ensuring more reliable builds.
- Updated CMake configuration to enable minimal build options, enhancing build efficiency.
2025-09-26 22:38:14 -04:00
scawful
cf28aa14da Enhance Windows vcpkg setup in release workflow
- 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.
2025-09-26 22:31:34 -04:00
scawful
69a730983f Update Doxygen workflow to trigger on documentation changes and improve build 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.
2025-09-26 22:27:44 -04:00
scawful
d2470a9ed2 Refactor release workflow to improve tag validation and output
- 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.
2025-09-26 22:24:19 -04:00
scawful
1743859d0a Enhance release workflow and add version validation script
- 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.
2025-09-26 22:21:58 -04:00
scawful
75186d97c6 Update CI workflow for release process and enhance changelog extraction
- 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.
2025-09-26 22:15:13 -04:00
scawful
1057a3f037 Implement welcome screen and enhance session management in EditorManager
- 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.
2025-09-26 20:42:48 -04:00
scawful
d49d87852d Enhance CI workflow with relaxed checks for release and master branches
- 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.
2025-09-26 19:56:37 -04:00
scawful
c5e8e04f65 Enhance theme management with dynamic discovery and macOS bundle support
- 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.
2025-09-26 19:55:40 -04:00
scawful
83d31556bb Add clang-tidy configuration and update project version to 0.3.0
- 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.
2025-09-26 19:42:09 -04:00
scawful
997092390a Add theme management and background rendering features
- 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.
2025-09-26 19:32:19 -04:00
scawful
dedbe078d3 Refactor Windows packaging configuration in CMake
- 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.
2025-09-26 18:04:27 -04:00
scawful
281fc84499 Refactor project structure and enhance project management features
- 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.
2025-09-26 18:02:04 -04:00
scawful
d21df011ae Enhance EditorManager UI with detailed ROM and session information
- 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.
2025-09-26 17:47:51 -04:00
scawful
9e3a5778aa Enhance CMake configuration for macOS and emulator build
- 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.
2025-09-26 17:37:49 -04:00
scawful
a53e759043 Implement multi-session support and welcome screen in EditorManager
- 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.
2025-09-26 17:32:21 -04:00
scawful
0f37061299 Refactor release notes generation in CI workflow
- 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.
2025-09-26 17:01:39 -04:00
scawful
e3eb37395d Update CI workflow to improve test execution and remove obsolete CMake configuration
- 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.
2025-09-26 16:51:47 -04:00
scawful
a7ada79e80 Enhance AsarWrapper patch file handling
- 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.
2025-09-26 16:49:24 -04:00
scawful
a868b32a48 Enhance ImGui library integration and CMake configuration
- 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.
2025-09-26 16:47:47 -04:00
scawful
004c9ce585 Add asar-static library linkage in emu CMake configuration 2025-09-26 15:58:23 -04:00
scawful
0958dffdca imgui test engine build emu 2025-09-26 15:30:46 -04:00
scawful
857e75e7fe Refactor CMake configuration for core library and testing
- 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.
2025-09-26 15:14:52 -04:00
scawful
caffe59800 Update README and build instructions for clarity and organization
- 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.
2025-09-26 15:00:57 -04:00
scawful
78579d2934 Update CMake include directories for improved modularity and organization
- 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.
2025-09-26 14:46:41 -04:00
scawful
cbce2730b6 Update CMake configuration and .clangd settings for improved build management
- 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.
2025-09-26 13:51:02 -04:00
scawful
53787872b2 Add .clangd configuration and update CMakePresets.json for compile commands
- 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.
2025-09-26 13:14:04 -04:00
scawful
ffb88a2902 Refactor platform initialization in GetConfigDirectory function
- Simplified platform variable initialization by removing redundant declarations and ensuring a default case for macOS.
- Improved code clarity and maintainability in the GetConfigDirectory function.
2025-09-26 12:57:44 -04:00
scawful
22c960eaf3 Add code quality checks and formatting configuration
- 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.
2025-09-26 12:57:20 -04:00
scawful
ec207cae06 Refactor CI workflow and CMake configuration for Windows builds
- 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.
2025-09-26 12:47:10 -04:00
scawful
a28ca03cba Refactor main function and improve file dialog implementation
- 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.
2025-09-26 12:43:42 -04:00