fix(render): Phase A8.F — camera sweep uses retail moverFlags 0x5c (PathClipped hard-stop)
Code review found the probe passed ObjectInfoState.None; retail's SmartBox::update_viewer calls init_object(player, 0x5c) = IsViewer|PathClipped|FreeRotate|PerfectClip (pseudo-C :92864). PathClipped makes the sweep hard-stop at first contact (TransitionTypes.cs:811) instead of edge-sliding around corners (which would re-trigger the A8.F camera-cell instability); IsViewer lets the eye pass through creatures, colliding only with world geometry. Resolves the spec's slide-vs-stop open question. Also reset CollideCamera in the Defaults_AreRetailValues baseline test (review: maintenance trap). Spec §5.1/§11.1 synced. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
376e2c3578
commit
fcea05f808
3 changed files with 27 additions and 11 deletions
|
|
@ -21,6 +21,7 @@ public class CameraDiagnosticsTests
|
|||
CameraDiagnostics.CameraAdjustmentSpeed = 40.0f;
|
||||
CameraDiagnostics.AlignToSlope = true;
|
||||
CameraDiagnostics.UseRetailChaseCamera = true;
|
||||
CameraDiagnostics.CollideCamera = true;
|
||||
|
||||
Assert.Equal(0.45f, CameraDiagnostics.TranslationStiffness);
|
||||
Assert.Equal(0.45f, CameraDiagnostics.RotationStiffness);
|
||||
|
|
@ -31,6 +32,7 @@ public class CameraDiagnosticsTests
|
|||
// legacy camera remains opt-in via the DebugPanel toggle until
|
||||
// the follow-up deletion commit.
|
||||
Assert.True(CameraDiagnostics.UseRetailChaseCamera);
|
||||
Assert.True(CameraDiagnostics.CollideCamera);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue