Commit Graph

39 Commits

Author SHA1 Message Date
scawful
b3005b8a2b refactor(gui): reorganize background rendering and layout helpers
- Moved background rendering functionality from the editor to a dedicated GUI module, enhancing modularity and separation of concerns.
- Introduced layout helpers for consistent theme-aware sizing across the GUI, improving UI consistency and maintainability.
- Updated CMake configuration to reflect the new structure, ensuring proper linkage of the background renderer and layout helpers.

Benefits:
- Improved organization of GUI components, facilitating easier updates and enhancements.
- Enhanced user interface consistency through theme-aware layout management.
2025-10-12 01:40:46 -04:00
scawful
f54949bdd8 feat(build-system): enhance CMake configuration and introduce new utility files
- Refactored CMakeLists.txt to streamline project configuration and improve readability.
- Introduced new utility functions in `utils.cmake` for setting compiler flags and managing dependencies.
- Added `dependencies.cmake` to centralize third-party dependency management, enhancing modularity.
- Updated CI workflows to include new build options and improved logging for better feedback during configuration.
- Implemented precompiled headers in various libraries to speed up compilation times.

Benefits:
- Improved maintainability and clarity of the build system.
- Enhanced build performance through precompiled headers.
- Streamlined dependency management for easier integration of third-party libraries.
2025-10-11 02:44:17 -04:00
scawful
f91aff0b00 feat(asset): implement asset path resolution and streamline file loading
- Introduced a new utility function `FindAsset` in `PlatformPaths` to locate asset files across multiple standard directories, enhancing flexibility in asset management.
- Updated various components to utilize `FindAsset` for loading configuration and prompt files, replacing hardcoded search paths with a more robust solution.
- Improved error handling and logging for asset loading failures, ensuring clearer feedback during runtime.
- Refactored existing code in `gemini_ai_service`, `prompt_builder`, and `platform_paths` to leverage the new asset resolution mechanism, promoting code consistency and maintainability.
2025-10-10 19:12:16 -04:00
scawful
d371dbc2d7 feat: Add log category filtering for enhanced logging control
- Introduced a new command-line flag for specifying log categories, allowing users to filter logs based on selected categories.
- Implemented parsing of the comma-separated log categories string in the main application.
- Enhanced the LogManager to support category-specific logging and added console output to indicate which categories are enabled for debugging.
2025-10-09 22:50:45 -04:00
scawful
c1e69ce03e feat: Add Debug Controls Card to Dungeon Editor V2
- Introduced a new Debug Controls card in the Dungeon Editor V2, allowing runtime control over debug logging and log levels.
- Implemented UI elements for enabling/disabling debug logs, selecting log levels, and managing room rendering and texture processing.
- Updated the DungeonEditorV2 class to include visibility management for the Debug Controls card and integrated it into the control panel.
- Enhanced logging functionality in the LogManager to support runtime adjustments for debug logging.
2025-10-09 21:43:27 -04:00
scawful
7f4a0f546c refactor: Integrate PlatformPaths for configuration directory management
- Replaced direct calls to GetConfigDirectory with PlatformPaths::GetConfigDirectory across multiple files to standardize configuration directory access.
- Updated RecentFilesManager, EditorManager, and various agent components to handle potential errors when retrieving the configuration directory.
- Enhanced file loading functions to utilize the new LoadFileFromConfigDir method for improved clarity and error handling.
- Introduced new methods in file_util.h for better file management practices, leveraging std::filesystem for cross-platform consistency.
2025-10-08 20:50:49 -04:00
scawful
f6ad6e971f refactor: Update CMake Configuration and Implement Canvas Automation Tests
- Updated CMakeLists.txt to include additional proto files for canvas automation, enhancing the build process for gRPC services.
- Refactored file_util.cc to use the core namespace for feature flags, improving code clarity and consistency.
- Added new unit tests for CanvasAutomationAPI, covering various functionalities such as coordinate conversion, tile operations, and selection management, ensuring robust testing for canvas automation features.
2025-10-05 23:44:38 -04:00
scawful
bcc8f8e8f9 refactor: Restructure file dialog handling and introduce utility classes
- Updated file dialog references across the application to utilize a new `util::FileDialogWrapper` for consistent file handling.
- Refactored existing code to replace direct calls to `core::FileDialogWrapper` with the new utility class, enhancing modularity and maintainability.
- Introduced `util::PlatformPaths` for cross-platform directory management, ensuring consistent access to user directories and application data paths.
- Added new utility functions for file operations, improving the overall file handling capabilities within the application.
- Updated CMake configurations to include new utility source files, streamlining the build process.
2025-10-04 23:26:42 -04:00
scawful
0176a66b7e feat: Enable Unity builds for faster compilation
- 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.
2025-10-04 16:23:57 -04:00
scawful
1c4a82ab7e Refactor logging system to use LOG_* macros
- Updated logging calls in main.cc, rom.cc, and test_manager.cc to utilize the new LOG_* macros for consistency and improved readability.
- Removed deprecated util::logf function and replaced its usage with appropriate logging macros.
- Enhanced logging in TestManager to provide more detailed information about ROM state and testing processes.
- Cleaned up commented-out logf calls in room.cc to streamline the code.
- Adjusted LogManager to support general logging through a new logf function for non-category specific messages.
2025-10-04 15:47:52 -04:00
scawful
28dc394a7c feat: Implement lazy loading for dungeon rooms and refactor room graphics handling
- 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.
2025-10-04 15:14:17 -04:00
scawful
c3eaace72c feat: Implement modular build system for Yaze
- 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.
2025-10-03 18:32:51 -04:00
scawful
ead85c87b5 feat: Enhance ImGuiTestHarnessServer with proper shutdown handling and update gRPC service initialization 2025-10-01 23:32:41 -04:00
scawful
5cc5c08122 Add Overworld accessors and enhance testing framework
- Introduced new methods in `Controller`, `EditorManager`, and `OverworldEditor` to access the `Overworld` instance, improving modularity and interaction with the overworld data.
- Added `GetTile` method in `Overworld` to retrieve tile data based on coordinates, enhancing functionality for tile manipulation.
- Implemented a new testing framework with automated GUI tests, including `CanvasSelectionTest` and `FrameworkSmokeTest`, to validate user interactions and ensure robustness.
- Updated `CMakeLists.txt` to include new test files and dependencies, streamlining the build process for testing.
- Refactored logging behavior to ensure proper file handling during logging operations, improving reliability in logging outputs.
2025-09-30 19:32:34 -04:00
scawful
bd049a14fd Update release workflow to standardize naming and improve patch function signatures
- Changed the release notes header from "Yaze" to "yaze" for consistency in the release workflow.
- Updated the CreateBpsPatch and ApplyBpsPatch functions in bps.h to return absl::Status for better error handling and clarity.
2025-09-28 12:28:13 -04:00
scawful
cb107ae69c Remove PNG and ZLIB support from the project
- Eliminated all references to PNG and ZLIB dependencies in CMake configuration and project files.
- Updated documentation to reflect the removal of PNG support and related functionalities.
- Adjusted build scripts and source files to remove unused code related to PNG handling, ensuring a cleaner codebase.
2025-09-28 12:03:29 -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
41a5b952e4 Refactor CMake configuration for ImGuiTestEngine and feature flags
- 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.
2025-09-26 12:26:01 -04:00
scawful
d728ed37aa Implement conditional CRC32 calculation based on zlib availability
- 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.
2025-09-26 12:08:09 -04:00
scawful
832d0b0cb7 Refactor hex formatting in utility functions for consistency
- 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.
2025-09-26 11:47:12 -04:00
scawful
8d66dbc0e4 Update CI workflow and add header inclusion in bps.cc
- 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.
2025-09-26 09:32:42 -04:00
scawful
907e29a495 Update CMake configuration and CI workflows for improved compatibility and testing
- 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.
2025-09-26 09:23:53 -04:00
scawful
a04f8ecdb4 windows housekeeping 2025-08-21 19:18:50 -04:00
scawful
9cbae49cb0 housekeeping 2025-08-21 19:00:12 -04:00
scawful
095b3df27e Refactor graphics loading and decompression for consistency
- Updated various graphics loading functions to ensure consistent use of semicolons in ASSIGN_OR_RETURN statements.
- Changed set_filename method in Rom class to accept std::string_view for improved efficiency.
- Enhanced code readability and maintainability across multiple files by standardizing syntax.
2025-05-19 17:15:15 -04:00
scawful
6e09630733 Refactor HandleHexStringParams to modify hex string directly and add hex_test for comprehensive testing of hex conversion functions with various prefixes. 2025-05-03 14:09:35 -04:00
scawful
999c142a31 remove DECLARE_FLAG macro and add mode parsing 2025-03-31 09:42:10 -04:00
scawful
9919677e43 Refactor editor UI components: streamline button handling in graphics and music editors, remove unused macros, and improve table setup in assembly editor. 2025-03-08 00:58:47 -05:00
scawful
7d77c51a27 Refactor NotifyValue: optimize value setting and modification tracking with move semantics and improved method names 2025-02-28 01:13:16 -05:00
scawful
c8d4efda2e Refactor flag handling: move FlagParser implementation to flag.cc, remove ResourceManager, and update includes 2025-01-26 13:36:27 -05:00
scawful
de53ccae21 Refactor ExperimentFlags to FeatureFlags for consistency across the codebase 2025-01-22 13:41:28 -05:00
scawful
b245b10963 Refactor logging to use util::logf and add log utility header 2025-01-22 13:36:37 -05:00
scawful
a5b94ab173 Refactor folder item management and move NotifyValue to a new utility header 2025-01-22 13:32:45 -05:00
scawful
50c9223a53 Add hex utility functions and refactor usage in editors 2025-01-22 13:28:21 -05:00
scawful
01db131adb Add flag handling for ROM file in main application 2025-01-21 22:13:00 -05:00
scawful
1764ca0dde Add RETURN_IF_EXCEPTION macro for improved error handling 2025-01-21 21:54:10 -05:00
scawful
31fc641dc4 Add flag parsing functionality and implement global flag registry 2025-01-19 22:53:35 -05:00
scawful
809282edad remove nonstandard type aliases 2025-01-19 20:16:40 -05:00
scawful
38d34fd40c Add BPS patch utility functions and integrate into CLI handlers 2025-01-19 18:46:56 -05:00