Verify bounded ordinary-input approach to the prison gate

This commit is contained in:
2026-09-19 19:21:21 +02:00
parent b7fba094d7
commit ec1071595d
90 changed files with 102832 additions and 35 deletions
+54
View File
@@ -0,0 +1,54 @@
# Native prison-lock alignment: next bounded experiment
This is a source- and telemetry-based plan, **not an executed alignment or lock-picking proof**. Do not change action availability, context radius, assets, actor pose, camera pose or the original observation lifetime to obtain a pass.
## What the ordinary approach established
The ordinary session `logs_2026-09-19_19-13-42`, nonce `31a3be1395be435294173595c4fb0659`, ended its approach with ten W pulses and fourteen relative turns. The root’s independent raw-route review accepted the interior route; its original runner result failed a legacy inventory-summary requirement. That failure must remain in the original archive. Neither route completion nor proximity establishes a selected lock action.
At native **sample 296, real 63752 ms**, the raw console records:
| Measurement | Native value |
|---|---|
| Actor `GetOrigin()` | `<6092.42,211.297,7155.81>` |
| Actual camera position | `<6092.42,212.921,7155.71>` |
| Actual view direction | `<0.807436,0,-0.589955>` |
| Registered gate context origin | `<6092.77,213.226,7154>` |
| Context radius | `2` |
| Prison center / gate origin | `<6090,211.444,7160>` / `<6090,211.344,7154>` |
The player was stopped and still inside. Selected lock, selected context and cached permission remained false in the final observations; door state/control remained zero. The context/action/component references remained pinned by the native observer.
Calculated from that actual camera sample, current yaw is **126.154°** and pitch **0°**. The handle center requires yaw **168.433°**, a **+42.279°** correction, and pitch **+9.912°**. Camera-to-handle distance is **1.772m**; actor-origin-to-handle distance is **2.668m**, including **1.929m** of height difference. These calculations identify the handle direction, not the engine’s exact selection volume or reference-bone position.
## Installed collection rules and their limits
Read directly from installed `Arma Reforger/addons/data/data007.pak`, resource `{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et` configures:
```text
SCR_InteractionHandlerComponent {
GlobalVisibilityRange 2.5
ReferenceBoneName "head"
NearbySphereRadius 5
}
```
`DefaultPlayerControllerMP.et` inherits that prefab. Thus the authored context radius of 2m is **not evidence that collection measures a two-metre sphere from the player’s feet**. A native head reference is configured; it is not necessarily identical to the rendered camera origin.
Generated `scripts/Game/generated/UserAction/ExtBaseInteractionHandlerComponent.c` describes preferred collection as a sphere cast followed by a sphere query, selecting a valid actions-manager context. Its exact native implementation is unavailable here. `UserActionContext.GetOrigin()` is documented as world space. On-foot `SCR_InteractionHandlerComponent.DoIntersectCheck()` normally returns false; it enables the alternate context-radius intersection test for vehicle/inspection cases. Do not assume a radius-only test models ordinary walking selection.
There is also a distinct **scripted context-change** rule: `scripts/Game/Interactions/SCR_InteractionHandlerComponent.c:325–374` computes distance from `m_ControlledEntity.GetOrigin()` to the context and allows a context change beyond `context.GetVisibilityRange(handler.GetVisibilityRange())² × 1.1`. With the configured 2.5m range and no action-specific extension, that threshold is **2.622m**. The measured feet distance is 0.046m beyond it. This rule permits a context change; it neither proves initial collection failed nor forces the current context to clear. The native read-only visibility getters can confirm the effective range if further diagnostics are needed. `UpdateLastReferencePoint()` updates state and should not be used as telemetry.
Installed selection code (`SCR_InteractionHandlerComponent.c:690–832`) indexes the filtered/aggregated actions and preserves previous selection. Even a gathered gate context does not guarantee the selected action is `ERR_UnlockPrisonAction`.
## Smallest next step
Use a separately explicit **alignment-only** variant after the independently verified interior approach. Keep the original player/world/life/nonce pins, private display/focus/pointer ownership, mute/hidden display, no held keys, and original 45-second observation window.
1. Freeze the final stopped body and measured gate geometry. Recompute handle bearing from fresh native camera/handle positions. First attempt bounded horizontal relative turns only, using the same run’s proven signed yaw calibration, at most 128 pixels per step and the existing measured turn/settling guards. Do not walk closer merely because the feet distance exceeds the context radius.
2. Stop turning once two fresh consecutive native observations identify the original lock/context with cached permission, or once the bounded yaw target/budget is reached. Require zero action input/progress throughout. Native action selection—not an estimated aim point—is the result being tested.
3. If yaw alignment does not acquire the lock, record the failure. The calculated +9.9° pitch is a candidate for a later explicitly bounded vertical-input experiment; horizontal calibration does not establish vertical gain/sign. Only after native evidence distinguishes aiming from reach should an additional small, stopped physical approach be considered. No selection setter, direct completion, context modification or teleport is an alternative.
The original input QUEUED clock is **30094ms**. Its unchanged expiry is **75094ms**, leaving approximately **11.3 seconds** after the observed approach completion. Roughly 42° of yaw, potentially 9.9° of pitch, native settling, and a four-second held action leave little margin. **Alignment-only is the next logical experiment.** Do not extend the observation or approach deadlines to fit F into this run.
A later F-only proof must start with at least six seconds of the original observation budget remaining and stable exact selection, use one bounded F-down/up pair, retain the proposed five-second F lease without changing W’s lease, and prove native progress plus PRISON → RADIO_SEARCH and gate response while still inside. Until those prerequisites are observed, send no F. No runtime or input changes were made for this audit.