feat: Enhance DungeonCanvasViewer with Object Outline Filters and Context Menu Improvements

- Added a sub-menu for toggling visibility of object outlines based on type and layer, allowing for more granular control over displayed objects in the dungeon canvas.
- Implemented checkboxes for filtering object outlines by type (Type 1, Type 2, Type 3) and layer (Layer 0, Layer 1, Layer 2) in the debug menu.
- Updated the drawing logic to respect the new filtering options, ensuring only the selected objects are rendered on the canvas.
- Improved the visibility of object ID labels by making them smaller and less obtrusive, enhancing the overall clarity of the canvas display.
This commit is contained in:
scawful
2025-10-10 01:11:39 -04:00
parent 9f0b503ada
commit 6f3c9ba81b
6 changed files with 148 additions and 36 deletions

View File

@@ -160,6 +160,17 @@ class DungeonCanvasViewer {
bool show_texture_debug_ = false;
bool show_object_bounds_ = false;
bool show_layer_info_ = false;
// Object outline category toggles
struct ObjectOutlineToggles {
bool show_type1_objects = true; // Standard objects (0x00-0xFF)
bool show_type2_objects = true; // Extended objects (0x100-0x1FF)
bool show_type3_objects = true; // Special objects (0xF00-0xFFF)
bool show_layer0_objects = true; // Layer 0 (BG1)
bool show_layer1_objects = true; // Layer 1 (BG2)
bool show_layer2_objects = true; // Layer 2 (BG3)
};
ObjectOutlineToggles object_outline_toggles_;
};
} // namespace editor