acdream/tests/AcDream.Core.Tests/Physics
Erik 4abd1b5eb7 fix(physics): AP-152 — dispatch collision shapes BSP-first, at emission and at the cell flood
The register row predicted "catching or stopping on a doorway sill". That
symptom could not have been occurring. `Transition.BspOnlyDispatch`
(TransitionTypes.cs:1348, landed 2026-05-25 as A6.P7) already skipped both
primitive branches (:3911, :3954) whenever the target's wire PhysicsState
carries HAS_PHYSICS_BSP_PS, and ACE sets that bit from CSetup.HasPhysicsBSP
for every affected Setup. The extra primitive was never tested for collision.

The live defect was CELL MEMBERSHIP. The same shape list feeds
`ShadowObjectRegistry.BuildFloodSpheres`, which had no such guard and
preferred Cylinders over everything whenever any Cylinder existed — retail's
SECOND priority applied ahead of its first. For the 73 CylSphere+BSP Setups
acdream therefore flooded shadow cells from the cylinder and never from the
slab: an object absent from cells it physically occupies, which is the
#98 / #168 symptom class, not the door-collision class the row named.

Retail, re-disassembled from the PDB-paired binary (v11.4186, CodeView GUID
9e847e2f-777c-4bd9-886c-22256bb87f32, check_exe_pdb.py MATCH) rather than
taken from Binary Ninja, which drops flag tests:

  CPhysicsObj::FindObjCollisions @0x0050f050
    0x0050f165  test dword [esi+0xa8], 0x10000
    0x0050f16f  je   0x50f1a2        ; clear -> primitive dispatch
    0x0050f18d  call 0x518180        ; CPartArray::FindObjCollisions
    0x0050f19d  jmp  0x50f2b0        ; UNCONDITIONAL, past BOTH primitive loops
                                     ; (CylSphere 0x50f1a2, Sphere 0x50f21d)
    0x0050f1d6  jae  0x50f317        ; CylSphere loop exhausted -> RETURN
    0x0050f22f  je   0x50f31b        ; zero Spheres -> RETURN seeded OK_TS

  CPhysicsObj::calc_cross_cells @0x00515230
    0x00515285  test dword [esi+0xa8], 0x10000
    0x0051528f  jne  0x515305 -> CPhysicsObj::find_bbox_cell_list @0x00510fc0
    0x005152d1  call 0x52b9f0        ; cylsphere branch, below the jump
    0x005152fb  call 0x52b990        ; sorting-sphere branch, below the jump

Priority at both consumers: BSP -> CylSphere -> Sphere -> nothing. BSP wins.
Every address above was resolved back to its symbol by exact lookup in
named-retail/symbols.json.

Changes:

* `ShadowShapeBuilder.FromSetup` gains a step-0 dispatch gate. Steps 1 and 2
  are skipped entirely when any part's EFFECTIVE GfxObj carries a physics
  BSP. The gate and step 3 now share one `EffectivePartGfxObjId` helper, so
  they cannot read different identities — a gate on `setup.Parts` would,
  after an ObjDesc swap, suppress the primitives while step 3 emitted
  nothing and `Build` returned null, deleting the entity's collision.
  Emission order is unchanged. This also removes acdream's undeclared
  reliance on the server sending the flag: the gate is derived from the
  parts, exactly as CPartArray::CacheHasPhysicsBSP @0x00518110 derives it.

* `ShadowObjectRegistry.BuildFloodSpheres` now applies calc_cross_cells'
  own order: BSP, else Cylinder, else everything. Given the gate above this
  is a no-op for every shape list acdream produces (FromSetup is now
  exclusive; both landblock-static publishers already emit homogeneous
  lists), so the measured membership delta remains attributable to the
  gate alone. It is kept for the same reason BspOnlyDispatch is kept: retail
  genuinely dispatches here, and it guards a future additive producer.

`Transition.BspOnlyDispatch` is deliberately untouched.

