Commit Graph

361 Commits

Author SHA1 Message Date
scawful
3210cc0ab6 Refactor Tracker::SaveSongs function by commenting out unused variables and code
- Commented out a large number of unused variable declarations and code segments in the `SaveSongs` function to improve readability and maintainability.
- This change does not affect the functionality but prepares the code for future enhancements by reducing clutter.
2025-09-28 15:22:55 -04:00
scawful
90f8d8b915 Remove unused system editor files from YAZE project configuration
- Deleted references to `system_editor.cc` and `system_editor.h` from YAZE.vcxproj and YAZE.vcxproj.filters to clean up the project structure.
- Updated `room_object.cc` to use a direct assignment for `gfx::TileInfo` and commented out unused code in `room.cc` and `tracker.cc` for clarity and future reference.
2025-09-28 15:12:15 -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
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
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
7c90b2b6ba Update CI workflow for Windows builds and refactor room object handling
- 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.
2025-09-26 11:19:24 -04:00
scawful
1964d31930 Refactor DungeonEditor and related components for improved object management and UI enhancements
- Replaced vertical separators with standard separators in the EditorManager's menu bar for consistency.
- Introduced a new room selection callback mechanism in DungeonRoomSelector to facilitate room selection events.
- Enhanced DungeonEditor with drag-and-select functionality for object placement, improving user interaction.
- Added an object browser in DungeonObjectSelector for better object management and preview capabilities.
- Streamlined object rendering and selection processes, ensuring a more intuitive editing experience.
2025-09-25 18:56:30 -04:00
scawful
a71f1e02c9 Add Dungeon Room and Object Selection Features
- Introduced new classes for DungeonRoomSelector and DungeonObjectSelector to enhance room and object management within the dungeon editor.
- Implemented UI components for selecting rooms and entrances, allowing users to easily navigate and manage dungeon layouts.
- Added functionality for rendering room graphics and object previews, improving the visual editing experience.
- Updated the DungeonEditor class to integrate the new selectors, streamlining the overall editing workflow.
- Enhanced error handling and validation in room and object management processes to ensure robust functionality.
2025-09-24 23:39:50 -04:00
scawful
ccd4e8cf4b Integrate Dungeon Editor System and Object Editor for Enhanced Dungeon Management
- Introduced a new DungeonEditorSystem to streamline dungeon editing functionalities, including room properties management and object editing.
- Enhanced the DungeonEditor class to initialize the new editor system and manage room properties effectively.
- Added comprehensive object editing capabilities with a dedicated DungeonObjectEditor, supporting object insertion, deletion, and real-time preview.
- Implemented improved UI components for editing dungeon settings, including integrated editing panels for various object types.
- Enhanced error handling and validation throughout the dungeon editing process to ensure robust functionality.
- Updated integration tests to cover new features and validate the overall performance of the dungeon editing system.
2025-09-24 22:48:47 -04:00
scawful
b9a4d07745 Refactor MapPropertiesSystem for Improved UI and Functionality
- Updated the DrawSimplifiedMapSettings method to streamline the layout and enhance usability with new UI constants for table and button dimensions.
- Removed the Tools popup from the MapPropertiesSystem, consolidating editing functionalities for a cleaner interface.
- Enhanced the DrawGraphicsPopup and DrawPalettesPopup methods with custom input widths for better alignment and user experience.
- Improved the organization of map properties sections, adding clear headers for Basic Properties, Area Configuration, and Visual Effects.
- Adjusted button functionalities and hover hints for better user guidance and interaction.
2025-09-24 21:28:10 -04:00
scawful
e8afc764a0 Enhance Overworld Editor and Map Properties System
- Updated the DrawOverworldEntrancePopup to include new options for deleting entrances and improved UI labels for better clarity.
- Integrated new UI constants for consistent styling across the editor.
- Refactored MapPropertiesSystem to support additional toolset functionalities, including editing tools and view controls.
- Improved overlay handling in OverworldMap, consolidating vanilla and custom overlay loading logic.
- Enhanced user interaction with new buttons and streamlined layout for better usability in the editor.
2025-09-24 21:10:37 -04:00
scawful
912cc3fb56 Update overworld map properties and overlay functionality
- Changed the included assembly file for custom overworld to version 3 for improved features.
- Enhanced documentation in the overworld loading guide to clarify overlay effects and configurations.
- Refactored MapPropertiesSystem to support overlay previews and improved mosaic controls.
- Added functionality for loading vanilla overlays and displaying overlay descriptions in the editor.
- Updated UI components in OverworldEditor to integrate new overlay settings and preview options.
2025-09-24 20:16:53 -04:00
scawful
25f8a550b6 Fix Overworld sprite drawing system
- Updated the MapPropertiesSystem to improve the layout of the simplified map settings table, increasing column widths for better visibility and usability.
- Adjusted button sizes in the OverworldEditor for Graphics, Palettes, Overlays, and Properties to enhance user interaction.
- Implemented filtering of sprites in the OverworldEditor based on the current world, ensuring only relevant sprites are displayed.
- Refactored sprite drawing logic to utilize global coordinates directly, improving accuracy in sprite rendering.
2025-09-24 18:37:39 -04:00
scawful
12bb5dc3d5 Enhance OverworldEditor with new customization features
- Updated OverworldEditor to include new table columns for CopyMap, MapLock, CustomBG, and Overlay, improving user interaction and customization options.
- Implemented DrawCustomBackgroundColorEditor and DrawOverlayEditor methods for managing custom background colors and overlay settings, respectively.
- Added context menu functionality for map locking and quick access to map properties, enhancing usability.
- Refactored OverworldMap to support new features related to animated graphics and subscreen overlays, ensuring compatibility with ZScreamCustomOverworld v3.
2025-09-24 15:58:46 -04:00
scawful
49b4f6d677 Add ZScreamCustomOverworld ASM v3 and integrate area size support
- Introduced ZScream Custom Overworld ASM to enhance customization of the ALTTP overworld, allowing users to modify various aspects such as palettes, backgrounds, and transitions.
- Updated OverworldEditor to include area size selection for v3 support, enabling users to choose between different area sizes (Small, Large, Wide, Tall).
- Enhanced OverworldMap to load area size information based on the applied ASM version, ensuring compatibility with expanded features.
- Implemented SaveAreaSizes method in Overworld to persist area size settings in the ROM, supporting the new customization capabilities.
- Refactored related classes and methods to accommodate the new area size logic and ensure seamless integration with existing functionalities.
2025-09-24 15:36:29 -04:00
scawful
3ab82a9567 Add dungeon object parser and room layout files to CMake configuration
- Included object_parser.cc and room_layout.cc in the CMakeLists.txt for the Zelda 3 project, enhancing the build configuration to support new dungeon functionalities.
- Ensured proper inclusion of necessary source files for improved object handling and room layout management in the dungeon editor.
2025-09-24 13:00:52 -04:00
scawful
edaf6427c8 Enhance Dungeon Editor with Object Rendering and Layout Management
- Introduced new object rendering features in DungeonEditor, allowing for improved visualization of dungeon objects with options to show outlines, render objects, and display object information.
- Implemented a caching mechanism for rendered objects to optimize performance.
- Added functionality to load and manage room layouts, including walls, floors, and other structural elements, enhancing the overall editing experience.
- Refactored object handling in Room and RoomObject classes to support new rendering logic and ensure compatibility with the updated layout system.
- Introduced ObjectParser for efficient parsing of object data directly from ROM, improving reliability and performance in object rendering.
2025-09-23 22:00:54 -04:00
scawful
0920fcc1fb Add comparison function for OverworldItem class
- Introduced CompareOverworldItems function to compare two vectors of OverworldItem objects for equality based on their properties (x, y, id).
- Included necessary header for algorithm functions to support the new comparison logic.
2025-09-21 12:41:10 -04:00
scawful
c567cef978 Refactor header files to remove unused includes and improve code clarity 2025-08-17 11:45:05 -04:00
scawful
c9921c91bf Refactor editor manager and dungeon editor for improved clarity and performance
- Removed unused functions and streamlined shortcut registration in EditorManager for better readability.
- Updated lambda captures to use 'this' pointer for consistency and clarity.
- Refactored DungeonEditor to utilize ranges for sorting and filling operations, enhancing performance and readability.
- Simplified table setup in DungeonEditor by using a static array for tool names, improving maintainability.
2025-08-03 17:53:34 -04:00
scawful
b5f6930d38 Refactor window management and renderer integration for improved structure
- Replaced platform backend references with a dedicated Window class for better encapsulation of window and audio device management.
- Updated various files to include the new window header, enhancing clarity and reducing dependencies on the platform backend.
- Removed obsolete platform backend code to streamline the codebase and improve maintainability.
- Refactored controller and editor classes to utilize the new window management system, ensuring consistent handling of window creation and rendering.
2025-08-03 16:09:51 -04:00
scawful
3c734207be Enhance Dungeon Map functionality and refactor code structure
- Added dungeon_map.cc to the build configuration for improved organization.
- Refactored namespace usage to yaze::zelda3 for better clarity.
- Updated LoadDungeonMaps and SaveDungeonMaps functions to use kNumRooms constant for room handling.
- Improved error handling in LoadDungeonMapGfxFromBinary function and added comments for better documentation.
2025-05-19 17:28:45 -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
30f0ae37a3 Add Save/Load for Dungeon Maps and Dungeon Map Tile16 2025-05-18 16:46:20 -04:00
scawful
1031509e8a Refactor Emulator and Snes classes for improved memory access
- Updated Emulator class to remove inheritance from SharedRom and streamline ROM handling.
- Refactored memory access methods in Emulator and Snes classes to use consistent naming conventions.
- Enhanced DungeonObjectRenderer to utilize the updated Snes class for CPU and memory operations, improving clarity and maintainability.
- Cleaned up unnecessary comments and improved code formatting for better readability.
2025-05-15 22:53:37 -04:00
scawful
afc33cb7dd Refactor RoomEntrance class to use pointer for Rom parameter
- Updated RoomEntrance constructor and Save method to accept a pointer to Rom instead of a reference, improving memory management.
- Refactored data access methods to utilize the new pointer syntax for reading and writing ROM data.
- Enhanced code readability and consistency by applying the pointer approach throughout the class methods.
2025-05-13 17:29:18 -04:00
scawful
a2af47fd0a housekeeping 2025-05-10 09:43:17 -04:00
scawful
11504ca4c1 Refactor Renderer access and enhance graphics loading functionality
- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Updated various rendering methods to streamline bitmap updates and enhance performance.
- Removed unused includes and comments to improve code clarity and maintainability.
2025-05-08 19:37:48 -04:00
scawful
38b459777d Add RenderRoomGraphics method to Room class for improved graphics rendering
Implement RenderRoomGraphics in the Room class to handle the rendering of room graphics, including floor and background drawing. This addition enhances the graphics management by utilizing the gfx::Arena for rendering operations and updating bitmaps as needed. Update room.h to declare the new method.
2025-05-03 23:40:26 -04:00
scawful
d98e8bc324 Refactor Inventory class to remove inheritance from SharedRom and add ROM pointer management. Update LoadDungeonMapGfxFromBinary to simplify palette setting logic, enhancing code clarity and maintainability. 2025-05-03 17:24:43 -04:00
scawful
6d23128060 Refactor Room and RoomObject classes to remove inheritance from SharedRom, enhancing code clarity and maintainability. Introduce ROM pointer management in both classes for improved functionality. Update LoadRoomFromRom to accommodate new constructor signature. 2025-04-30 17:51:42 -04:00
scawful
ff74c0c92a Enhance DungeonEditor functionality by adding room graphics loading and rendering capabilities; implement bitmap drawing for background layers and room objects in the canvas, improving visual representation of dungeon rooms. 2025-04-27 14:00:40 -04:00
scawful
683b7f637d Update SetColorsPalette function to set palette size to 256, no longer uses vector as underlying so assignment operations dont increment size 2025-04-23 20:17:04 -04:00
scawful
903c1246c7 Refactor DungeonEditor to streamline room loading and size calculation; replace individual room loading methods with a unified LoadRoomFromRom function, and update room size management to utilize a dedicated RoomSize struct for improved clarity and efficiency. 2025-04-19 12:12:19 -04:00
scawful
44e13cf4bb Refactor bitmap palette management across various components to streamline palette setting and improve error handling; remove unnecessary status checks and enhance consistency in palette application methods. 2025-04-17 21:49:47 -04:00
scawful
110106dc61 Implement object rendering enhancements in DungeonObjectRenderer, including instruction execution limit to prevent infinite loops, improved tilemap initialization, and added palette setting functionality. Update header file with detailed method documentation. 2025-04-16 22:35:15 -04:00
scawful
97788fc033 Refactor canvas drawing methods to remove unnecessary bitmap parameters in context menu and bitmap drawing functions; update inventory and graphics editors to use new method signatures for improved consistency and clarity. 2025-04-16 21:44:07 -04:00
scawful
96c9c5bea6 expand entrance room constants in Zelda3 and enhance OverworldMap class with mosaic handling. 2025-04-12 13:24:48 -04:00
scawful
42cfb3bcb2 Refactor overworld constructors to accept Rom pointers 2025-04-12 11:27:23 -04:00
scawful
5e13b1b571 Remove dungeon.h and overworld.h headers; integrate their structures directly into zelda.h and update include paths in related source files. 2025-04-11 00:50:48 -04:00
scawful
087b194651 Remove unused room_tag.h header file and clean up includes in room.cc 2025-04-10 17:55:01 -04:00
scawful
ecbf991305 Move object names 2025-04-05 19:41:58 -04:00
scawful
a76fbe1c8c Refactor OverworldMap: update ProcessGraphicsBuffer to accept graphics buffer as parameter 2025-04-05 13:46:42 -04:00
scawful
e02ab2ded7 Refactor Room::CalculateRoomSize to use util::logf for logging and improve readability 2025-03-19 00:38:50 -04:00
scawful
6dfa5d282e Remove unused editor.cc file and clean up related CMake and code files 2025-03-03 18:01:29 -05:00
scawful
c99a4b0bc4 rename ApplyPalette with SetPalette 2025-03-02 17:06:46 -05:00
scawful
a7d933eb14 Refactor Overworld: improve map handling by defining kNumMapsPerWorld and enhancing logging 2025-02-28 09:25:56 -05:00