Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Authored objective map presentation
|
||||
|
||||
Discovered sites and recovered mine warnings use their own map UI elements. They no longer enter the native player-annotation registry, whose user-content filtering also applies to static markers. Normal annotations and their restrictions are unchanged.
|
||||
|
||||
The objective icons now use the owned `UI/Textures/ERR/SiteMarkers.imageset`
|
||||
atlas: violet circular backgrounds with black symbols. The icon widget uses
|
||||
white tint so the texture keeps its colours. The existing 36-pixel footprint,
|
||||
labels and discovery restrictions remain unchanged. Artwork and a labelled
|
||||
preview are in [art/map-markers](../art/map-markers/README.md).
|
||||
|
||||
`ERR_DiscoveryMarker` retains the existing disclosed position/icon/text API. Rough site and mine positions remain stable 500 m grid centers. `ERR_ObjectiveMapPresentation` renders only those disclosed coordinates and owns its widget plus open/close/pan/zoom subscriptions. Stop and location deletion remove that presentation. Updating a clue changes the existing widget; reopening or replacing the map recreates it for the current map/configuration/canvas/container.
|
||||
|
||||
The standard map uses a sibling of the native `UIIconsContainer` under its existing `MapFrame`. Native faction/task refresh can clear its own icons without removing objectives. The shared map has an authored `ERR_ObjectiveOverlay` frame inside `RTTexture0`. Canvas-to-parent screen offsets and DPI conversion position the icon; viewport culling uses current projected pixels. Cursor input is ignored by the objective layout.
|
||||
|
||||
The opt-in Workbench `objective-map` fixture requires Core and one round. It opens the real native map menu through its API, then the shared-map root, supplies synthetic already-disclosed marker data, and checks rough/exact updates, pan/culling, asynchronous menu close/reopen, reused configuration with a new root, and teardown. It does not discover a mission location, move a player, alter inventory, simulate user input or change annotation restrictions. Its menu-close request waits for the native next-update callback. Six fixed capture holds permit a read-only observer to inspect the exact private test window.
|
||||
|
||||
System.MakeScreenshot captures from these runs showed only the world view and are not evidence of map UI rendering. UI qualification must refer to separately retained private-window screenshots and their process/display bindings. The shared fixture disables the render target and binds no physical model, so shared-root UI geometry does not establish visibility of the held texture or the normal 500 ms capture.
|
||||
|
||||
See the source-bound evidence and current status for completed checks. Manual map interaction, held-map capture, restricted-platform behavior, remote replication/JIP and multiplayer remain separate validation work. The previous packaged handoff remains unchanged until an explicit refresh.
|
||||
|
||||
## Validation — 2 October 2026
|
||||
|
||||
All 283 registered regression programs pass. The [final isolated map fixture](evidence/native-2026-10-02-objective-map-final/report.json) completes 101 assertions and one completion with zero script/runtime failures; 16 engine errors remain. The [normal escape route](evidence/native-2026-10-02-objective-map-normal/report.json) completes 63 assertions and one round with zero script/runtime failures; 13 engine errors remain. All sessions were hidden/muted with confirmed cleanup and unchanged inputs. See [raw UI captures, preservation and exact limits](evidence/objective-map-2026-10-02/summary.json).
|
||||
|
||||
## Question-mark lookup correction (2026-10-12)
|
||||
|
||||
The question-mark atlas identifier is now quoted (`"mark-question"`), and the icon generator quotes image identifiers. The objective widget now uses the native image-load result: failed loads hide the untextured rectangle and remain eligible for retry on the next refresh. Successful loads retain the existing cache.
|
||||
|
||||
Targeted map-element, presentation and native-fixture policy tests pass. The private Workbench attempt stopped before launch because installed dependency `595F2BF2F44836FB` no longer matches its recorded manifest; native rendering remains unverified. The broader repository check stops at the unrelated civilian-traffic ServerTick assertion.
|
||||
Reference in New Issue
Block a user