Register: AP-152 RETIRED with its four false statements corrected — the risk
statement (the symptom was already inert); "small and centred at the part
origin" (max primitive is 6.714 m, and 0x0200086E's sphere origin is
(0.759, 0.165, 5.842)); the cottage door's "~14 cm base Sphere" (it is
0.100 m; 0.141 is Setup.Radius, which AP-22 proved is never collision
geometry); and naming one pinning test where two existed. AP-153/154/155
filed: retail's dispatch flag is cached once at InitPartArrayObject+0x7e
where acdream's gate is live; the query-time guard takes a client-derived
flag off the wire; and the static publishers emit Setup Spheres as
height-capped Cylinders while BuildFloodSpheres approximates retail's
bounding box with bounding spheres.

Tests. Both pinning tests corrected, neither deleted:
`FromSetup_DoorSetup_ProducesFourShapes` -> `..._EmitsBspPartsOnly`;
`FromSetup_DoorSetup_SphereAtExpectedLocalOffset` re-hosted on
`_ => false`, the DAT-real configuration for the 3,605 Sphere-only Setups.
`FromSetup_ScaleFactor_MultipliesAllRadiiAndOffsets` was the campaign's
eighth green test covering nothing — its assertions sat inside
`if (CollisionType == Cylinder)` on a fixture with zero CylSpheres, so only
`Scale == 2.0f` ever ran. Proved empirically: with the sphere radius scale
deleted, the old body passes and the corrected body fails. Three new facts:
the effective-identity gate, the App-layer CylSphere+BSP registration (no
App fixture combined the two before), and the flood-set dispatch. One new
installed-DAT sweep pins 172 affected Setups (73 CylSphere+BSP, 99
Sphere+BSP) behind external bucket controls, re-measured independently and
agreeing exactly with the filing commit's separate sweep.

All eight sabotages run and reported; every discriminating fact reddens in
the intended direction and only there. Clean Release build after deleting
every bin/obj: 0 errors. Complete suite 11,203 passed / 4 skipped / 0
failed, +5 on the 11,198 baseline at ec29a732 — exactly the five added
facts, no new skips.

Blast radius, corrected: the FromSetup half is graphical-only (its sole
production caller is LiveEntityCollisionBuilder in AcDream.App, which
AcDream.Headless cannot reference — Headless -> Runtime -> Core/Content).
The BuildFloodSpheres half lives in AcDream.Core and DOES execute in
Headless via LandblockPhysicsContentBuilder, but is behaviour-neutral there
because both of that builder's registrations pass homogeneous lists.
Headless suite green at 89/89.

