Commit Graph

2466 Commits

Author SHA1 Message Date
scawful
188084b59e Add CMake availability checks and installation in project generation scripts
- Implemented checks for CMake in both batch and PowerShell scripts to ensure it is available before proceeding.
- Added logic to attempt installation of CMake via Chocolatey if not found, with appropriate user feedback.
- Enhanced user experience by providing instructions for manual installation if Chocolatey is not present.
- Included verification steps to confirm successful installation of CMake after the installation attempt.
- Introduced a new setup script for Windows development environment, automating the installation of essential tools like Git, Ninja, and Python 3, along with checks for Visual Studio.
2025-09-27 23:33:13 -04:00
scawful
385500120a Refactor Visual Studio solution and project files for improved organization and support
- Restructured the solution file to better categorize projects, including new entries for Documentation, Scripts, and CMake.
- Updated project configurations to support multiple architectures (x86, x64, ARM64) and added new build types (RelWithDebInfo, MinSizeRel).
- Introduced new scripts for generating Visual Studio project files, enhancing the build process for Windows users.
- Removed obsolete project entries and streamlined the solution structure for clarity and maintainability.
2025-09-27 23:29:16 -04:00
scawful
1d28872499 Enhance GitHub Actions workflow for Windows builds
- Added cleanup step for vcpkg state to prevent potential issues during builds.
- Implemented debugging step to provide detailed information if vcpkg setup fails.
- Introduced fallback mechanism to manually install dependencies if vcpkg fails.
- Updated CMake configuration to check vcpkg availability and adjust build settings accordingly.
- Added verification step for CMake configuration to ensure successful setup.
2025-09-27 23:20:02 -04:00
scawful
f82bfbab5d Update abseil version in vcpkg.json from 20240116.2 to 20220623.1 for compatibility 2025-09-27 23:10:08 -04:00
scawful
2374c5e524 Refactor GitHub Actions release workflow for improved artifact handling and error reporting
- Updated tag validation step to correctly output the validated tag name.
- Enhanced packaging commands to use Unix-style commands for better compatibility and error handling.
- Added verification step for build artifacts to ensure successful creation before packaging.
- Improved output messages for clarity during the build and packaging processes.
2025-09-27 23:02:18 -04:00
scawful
dbcfdab19f Enhance Visual Studio solution structure and configuration
- Added multiple project entries for source, application, API, CLI, library, utilities, and testing components in the solution file.
- Included documentation and asset directories with relevant files for better organization and accessibility.
- Updated solution configurations to support ARM64 architecture alongside existing x64 and x86 configurations, ensuring comprehensive build support.
2025-09-27 22:54:06 -04:00
scawful
bca75ac660 Standardize shell usage in GitHub Actions release workflow to always use bash for packaging step, ensuring consistency across environments. 2025-09-27 22:51:48 -04:00
scawful
1515c452ea Enhance GitHub Actions workflow for cross-platform executable testing
- Added separate steps for testing executable functionality on Windows, macOS, and Linux, improving clarity and organization.
- Streamlined the executable path determination for Windows and implemented similar logic for macOS and Linux.
- Enhanced error handling and output messages for better debugging during the testing process.
2025-09-27 22:51:22 -04:00
scawful
f76fe312fb Refactor font loading logic in LoadSystemFonts function
- Improved buffer size calculations for font name and data to enhance safety and prevent overflow.
- Streamlined the maximum font loading limit to ensure efficient font management while maintaining clarity in the code.
2025-09-27 22:35:27 -04:00
scawful
3040302247 Enhance Windows build configuration and architecture detection
- Added architecture detection in CMakeLists.txt for Windows, defining appropriate compile flags for ARM64, x64, and x86 platforms.
- Updated yaze.vcxproj to include Debug and Release configurations for ARM64, ensuring proper setup for ARM64 builds.
- Modified GitHub Actions workflow to support packaging for Windows ARM64, creating artifacts for both x64 and ARM64 builds.
2025-09-27 22:22:51 -04:00
scawful
77b9f79755 Update GitHub Actions workflow to standardize shell usage for packaging
- Changed the shell used in the packaging step of the release workflow to always use bash, ensuring consistency across different environments.
2025-09-27 22:12:25 -04:00
scawful
7d87c6bed8 Enhance CMake configuration and library management
- Added `_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS` definition to suppress all C++23 deprecation warnings in CMakeLists.txt for both MSVC and GCC/Clang.
- Updated `yaze.vcxproj` to remove unnecessary `absl::numeric` from AdditionalLibraryDirectories, streamlining library paths.
- Modified `absl.cmake` to conditionally include `absl::int128` only on non-Windows platforms, avoiding C++23 deprecation issues and improving cross-platform compatibility.
2025-09-27 22:09:45 -04:00
scawful
505c91a97d Refactor GitHub Actions workflow for packaging and improve error handling
- Updated packaging commands in the release workflow to use Windows-compatible commands for copying files.
- Enhanced error handling for missing files and directories during the packaging process.
- Improved formatting of the Info.plist generation for better readability.
- Adjusted the shell used in the packaging step to be platform-specific, ensuring compatibility across different operating systems.
2025-09-27 22:09:06 -04:00
scawful
6dfc446e23 Refactor font initialization in LoadPackageFonts function
- Updated font configuration to include proper ImFontConfig initialization for each font entry in the font registry.
- Enhanced code clarity by adding comments to describe the initialization process.
2025-09-27 22:04:59 -04:00
scawful
660c3fd46f Enhance CMake configuration and improve string safety in source files
- Updated CMakeLists.txt to silence C++23 deprecation warnings and added definitions for intrinsic int128 support.
- Modified GitHub Actions workflow to handle missing asset directories gracefully and ensure correct versioning in Info.plist.
- Refactored string handling in multiple source files to use std::memcpy for safer string copying, preventing potential buffer overflows.
- Improved font loading logic and ensured consistent handling of theme properties in the editor.
2025-09-27 22:03:03 -04:00
scawful
332f050cf6 Update library directories and improve string handling in source files
- Added 'absl::numeric' to the AdditionalLibraryDirectories in yaze.vcxproj for enhanced functionality.
- Refactored string handling in multiple source files to use std::strncpy for safer string copying and prevent buffer overflows.
- Cleaned up unnecessary whitespace and improved code readability across various files.
2025-09-27 21:55:01 -04:00
scawful
a9f1a1637d Refactor font loading and enhance Windows font management
- Removed unused includes and improved code readability by renaming variables for clarity.
- Updated font size constants to use uppercase 'F' for consistency.
- Implemented helper functions for better handling of font paths and normalization.
- Enhanced the LoadSystemFonts function to load essential Windows fonts and added error handling for font loading failures.
- Streamlined the registry font loading process to ensure safer and more efficient font management.
2025-09-27 21:50:49 -04:00
scawful
faca7cfafe Enhance CMake and file dialog functionality
- Updated CMakeLists.txt to include additional MSVC compiler options for better compatibility and performance, such as support for large object files and UTF-8 encoding.
- Modified absl.cmake to add support for absl::int128.
- Refactored file dialog implementation in file_dialog.cc to utilize a feature flag for native file dialog support, improving cross-platform compatibility and maintainability. Added placeholder implementations for CI/CD environments.
2025-09-27 21:47:01 -04:00
scawful
d244fc37c0 Add vcpkg triplet setup documentation for Windows
- Created a new document detailing the installation and configuration of the `x64-windows` triplet for building YAZE on Windows.
- Included multiple methods for triplet installation, common issues and solutions, and alternative triplet options.
- Provided verification steps and instructions for building YAZE using the configured triplet, enhancing clarity for developers.
2025-09-27 21:36:20 -04:00
scawful
d848a8d7d1 Add pre-build event to generate yaze_config.h from template
- Introduced a pre-build event in yaze.vcxproj to automate the generation of yaze_config.h from yaze_config.h.in, replacing version placeholders with actual values.
- Updated the CI/CD workflow to include a step for generating yaze_config.h during Windows builds, ensuring consistency across environments.
2025-09-27 21:33:59 -04:00
scawful
842878eeb3 Remove vcpkg.json.backup and streamline CI/CD workflow
- Deleted the vcpkg.json.backup file to eliminate redundancy in project configuration.
- Updated the CI/CD workflow to simplify the fallback mechanism for dependency installation on Windows, ensuring a more efficient build process.
2025-09-27 21:29:05 -04:00
scawful
0fbb711177 Add vcpkg.json.backup for Yaze project configuration
- 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.
2025-09-27 21:28:43 -04:00
scawful
51081c1bd0 Organize project structure in yaze.vcxproj by adding filters for various components and assets, improving clarity and maintainability. Updated asset inclusion to reflect new filter organization. 2025-09-27 21:28:29 -04:00
scawful
22cf394e72 Update yaze.vcxproj to include additional library directories and organize source files into filters for improved project structure and clarity 2025-09-27 21:27:02 -04:00
scawful
6639d5b078 Add Windows Build Fallback Workflow for Enhanced CI/CD 2025-09-27 21:21:04 -04:00
scawful
b5d908d39d Add abseil dependency and enhance vcpkg configuration
- 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.
2025-09-27 21:20:55 -04:00
scawful
8f8d2b7768 Enhance CI/CD integration for Visual Studio builds and update documentation
- 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.
2025-09-27 21:10:51 -04:00
scawful
4eaf1ffe00 Remove outdated B2 CI/CD fixes documentation to streamline project resources and focus on current build processes. 2025-09-27 21:07:03 -04:00
scawful
ab2198cde7 Add Visual Studio project files and enhance setup documentation
- 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.
2025-09-27 21:03:00 -04:00
scawful
bd875c3c5f Refactor vcpkg integration and enhance Windows build documentation
- 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.
2025-09-27 21:00:28 -04:00
scawful
4b898d7b00 Update Windows build instructions in documentation
- 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.
2025-09-27 20:17:13 -04:00
scawful
d2f724f57d Add Windows Development preset to CMake configuration
- 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.
2025-09-27 20:17:07 -04:00
scawful
a578d48278 Enhance testing system integration in EditorManager and app configuration
- 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.
2025-09-27 20:14:20 -04:00
scawful
e958fd139e Refactor palette group display in Tile16Editor for improved clarity
- 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.
2025-09-27 20:05:10 -04:00
scawful
5e45c94e59 Integrate vcpkg support for Windows builds and enhance documentation
- 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.
2025-09-27 20:05:00 -04:00
scawful
7815f8cc85 Refactor map properties handling in Overworld Editor for improved clarity and performance
- 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.
2025-09-27 19:42:32 -04:00
scawful
0460a6f638 Refactor tile selection logic in Tile16Editor for improved accuracy
- 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.
2025-09-27 18:40:03 -04:00
scawful
3f37045b4d Refactor Tile16Editor drawing logic and enhance tile handling
- 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.
2025-09-27 18:33:20 -04:00
scawful
dabfbfa5a2 Implement Tile16 changes commit callback and enhance editor functionality
- 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.
2025-09-27 18:14:16 -04:00
scawful
89396b1b57 Enhance Overworld Editor with v3 features and unified settings management
- 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.
2025-09-27 17:33:18 -04:00
scawful
089a31ff92 Refactor overworld map handling to improve custom ASM logic
- 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.
2025-09-27 17:29:56 -04:00
scawful
7355294f49 Refactor Overworld Editor and enhance settings management for v3 features
- 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.
2025-09-27 15:47:22 -04:00
scawful
a9ead0a45c Refactor EditorManager and OverworldEditor for enhanced functionality and error handling
- 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.
2025-09-27 15:24:58 -04:00
scawful
261032b1bd Implement basic Linux file dialog functionality and enhance dialog selection logic
- 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.
2025-09-27 12:53:03 -04:00
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