Commit Graph

84 Commits

Author SHA1 Message Date
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
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
a2af47fd0a housekeeping 2025-05-10 09:43:17 -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
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
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
a76fbe1c8c Refactor OverworldMap: update ProcessGraphicsBuffer to accept graphics buffer as parameter 2025-04-05 13:46:42 -04:00
scawful
a7d933eb14 Refactor Overworld: improve map handling by defining kNumMapsPerWorld and enhancing logging 2025-02-28 09:25:56 -05:00
scawful
43fc52dec7 Refactor SnesToPc and PcToSnes functions for improved readability and consistency; remove redundant core:: namespace usage 2025-01-22 13:45:58 -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
50c9223a53 Add hex utility functions and refactor usage in editors 2025-01-22 13:28:21 -05:00
scawful
809282edad remove nonstandard type aliases 2025-01-19 20:16:40 -05:00
scawful
de75cc6850 Update tests 2025-01-19 18:55:01 -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
510581ad1f Refactor Overworld loading to use async tasks
Refactored Overworld::LoadSprites to use std::async for concurrent sprite loading, improving efficiency. Modified Overworld::LoadOverworldMaps to wait for all async tasks and check results for errors. Updated Overworld::LoadSpritesFromMap to use mutable_current_graphics() for mutable access to current graphics. Added mutable_current_graphics method to OverworldMap class. Optimized Sprite constructor to take a const reference to avoid unnecessary copying.
2025-01-05 20:57:13 -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
427fd50496 Guard custom overworld loading code with experiment flag 2024-12-31 19:20:32 -05:00
scawful
a54143cbab Refactor Hyrule Magic compression functions to return std::vector<uint8_t> instead of raw pointers for improved memory management 2024-12-31 18:32:25 -05:00
scawful
308eb4b287 Rename Hyrule Magic compression functions; update deprecation notes 2024-12-31 18:20:18 -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
aece708513 Refactor overworld entity constants for improved naming consistency and readability 2024-12-31 17:40:15 -05:00
scawful
41c31e3193 Refactor overworld constants to improve naming consistency and readability 2024-12-31 17:39:57 -05:00
scawful
0e67413d55 Refactor logging to use logf function and update log file name 2024-12-31 16:54:44 -05:00
scawful
6d2de44b94 Refactor Overworld blockset types and update related function signatures 2024-12-31 16:40:01 -05:00
scawful
19deca88ab Add OverworldEntranceTileTypes and remove EntranceContext boiler plate 2024-12-30 19:04:51 -05:00
scawful
96095969c6 Refactor GfxContext references to use gfx::GfxContext for consistency 2024-12-30 19:04:20 -05:00
scawful
59e59f8a38 Refactor hex string handling: replace UppercaseHex functions with Hex equivalents 2024-12-30 09:48:19 -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
21314702e8 Add EditorContext, refactor utils, add system managers 2024-11-19 23:10:23 -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
84f30f45d0 Refactor includes in dungeon, music, and overworld files to remove unused headers for clarity 2024-11-13 08:51:54 -05:00
scawful
089dc4017c Remove unused functions 2024-11-10 21:40:22 -05:00
scawful
a70414d803 Store converted binary graphics data in ScreenEditor and rename save functions for clarity 2024-11-10 17:25:26 -05:00
scawful
996c6c92ee Add flags for expanded tile16 and tile32 saving 2024-11-10 17:17:12 -05:00
scawful
0035176f86 Add CopyTile8bpp16 function and refactor usage in OverworldMap 2024-11-10 17:16:46 -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