NOT yet gated live: this changes shadow-cell membership for 22 Setups used
by 151 Door weenies and 38 stationary props. Needs a connected session.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-06 14:51:36 +02:00
..
Motion feat(physics): P5 commit 1 - port ConstraintManager leash distance constants (#167) 2026-07-30 11:54:35 +02:00
A6P7DispatchRulesTests.cs feat(physics): port retail projectile integration 2026-07-14 11:43:11 +02:00
AnimationCommandRouterTests.cs feat(R2-Q4): adapter cutover — SetCycle/PlayAction rehosted on PerformMovement; Fix B / fast-path / stop-anim fallback / G17 gate DELETED 2026-07-02 21:41:27 +02:00
AnimationHookRouterTests.cs feat(anim): Phase E.1 hook router + GameWindow wiring 2026-04-18 16:30:23 +02:00
AnimationSequencerCutoverTraceTests.cs fix(runtime): align portal and movement presentation 2026-07-17 08:48:27 +02:00
AnimationSequencerTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
Ap10WaterSemanticsTests.cs fix(physics): AP-10 - restore retail's 0.1m dry-corner water sink-in; wire WATER_CONTACT_TS 2026-07-30 10:52:39 +02:00
Ap71EntryRestrictionGateTests.cs fix(physics): AP-129 review fix - port CanMoveInto/IsAllowedIn, stop failing closed 2026-07-30 11:36:11 +02:00
BSPQueryTests.cs fix #137 (mechanism 2): BSP full-hit stubs leaked sliding normals — the corridor absorbing wedge 2026-07-05 18:08:29 +02:00
BSPStepUpFixtures.cs feat(physics): Phase L.2.1+L.2.2 — BSP step-up and rooftop landing 2026-04-29 16:16:39 +02:00
BSPStepUpTests.cs fix(physics): restore retail path-6 collision response 2026-07-31 13:44:55 +02:00
BuildShadowCellSetTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
CameraCornerSealReplayTests.cs fix(physics): traverse prepared indoor portal topology 2026-07-27 00:02:44 +02:00
CellarLipWedgeTests.cs chore(p2): strip cellar-lip dispatch-trace probes after visual confirmation 2026-06-05 09:24:20 +02:00
CellArrayTests.cs feat(physics): Stage 1 — CellArray ordered/deduped cell collection (retail CELLARRAY) 2026-06-03 08:54:45 +02:00
CellarUpTrajectoryReplayTests.cs refactor(physics): delete legacy PhysicsEngine.Resolve/ResolvePlacement/HasCellSurface (C5a, AP-1/AD-1) 2026-08-05 14:11:31 +02:00
CellDumpRoundTripTests.cs feat(phys): A6.P3 #98 Step 2 — cell-dump probe + roundtrip test 2026-05-23 15:16:56 +02:00
CellGraphMembershipTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
CellGraphPopulationTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
CellMarchLandblockPreservationTests.cs fix(teleport D): cell-march preserves seed landblock id when no resident LB (no more lbX=0 outbound) 2026-06-22 13:38:48 +02:00
CellPhysicsPortalWiringTests.cs feat(physics): Phase 2 — wire CellBSP + Portals into CellPhysics 2026-05-19 16:52:20 +02:00
CellSurfaceTests.cs refactor(physics): remove parsed collision graphs 2026-07-25 18:21:19 +02:00
CellTransitAddAllOutsideCellsTests.cs fix(phys): #106 — outdoor membership crosses landblock boundaries (LandDefs global-lcoord port) 2026-06-09 23:10:59 +02:00
CellTransitCheckBuildingTransitTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
CellTransitFindCellListTests.cs feat(physics): Phase 2 — BuildingPhysics + CheckBuildingTransit 2026-05-19 17:34:38 +02:00
CellTransitFindCellSetTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
CellTransitFindTransitCellsSphereTests.cs fix(physics): traverse prepared indoor portal topology 2026-07-27 00:02:44 +02:00
CellTransitFindVisibleChildCellTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
CellTransitTests.cs T6 (BR-7) C4: straddle-only outside-add (A6.P5 widening DELETED) + #90 stickiness removed 2026-06-11 14:44:49 +02:00
CollisionExemptionTests.cs fix(physics): #299 — port retail's mover-side IsImpenetrable exemption branch 2026-08-03 20:13:05 +02:00
CollisionPrimitivesTests.cs feat(physics): port 9 collision primitives from acclient.exe (chunk_00530000.c) 2026-04-12 23:53:47 +02:00
CollisionShadowVerifierTests.cs perf(physics): cut production traversal to flat assets 2026-07-25 17:00:04 +02:00
CylSphereFamilyTests.cs fix #172: port the retail CCylSphere collision family (platform step-up) 2026-07-05 14:52:28 +02:00
DoorBugTrajectoryReplayTests.cs feat(net): port retail physics spawn and event timestamps 2026-07-14 00:22:17 +02:00
DoorCollisionApparatusTests.cs docs(physics): #165 diagnostic pass - rule out (a)/(b), stop at (c) 2026-07-30 10:01:11 +02:00
DoorSetupGfxObjInspectionTests.cs test(phys): A6.P4 door inside-out — locate cottage wall, identify corner-slide hypothesis 2026-05-25 08:34:52 +02:00
DoorwayMembershipReplayTests.cs test(core): commit doorway-threshold fixture for DoorwayMembershipReplayTests (portable) 2026-06-02 15:22:57 +02:00
EdgeSlideBackProbePrecipiceSlideTests.cs docs+test(physics): retire stale TS-1 row; file AD-53/AD-54 for its two acdream-only branches 2026-07-30 08:13:20 +02:00
EncumbranceSystemTests.cs feat(physics): Campaign P P1 - stat-coupled movement (burden/stamina/vitae) 2026-07-30 08:18:06 +02:00
EntityCollisionFlagsTests.cs fix(physics): TS-23 - plumb real PK/PKLite/Impenetrable mover flags 2026-07-30 09:52:55 +02:00
FindEnvCollisionsMultiCellTests.cs T6 (BR-7) C3: per-cell shadow architecture - flood registration, building channel, per-cell query; b3ce505 stopgap DELETED (closes #99) 2026-06-11 14:37:50 +02:00
FlatBspQueryDifferentialTests.cs fix(physics): traverse prepared indoor portal topology 2026-07-27 00:02:44 +02:00
FlatCollisionAssetBuilderTests.cs feat(physics): define deterministic flat collision assets 2026-07-25 14:52:47 +02:00
FlatCollisionInstalledDatTests.cs fix(physics): traverse prepared indoor portal topology 2026-07-27 00:02:44 +02:00
FramesStationaryFallTests.cs feat(#182): frames_stationary_fall round-trip in the kept transition internals (Slice 1b/1c) 2026-07-07 14:11:35 +02:00
GfxObjDumpRoundTripTests.cs feat(phys): A6.P3 #98 — GfxObj dump infrastructure (ACDREAM_DUMP_GFXOBJS) 2026-05-23 20:24:26 +02:00
HandleAllCollisionsTests.cs feat(vfx): port retail hidden and teleport presentation 2026-07-14 14:59:48 +02:00
HumanoidMotionTableRootMotionTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
IndoorContactPlaneRetentionTests.cs fix(physics): hold retail cell across inner retries 2026-07-31 12:40:50 +02:00
IndoorWalkablePlaneTests.cs Revert "fix(physics): remove per-frame indoor walkable-plane synthesis" 2026-05-20 09:17:24 +02:00
InitialPlacementOverlapTests.cs refactor(physics): delete legacy PhysicsEngine.Resolve/ResolvePlacement/HasCellSurface (C5a, AP-1/AD-1) 2026-08-05 14:11:31 +02:00
InterpolationManagerTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
InWorldLinkGuardTests.cs fix(R4-V5): remote transition links stripped by the detached-object guard - door swings snapped (adds register TS-40) 2026-07-03 15:10:16 +02:00
Issue98CellarUpReplayTests.cs test(phys): A6.P3 #98 Step 3 — deterministic replay harness 2026-05-23 15:25:40 +02:00
Issue108CellarAscentViewerReplayTests.cs #108-residual apparatus: vertical cellar-ascent viewer harness - membership/viewer layer EXONERATED 2026-06-12 22:05:06 +02:00
Issue133DungeonTeleportPrefixTests.cs refactor(physics): delete legacy PhysicsEngine.Resolve/ResolvePlacement/HasCellSurface (C5a, AP-1/AD-1) 2026-08-05 14:11:31 +02:00
Issue137CorridorSeamInspectionTests.cs fix #137 (window climb): the player's collision capsule topped out at 1.2m — head sphere 0.63m too low 2026-07-05 19:57:11 +02:00
Issue137CorridorSeamReplayTests.cs fix #137 (window climb): the player's collision capsule topped out at 1.2m — head sphere 0.63m too low 2026-07-05 19:57:11 +02:00
Issue137SlidingNormalLifecycleTests.cs fix #137 (corridor phantom resolved): slide_sphere opposing branch returns Collided; the 'wall' was synthetic 2026-07-05 18:27:40 +02:00
Issue147ArwicBuildingsDumpTests.cs fix(physics): #147 — far-town city/perimeter walls had no collision (portal-less buildings skipped) 2026-06-24 16:24:48 +02:00
Issue165RemoteWallPenetrationDiagnosticTests.cs docs(physics): #165 diagnostic pass - rule out (a)/(b), stop at (c) 2026-07-30 10:01:11 +02:00
Issue175HubDoorPoseInspectionTests.cs fix #175 (take 2): the cycle lookup used the bare style key — silent no-op 2026-07-05 17:10:19 +02:00
Issue180CorridorSweepHysteresisReplayTests.cs fix #180 (root): retail adjust_to_plane - PathClipped stops now resolve to the contact point, not a step boundary 2026-07-06 17:20:46 +02:00
Issue182CrowdJumpTests.cs feat(#182): route player collision response through the ported UpdateObjectInternal chain (Slice 2b/2c) 2026-07-07 14:25:47 +02:00
Issue185OutdoorStairsSeamReplayTests.cs test(physics): harden tight-gap collision controls 2026-07-31 12:17:35 +02:00
Issue186ConnectorCellGeometryInspectionTests.cs fix(#186): render side-cull mis-sided thin connectors — use dat PortalSide bit, not AABB centroid 2026-07-08 15:06:33 +02:00
Issue188FadingDoorMotionTableInspectionTests.cs feat(#188): fading-wall + sliding-door translucency; hold open past animation settle 2026-07-09 09:17:50 +02:00
Issue265SteepSlopeCaptureBisectTests.cs fix(physics): #265/#166 - stop zeroing grounded residual velocity, wire GroundNormal 2026-07-30 19:28:28 +02:00
Issue273HoltburgTightGapReplayTests.cs test(physics): harden tight-gap collision controls 2026-07-31 12:17:35 +02:00
Issue176177SeamTransitLagTests.cs docs+test #176/#177: 12 mechanisms refuted, apparatus shipped, probe protocol staged 2026-07-05 21:20:03 +02:00
LandDefsBlockOffsetTests.cs feat(physics #145): Slice 1 — Position/Frame types + LandDefs.GetBlockOffset (0x0043e630) 2026-06-21 10:30:20 +02:00
LandDefsTests.cs fix(phys): #106 — outdoor membership crosses landblock boundaries (LandDefs global-lcoord port) 2026-06-09 23:10:59 +02:00
LandingBounceSeedingTests.cs fix(physics): #265 landing-bounce family - retail check_contact seed + velocity-free landing commit 2026-07-30 20:12:06 +02:00
MissileCollisionRulesTests.cs feat(physics): port retail projectile integration 2026-07-14 11:43:11 +02:00
MotionCommandCatalogDatTests.cs feat(L.1b): dual MotionCommand catalog — AceModern runtime + Retail2013 conformance 2026-06-30 22:13:36 +02:00
MotionCommandCatalogTests.cs feat(L.1b): dual MotionCommand catalog — AceModern runtime + Retail2013 conformance 2026-06-30 22:13:36 +02:00
MotionCommandResolverTests.cs fix(anim): Phase L.1b route motion commands 2026-04-28 10:46:22 +02:00
MotionInterpreterDoMotionFamilyTests.cs feat(R3-W5): DoMotion family verbatim + the ONE DoInterpretedMotion + per-op zero-tick flush (closes J3, J4, J9, J14) 2026-07-03 08:57:33 +02:00
MotionInterpreterFunnelTests.cs feat(physics): R5-V4 behavioral slice — head stance dispatch (all mt) + #164 autonomy bit + mt-0 wire flags 2026-07-05 10:18:26 +02:00
MotionInterpreterGroundLifecycleTests.cs feat(R3-W4): ground transitions + lifecycle verbatim; K-fix18 DELETED (closes J8, J10, J11-shape, J12, J13, J18, J19) 2026-07-02 23:01:31 +02:00
MotionInterpreterJumpFamilyTests.cs feat(physics): P5 commit 1 - port ConstraintManager leash distance constants (#167) 2026-07-30 11:54:35 +02:00
MotionInterpreterPendingMotionsTests.cs feat(R3-W2): pending_motions lifecycle + the MotionDone consumer — the R2 seam lands (closes J1, J17) 2026-07-02 22:24:56 +02:00
MotionInterpreterTests.cs fix(physics): movement-parity fixes - adjusted catch-up cap, autorun retail semantics, AP-30 retired 2026-07-30 15:04:17 +02:00
MotionNormalizationTests.cs feat(R3-W6): LOCAL PLAYER UNIFICATION — edge-driven retail input; UpdatePlayerAnimation + the synthesis layer DELETED (closes J15) 2026-07-03 09:19:56 +02:00
MotionSequenceGateTests.cs feat(runtime): own initial create residence transaction 2026-08-01 19:35:08 +02:00
MotionVelocityPipelineTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
MovementSystemTests.cs fix #266: retail run-rate 800 branch is exact-equality sentinel, not a cap 2026-07-30 19:22:41 +02:00
NeighborhoodTerrainResidencyTests.cs fix(streaming): derive the portal reveal window from the live streaming radii (#280) 2026-08-05 23:54:59 +02:00
ObjectRangeMathTests.cs fix(items): use retail cylinder range for loot windows 2026-07-17 20:32:34 +02:00
ObstructionEtherealTests.cs fix(physics): port retail Layer-2 ethereal override -- open doors passable (pc:276961) 2026-06-24 21:03:08 +02:00
PhysicsBodyCellSyncTests.cs fix(portal): synchronize destination presentation state 2026-07-16 21:17:13 +02:00
PhysicsBodyTests.cs fix(physics): #265/#166 - stop zeroing grounded residual velocity, wire GroundNormal 2026-07-30 19:28:28 +02:00
PhysicsDataCacheProductionTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
PhysicsDiagnosticsTests.cs feat(core): Phase W Stage 0 — [cell-swept] diagnostic (swept vs static cell, no behavior change) 2026-06-02 14:08:00 +02:00
PhysicsEngineAdjustPositionTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
PhysicsEngineResidencyTests.cs refactor(streaming): extract landblock physics publisher 2026-07-21 21:13:22 +02:00
PhysicsEngineTests.cs refactor(physics): delete legacy PhysicsEngine.Resolve/ResolvePlacement/HasCellSurface (C5a, AP-1/AD-1) 2026-08-05 14:11:31 +02:00
PhysicsSetPositionTests.cs feat(runtime): seal dormant SetPosition evaluations 2026-08-01 11:31:58 +02:00
PhysicsStateFlagsTests.cs feat(net): port retail physics spawn and event timestamps 2026-07-14 00:22:17 +02:00
PlayerWeenieTests.cs fix(physics): TS-23 - plumb real PK/PKLite/Impenetrable mover flags 2026-07-30 09:52:55 +02:00
PortalInfoTests.cs feat(physics): Phase 2 — wire CellBSP + Portals into CellPhysics 2026-05-19 16:52:20 +02:00
PortalPlaneTests.cs feat(core): Phase B.3 — PortalPlane (plane math + crossing detection) 2026-04-12 18:17:48 +02:00
PositionFrameValidationTests.cs feat(net): port retail physics spawn and event timestamps 2026-07-14 00:22:17 +02:00
ProjectilePhysicsStepperTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
RemoteDeOverlapMechanismTests.cs fix(physics): #265 landing-bounce family - retail check_contact seed + velocity-free landing commit 2026-07-30 20:12:06 +02:00
RemoteMotionCombinerTests.cs refactor(physics): delete the redundant pre-sweep slope projection (AD-10 retired) 2026-08-06 09:35:22 +02:00
RemoteWeenieRunRateTests.cs fix(R4-V5): #160 remote run movetos in slow motion - remote interps had no weenie, so retail's run-rate chain never reached my_run_rate 2026-07-03 16:18:40 +02:00
RemoveCellsForLandblockTests.cs fix(physics): D8 — RemoveCellsForLandblock; cell transforms rebase per apply 2026-06-24 19:34:16 +02:00
ResolveCellIdTests.cs feat(physics): Phase 2 — BuildingPhysics + CheckBuildingTransit 2026-05-19 17:34:38 +02:00
ResolveResultOkTests.cs feat(A): wire SweepEye to the verbatim update_viewer (start-cell + fallbacks) 2026-06-05 11:10:32 +02:00
RestrictionObjPrevalenceInspectionTests.cs test(physics): P4 review - RestrictionObj prevalence inspection over the installed cell DAT 2026-07-30 11:01:10 +02:00
RetailEdgeResponseOrderingTests.cs fix(physics): restore retail path-6 collision response 2026-07-31 13:44:55 +02:00
RetailObjectActivityGateTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
RetailObjectManagerTailTests.cs fix(motion): restore retail object manager order 2026-07-19 21:40:14 +02:00
RetailObjectQuantumClockTests.cs feat(physics): port retail complete object frame pipeline 2026-07-20 09:10:31 +02:00
RetailObserverTraceConformanceTests.cs feat(physics): R5-V4 behavioral slice — head stance dispatch (all mt) + #164 autonomy bit + mt-0 wire flags 2026-07-05 10:18:26 +02:00
RetailPhysicsStateTransitionTests.cs feat(vfx): port retail hidden and teleport presentation 2026-07-14 14:59:48 +02:00
RetailStepDownPlacementTests.cs fix(physics): preserve retail step-down probe state 2026-07-31 13:24:25 +02:00
ServerControlledLocomotionTests.cs fix(combat): persist death and retarget on kill 2026-07-12 09:19:38 +02:00
ShadowObjectRegistryMultiPartTests.cs fix(physics): AP-152 — dispatch collision shapes BSP-first, at emission and at the cell flood 2026-08-06 14:51:36 +02:00
ShadowObjectRegistryTests.cs fix(physics): #297 — keep the PWD bitfield live so PK status reaches the client 2026-08-03 20:59:01 +02:00
ShadowRegistrationOverflowTests.cs fix(#185): landblock collision part-id uint32 overflow dropped stair steps 2026-07-08 10:07:50 +02:00
ShadowSetPositionCommitTests.cs fix(runtime): preserve hidden setposition collision ownership 2026-08-01 18:22:45 +02:00
ShadowShapeBuilderShapeSourceTests.cs fix(physics): AP-152 — dispatch collision shapes BSP-first, at emission and at the cell flood 2026-08-06 14:51:36 +02:00
ShadowShapeBuilderTests.cs fix(physics): AP-152 — dispatch collision shapes BSP-first, at emission and at the cell flood 2026-08-06 14:51:36 +02:00
SpawnPlacementSettlerTests.cs fix(physics): adopt the settle's resolved cell across an indoor seam (#276 remainder) 2026-08-06 06:37:46 +02:00
SphereCollisionFamilyTests.cs fix #182: port CSphere collision family — retail-faithful crowd wiggle (retires TS-45) 2026-07-07 11:25:56 +02:00
SphereIntersectsCellBspTests.cs fix(physics): #90 — sphere-overlap cell stickiness at doorway threshold 2026-05-20 20:30:36 +02:00
SphereIntersectsSphereConformanceTests.cs feat(physics): Task 2 — true sphere collision primitive (CSphere::intersects_sphere) 2026-06-24 19:08:53 +02:00
TeleportFarTownRunawayTests.cs fix(teleport D): cell-march preserves seed landblock id when no resident LB (no more lbX=0 outbound) 2026-06-22 13:38:48 +02:00
TerrainSurfaceTests.cs perf(physics): reuse reset-complete transition scratch 2026-07-25 14:37:02 +02:00
TransitionAllocationBaselineTests.cs perf(physics): reuse reset-complete transition scratch 2026-07-25 14:37:02 +02:00
TransitionCheckOtherCellsTests.cs chore(phys): A6.P3 #98 triage — revert neg-poly + bldg-check experiments 2026-05-23 15:11:49 +02:00
TransitionInsertIntoCellRetryTests.cs fix(physics): hold retail cell across inner retries 2026-07-31 12:40:50 +02:00
TransitionScratchDifferentialTests.cs refactor(physics): delete legacy PhysicsEngine.Resolve/ResolvePlacement/HasCellSurface (C5a, AP-1/AD-1) 2026-08-05 14:11:31 +02:00
TransitionScratchResetTests.cs perf(physics): reuse reset-complete transition scratch 2026-07-25 14:37:02 +02:00
TransitionTests.cs feat(physics): port retail projectile integration 2026-07-14 11:43:11 +02:00
TransitionTypesTests.cs refactor(physics): remove parsed collision graphs 2026-07-25 18:21:19 +02:00
Ts4Path6ConformanceTests.cs fix(physics): restore retail path-6 collision response 2026-07-31 13:44:55 +02:00
Ts4ProductionQuantumConformanceTests.cs fix(physics): validate retail cell containment roots 2026-07-31 14:48:26 +02:00
Ts4SteepRoofWedgeCaptureTests.cs test(physics): harden TS-4 production chronology 2026-07-31 14:08:51 +02:00
Ts46SphereListConformanceTests.cs fix(physics): TS-46 - seed the sweep from the Setup's own sphere list 2026-07-30 09:05:44 +02:00
WalkMissDiagnosticTests.cs feat(physics): WalkMissDiagnostic aggregator for ISSUES #83 probe spike 2026-05-20 10:31:39 +02:00
WeenieErrorCodeTableTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00