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:
2026-10-13 22:52:53 +02:00
parent a951a96edc
commit 6a667d8deb
8104 changed files with 2124945 additions and 2061 deletions
+29
View File
@@ -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.