Implement inspect mode for shape metadata and enhance overlay interactions

This commit is contained in:
Marco 2026-03-27 13:30:49 +01:00
commit ab5e514e61
6 changed files with 325 additions and 38 deletions

View file

@ -19,18 +19,33 @@ Phase 1 implementation choice:
Goal: promote editor-only content from "baked into the raster" to interactive overlay objects.
- keep the base map rendered as a flat server-generated tile surface
- extract editor-only objects into a standalone overlay data stream
- render those overlay items in the client as positioned interactive markers or sprites above the base map
- on hover, slightly scale the hovered item and show a tooltip with its decoded metadata payload
- completed: keep the base map rendered as a flat server-generated tile surface
- completed: extract editor-only objects into a standalone overlay data stream
- completed: render editor-only overlay items in the client as positioned sprite overlays above the base map
- completed: remove editor-only records from the base raster so overlay shapes are not duplicated in the map tiles
- completed: fix overlay transparency so the sprite background stays transparent instead of fading black
- completed: add an inspection mode checkbox that shows metadata for any rendered shape under the cursor, not just editor overlays
- improve roof detection before or during the overlay split because the current roof filtering still lets some roofs render when they should not
- identify occluding helper geometry such as invisible walls and render those semitransparently so they remain legible without hiding too much of the map beneath them
- fix pipe rendering because pipes currently are not showing up correctly
- investigate force-field rendering because they appear yellow instead of the expected blue semitransparent look; this may be a debug-shape choice issue or a palette/color-rendering issue
- likely revisit ScummVM Crusader handling in `D:\source\scummvm` to confirm what editor/debug records carry and how best to decode them for display
Current phase 2 status:
- the server now builds three outputs from one map build: base raster tiles, editor-only overlay sprites, and a shared inspectable-shape metadata stream
- editor-only shapes are interactive overlay sprites rendered from their original decoded frames rather than synthetic markers
- when inspect mode is active, the cursor reports metadata for whichever rendered shape is currently under it, including base-map shapes
Next steps:
- use inspect mode on representative maps to identify which visible structures are true roofs versus normal geometry so roof filtering can be tightened with evidence
- decide which helper/occluder families should stay semitransparent overlays and which should eventually be hidden or toggled separately
- inspect broken pipe shapes and compare their metadata against ScummVM handling to determine why they currently render incorrectly
- inspect force-field shapes and compare palette or translucency traits against expected in-game appearance
Open questions for phase 2:
- which editor-only families should become interactive overlays versus remain baked into the base render
- what exact metadata fields are reliable enough to expose in the tooltip
- which helper/editor families should stay as overlay sprites versus gain their own visibility toggles
- what exact metadata fields are reliable enough to expose in the tooltip long-term
- whether some editor-only entries should be clustered, filtered, or toggled by family to keep dense maps usable