- Changed the paths for project logo and icon in Doxyfile to point to the new assets directory.
- Updated CMake configurations to reflect the new locations of resource files, enhancing clarity and maintainability.
- Replaced instances of core utility functions with util functions across various files for consistency in file handling.
- Added new resource files for Windows platform support and removed obsolete resource files, streamlining the build process.
- Removed references to the old `EnhancedPaletteEditor` and replaced it with the new `PaletteWidget` across various files, including canvas and context menu implementations.
- Updated CMake configurations to include the new `palette_widget` source files, ensuring proper integration into the build system.
- Refactored GUI code to enhance modularity and maintainability, improving the overall user experience in palette management and editing functionalities.
- Introduced new UI components for background rendering and editor selection dialogs, enhancing the application's graphical interface.
- Introduced `RomVersionManager` for managing ROM snapshots, including automatic backups, manual checkpoints, and corruption detection.
- Added `ProposalApprovalManager` to facilitate collaborative proposal submissions and voting, enhancing team workflows.
- Updated `CollaborationPanel` to integrate version management features, allowing users to track changes and manage proposals effectively.
- Enhanced documentation to reflect new functionalities and usage instructions for version management and collaboration features.
- Introduced NetworkCollaborationCoordinator class to manage WebSocket connections for collaborative sessions.
- Implemented session management functions: HostSession, JoinSession, and LeaveSession.
- Added message handling for chat messages and participant updates.
- Updated CMake configuration to include the new network collaboration source files.
- Integrated a stub WebSocket client for initial functionality, with plans for future enhancements.
- Added an option to enable Unity (Jumbo) builds in CMake.
- Updated CMakeLists.txt to conditionally set CMAKE_UNITY_BUILD and batch size.
- Removed outdated analysis documentation for overworld implementation.
- Deleted z3ed resources YAML file as it is no longer needed.
- Refactored CMake files to modularize the build system, separating core, editor, gfx, gui, and zelda3 components into library files.
- Added precompiled headers for various libraries to improve compilation times.
- Updated yaze_config.h.in to define IMGUI_DEFINE_MATH_OPERATORS for C++ compatibility.
- Enhanced editor integration tests with necessary includes for ImGui.
- Introduced lazy loading for room data to optimize performance and reduce initial load times.
- Updated DungeonEditor and DungeonRoomLoader to handle room graphics rendering directly from room objects.
- Refactored methods to accept room references instead of IDs for better clarity and type safety.
- Enhanced tab management in the DungeonEditor UI for improved user experience.
- Added option to enable modular build with `YAZE_USE_MODULAR_BUILD`.
- Updated CMake configuration to support modular libraries for core, editor, graphics, GUI, and emulator functionalities.
- Refactored existing libraries to separate concerns and improve build times.
- Introduced new utility library `yaze_util` for low-level utilities.
- Adjusted CI and release workflows to accommodate the new build system.
- Updated various source files to reflect new include paths and modular structure.
- Enhanced YAML configuration handling in the agent component.
- Added support for JSON in CMake configuration for AI integrations.
- Implemented new tool commands: resource-list and dungeon-list-sprites.
- Created ToolDispatcher for managing tool command execution.
- Refactored CMake structure to include agent sources and improve build configuration.
- Updated agent roadmap and README documentation to reflect current status and next steps.
- Restructured CLI service source files to improve organization, moving files into dedicated directories for better maintainability.
- Introduced new AI service components, including `AIService`, `MockAIService`, and `GeminiAIService`, to facilitate natural language command generation.
- Implemented `PolicyEvaluator` and `ProposalRegistry` for enhanced proposal management and policy enforcement in AI workflows.
- Updated CMake configurations to reflect new file paths and ensure proper linking of the restructured components.
- Enhanced test suite with new test workflow generation capabilities, improving the robustness of automated testing.
This commit significantly advances the architecture of the z3ed system, laying the groundwork for more sophisticated AI-driven features and streamlined development processes.
- Removed blocking wait logic in Click, Type, Wait, and Assert RPC methods to allow asynchronous execution.
- Introduced a generic RPCState template structure for managing shared state across different RPCs.
- Updated Click and Type methods to utilize the new RPCState for result handling and messaging.
- Simplified Wait method to queue tests without blocking, returning immediate success messages.
- Enhanced Assert method to use the new RPCState structure for result management and messaging.
- Adjusted CMakeLists.txt to conditionally include GUI automation client based on gRPC configuration.
- Implemented GuiAutomationClient for gRPC communication with the test harness.
- Added methods for various GUI actions: Click, Type, Wait, Assert, and Screenshot.
- Created TestWorkflowGenerator to convert natural language prompts into structured test workflows.
- Enhanced HandleTestCommand to support new command-line arguments for GUI automation.
- Updated CMakeLists.txt to include new source files for GUI automation and workflow generation.
- Introduced a new PerformanceProfiler class for detailed timing and performance measurement across graphics operations.
- Implemented a smart tile cache with LRU eviction in the TileCache structure to optimize memory usage and improve tile rendering efficiency.
- Updated various graphics components to utilize the new caching system, reducing redundant texture updates and enhancing overall performance.
- Added dirty region tracking in Bitmap for efficient texture updates, minimizing the area that needs to be refreshed during rendering.
- Enhanced existing methods to leverage performance monitoring, providing insights into operation durations and potential bottlenecks.
- Updated `CMakeLists.txt` to configure asset deployment for macOS, Windows, and Linux, ensuring proper handling of resource files based on the target platform.
- Added custom build steps in `app.cmake` to copy asset files (fonts, themes, layouts, libraries) to the output directory for Windows and Linux builds, improving the build process and asset accessibility.
- Organized asset files into source groups for better project structure and clarity.
- Deleted `YAZE.sln`, `YAZE.vcxproj`, and `YAZE.vcxproj.filters` to streamline the project structure and transition to a CMake-based build system.
- This change enhances maintainability and simplifies the build process by relying solely on CMake for project configuration and management.
- Updated `CMakeLists.txt` to improve the generation and inclusion of `yaze_config.h` by specifying source and binary directories.
- Added include directories in various CMake files to ensure proper access to generated headers, enhancing build reliability and maintainability.
- Set properties for the generated header to improve IDE integration and organization within the project structure.
- Added a custom command to generate the Windows resource file `yaze.res` from `yaze.rc` and `yaze.ico`, ensuring proper resource management for x64 builds.
- Introduced a custom target to ensure the resource file is built before linking, improving the build process for Windows targets.
- Added conditional linking of the Windows resource file for x64 architecture in `CMakeLists.txt`, improving build specificity for Windows targets.
- This change ensures that the resource file is only linked when building for 64-bit Windows, enhancing the project's compatibility and build 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 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.
- 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.
- 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.
- 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.
- 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.
- Updated minimum CMake version requirement from 3.5 to 3.16 to leverage new features and policies.
- Enhanced CI workflows to include additional build configurations for Ubuntu and macOS, improving cross-platform support.
- Added conditional linking for ImGui Test Engine in the CMakeLists, allowing for UI testing when enabled.
- Refactored CMake commands in CI to ensure consistent policy version handling and streamlined build processes.
- Introduced new constructors for MenuItem in the GUI to enhance menu item management and flexibility.
- Updated CI workflow in ci.yml to include the -Wno-dev flag for improved CMake output during configuration.
- Modified CMakeLists.txt to conditionally add native file dialog support based on platform checks and GTK3 availability, enhancing compatibility and providing clearer status messages for NFD support.
- Updated CMakeLists.txt to conditionally enable PNG support based on the presence of the PNG library, improving compatibility for minimal builds.
- Added vcpkg.json to manage project dependencies, including zlib, libpng, sdl2, and abseil, streamlining package management.
- Modified CI workflow in ci.yml to simplify CMake configuration commands for better readability.
- Enhanced CMake scripts to ensure proper handling of dependencies in both minimal and regular builds, improving build reliability.
- Updated CMakeLists.txt to introduce options for enabling experimental tests and minimal CI builds.
- Modified CMakePresets.json to refine test presets, including stable and experimental test configurations.
- Enhanced CI workflows in ci.yml to streamline testing processes, ensuring stable tests are prioritized and experimental tests are run separately.
- Added new documentation files outlining the CI/CD testing strategy and testing categories for better clarity on testing practices.
- Improved test discovery in CMakeLists.txt to simplify labeling and enhance CI efficiency.
- Upgraded CMake minimum version requirement to 3.16 and updated project version to 0.3.0.
- Introduced new CMake presets for build configurations, including default, debug, and release options.
- Added CI/CD workflows for continuous integration and release management, enhancing automated testing and deployment processes.
- Integrated Asar assembler support with new wrapper classes and CLI commands for patching ROMs.
- Implemented comprehensive tests for Asar integration, ensuring robust functionality and error handling.
- Enhanced packaging configuration for cross-platform support, including Windows, macOS, and Linux.
- Updated documentation and added test assets for improved clarity and usability.