Commit Graph

43 Commits

Author SHA1 Message Date
scawful
cea73affdd Add performance monitoring capabilities with PerformanceMonitor class
- Introduced PerformanceMonitor and ScopedTimer classes for tracking operation durations, enhancing performance analysis during ROM loading and rendering.
- Integrated performance monitoring into the OverworldEditor and Overworld classes, allowing for detailed timing of critical operations.
- Implemented deferred texture creation strategies to optimize loading times and reduce main thread blocking.
- Updated relevant methods to utilize performance monitoring, providing insights into loading efficiency and potential bottlenecks.
2025-09-28 22:21:15 -04:00
scawful
c1902687c5 Add comprehensive YAZE Overworld Testing Guide and test scripts
- Introduced a detailed documentation guide for testing the YAZE overworld implementation, covering unit tests, integration tests, end-to-end tests, and golden data validation.
- Added a new script to orchestrate the complete testing workflow, including building the golden data extractor, running tests, and generating reports.
- Implemented new test files for end-to-end testing and integration testing, ensuring compatibility with ZScream logic and validating overworld data integrity.
- Enhanced the Overworld class with additional methods for expanded tile and entrance handling, improving test coverage and functionality.
2025-09-28 21:47:22 -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
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
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
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
c567cef978 Refactor header files to remove unused includes and improve code clarity 2025-08-17 11:45:05 -04:00
scawful
42cfb3bcb2 Refactor overworld constructors to accept Rom pointers 2025-04-12 11:27:23 -04:00
scawful
a7d933eb14 Refactor Overworld: improve map handling by defining kNumMapsPerWorld and enhancing logging 2025-02-28 09:25:56 -05:00
scawful
d38ae7914d Load sprites after overworld maps for current gfx 2025-01-06 21:36:51 -05:00
Justin Scofield
88198323b3 Refactor ROM handling and update Overworld methods
Updated MessageEditor, RoomEntrance, and Overworld classes to use WriteByte instead of Write for byte values. Refactored ROM class by removing Write and toint16 methods, moving constants, and updating operator[]. Modified Overworld methods to return absl::Status and handle errors. Updated Inventory and OverworldMap methods to use ReadWord instead of toint16.
2025-01-05 21:19:53 -05:00
Justin Scofield
02a86c41da Refactored EditorManager to consolidate popup drawing methods into a single DrawPopups method and added a DrawMenuBar method. Replaced DrawYazeMenu with DrawHomepage for displaying a welcome message and options for opening a ROM. Introduced a LoadRom method to handle ROM loading and updated related methods to set the current_rom_ pointer. Added settings_editor_ to the list of active editors. 2025-01-05 20:54:02 -05:00
Justin Scofield
2d9f4be91d Refactor and add default values to various structs
- Removed `FindMatchingCharacter` declaration from `message_data.h`
- Added default values to `DictionaryEntry` and `MessageData` members
- Marked several methods in `DictionaryEntry`, `MessageData`, and `TextElement` as `const`
- Updated `TextElement` constructor to take `const std::string&`
- Added string constants for text descriptions in `TextElement`
- Updated `TextCommands` vector to use new string constants
- Declared new function `FindMatchingCommand`
- Included `<array>` header in `message_editor.h`
- Changed `width_array` in `MessageEditor` to `std::array` with default initialization
- Removed `list_of_texts_` and `all_dictionaries_` vectors from `MessageEditor`
- Added default values to `GameEntity` members
- Initialized `sheets` array in `PseudoVram`
- Initialized `map_parent_` and `all_tiles_types_` arrays in `Overworld`
2025-01-04 20:05:46 -05:00
scawful
ca702d62e3 refactor overworld: add constants for exits, items, entrances, and map IDs 2025-01-01 19:30:36 -05:00
Justin Scofield
e04fc3d828 housekeeping 2024-12-31 20:43:23 -05:00
scawful
d3eca0f950 Make ExperimentFlags a singleton, remove inheritance relationships 2024-12-31 18:13:53 -05:00
scawful
5e1e2901ff Refactor overworld constants 2024-12-31 17:50:19 -05:00
scawful
41c31e3193 Refactor overworld constants to improve naming consistency and readability 2024-12-31 17:39:57 -05:00
scawful
6d2de44b94 Refactor Overworld blockset types and update related function signatures 2024-12-31 16:40:01 -05:00
scawful
8cf16906e6 remove overworld namespace 2024-12-29 16:12:53 -05:00
scawful
e05e7c35db remove app namespace 2024-12-28 21:28:51 -05:00
scawful
77a6313bb3 Move OverworldEntrance, OverworldExit, OverworldItem to own files 2024-12-28 17:18:19 -05:00
scawful
d8821c5809 Refactor Overworld tile assembly logic for clarity and efficiency; streamline address handling and improve expansion checks 2024-11-13 08:52:23 -05:00
scawful
996c6c92ee Add flags for expanded tile16 and tile32 saving 2024-11-10 17:17:12 -05:00
scawful
39308bda5a Update AssembleMap32Tiles and AssembleMap16Tiles for expanded tile handling 2024-11-10 16:58:10 -05:00
scawful
8cccbdfd4c Add SaveMap16Expanded and SaveMap32Expanded functions based on ZS 2024-11-10 16:49:16 -05:00
scawful
665d58aa97 General cleanup 2024-11-02 00:10:24 -05:00
scawful
d7849c2098 chore: Enable building tests in CMakeLists.txt 2024-08-30 20:17:41 -04:00
scawful
698055d165 Refactor OverworldEditor and Overworld class 2024-08-29 19:52:38 -04:00
scawful
93d7aa545c Refactor AssembleMap32Tiles to report errors 2024-08-29 19:10:02 -04:00
scawful
5532623e16 game constants housekeeping 2024-08-29 13:08:36 -04:00
scawful
f3b0723ca4 Refactor OverworldMap constructor to remove unnecessary tiles16 parameter 2024-08-26 10:24:46 -04:00
scawful
971255b636 remove unnecessary sdl2 include from overworld 2024-08-26 07:43:25 -04:00
scawful
dafeff2be7 Move OverworldCustomASM constants to overworld_map.h 2024-08-25 16:39:50 -04:00
scawful
bf94668455 Refactor OverworldEditor to use zelda3::GameEntity 2024-08-24 23:57:19 -04:00
scawful
270bef0973 Refactor OverworldEntity to use uint16_t for map_id and improve code organization 2024-08-22 10:49:12 -04:00
scawful
23640310be Refactor tile16 blockset data access methods 2024-08-21 21:54:28 -04:00
scawful
a8ed9b7f92 remove magic numbers, enforce const correctness 2024-08-20 21:31:59 -04:00
scawful
49611d4944 big cleanup, replace Bytes alias with std::vector<uint8_t> to reduce ambiguity 2024-08-20 12:02:47 -04:00
scawful
90933517c4 cleanup sprite pal and overworld editor 2024-07-22 19:26:15 -04:00
scawful
5953e58bd4 Rename SharedROM to SharedRom 2024-04-14 14:51:53 -05:00
scawful
7e46cf1c64 Rename ROM class to Rom 2024-04-14 14:47:17 -05:00
scawful
b06e22dc0d Add zelda3::overworld namespace 2024-04-14 14:37:53 -05:00