Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
29 lines
3.8 KiB
Plaintext
29 lines
3.8 KiB
Plaintext
UNINTEGRATED PROTOTYPE — native compilation/rendering required before admission
|
|
|
|
Current target untouched. fix.patch has 3 script files (one new), own layout+meta, existing mine-test adapter, and new actual-method overlay regression. Exact baseline hashes and unchanged-current-target comparison are in source-manifest.json; baseline/ retains original bytes.
|
|
|
|
Supported presentation approach:
|
|
ERR_ObjectiveMapElement derives SCR_MapUIElement, as vanilla task UI does. Quantized authored site/mine data is presented outside SCR_MapMarkerManagerComponent static annotation arrays. No SetBlocked override, no user/platform restriction changes, no task entities and no new position discovery. Existing ERR_DiscoveryMarker remains data/API compatibility. Two producer calls switch to own ERR_InsertDiscoveryMarker adapter. Old static removal remains solely defensive/legacy native-probe compatibility.
|
|
|
|
Checks:
|
|
overlay-green.log: actual Start/SetData/Refresh/Close/Clear/Stop/ownership with native doubles; delayed initial controller/widget, map reopen, rough->exact data, pan/zoom/culling, reused config/new canvas, multiple independent owners, stop and missing handler retry.
|
|
mine-green.log: existing actual mine service/marker lifecycle adapted only for new insertion adapter.
|
|
canvas-mutation-red.log: removing exact canvas identity compiles then fails actual replacement-cleanup assertion. This is a mutation control, NOT a baseline native rendering reproduction.
|
|
Native UGC compatibility finding remains SDK source evidence, not a restricted-platform run.
|
|
|
|
SDK API checks:
|
|
scripts/Game/Map/SCR_MapEntity.c:86-100 declares open/close config, pan(float,float,bool), zoom(float). WorldToScreen904-920 adds DPI-scaled pan but no parent origin. Native MapUIElementContainer.UpdateIcons uses same WorldToScreen+DPIUnscale relative UI positioning. New canvas-child anchoring requires native verification.
|
|
CloseMap324-331 calls OnMapClose synchronously before IsOpen=false; OnMapClose377-380 invokes current config, without queued callback. Closed(config) clears only retained same config. An artificial delayed close with reused identical config cannot be distinguished and is NOT proven safe; no native delayed source found.
|
|
Native GetMapVisibleFrame207 returns cached state updated after map callbacks/frame. Overlay instead culls against current transformed pixel coordinates and current canvas screen dimensions.
|
|
SCR_MapUIElement base has no OnUpdate override; HandlerAttached tolerates absent highlight/gradient; OnClick only calls overridden no-op SelectIcon when visible. Layout ignores cursor on root/image/text. Native hit testing remains unverified.
|
|
|
|
HARD next gates (one bounded opt-in native fixture before normal rollout):
|
|
1. Compile new class/layout/resource; register test/resource manifest separately; root owns check.py.
|
|
2. Actually render known rough and exact objective overlay on ordinary M-key map; verify icon centered on coordinate and exact text updates, including long mine warning labels. Root alignment(.5,.28125) centers36px icon within64px overall box.
|
|
3. Pan/zoom/cull and close/reopen, with overlay inside correct parent canvas at multiple UI scales. Verify no click/drag/delete/input interception and unchanged normal annotations/privacy behavior.
|
|
4. Shared held-map500ms capture: verify overlay participates in RT surface without altering normal map/camera ownership.
|
|
5. JIP/missing controller and mission/location deletion cleanup, map replacement. No duplicate widgets/subscriptions or old native static marker entries.
|
|
6. Existing ERR_NativeDiscoveryMapProbe checks legacy static-marker API; it does NOT validate the new path and must not be reported as new overlay evidence. Add new fixture rather than silently reinterpret old claims.
|
|
|
|
Do not apply prototype until review and explicit parent integration. This heartbeat package contains only previously validated owner fixes.
|