Erik
f02b995e4f
feat(physics): port retail projectile integration
...
Add a pure Core projectile driver for retail clock quanta, final-state acceleration, 50-unit velocity clamping, world-space angular integration, full-3D AlignPath, and oriented Setup-local sphere sweeps. Preserve exact success versus set_frame-only failure semantics, independent Contact/OnWalkable state, and full-cell identity across all landblock directions.
Port OBJECTINFO::missile_ignore with explicit weenie/creature metadata, remove the invented transition-step cap, retain PathClipped without arming PerfectClip, and keep authoritative target identity optional. Add malformed-shape/clock, thin-wall, terrain, target-exclusion, frame-spike, failure-state, and boundary conformance coverage.
Retire TS-2 and synchronize the architecture, milestones, roadmap, research oracle, and durable physics memory.
Co-Authored-By: Codex <noreply@openai.com>
2026-07-14 11:43:11 +02:00
Erik
6e8117741b
feat( #182 ): PhysicsBody fsf state + CachedVelocity; ungate small-velocity-zero (Slice 1a)
...
Verbatim UpdatePhysicsInternal (0x00510700): the small-velocity-zero
(<0.25 m/s) fires unconditionally, not gated on OnWalkable (the old acdream
divergence) — gravity re-accelerates the same frame via the unconditional
v += a*dt. Adds TransientStateFlags.Stationary{Fall,Stop,Stuck} (0x10/0x20/0x40)
for the fsf round-trip, plus PhysicsBody.FramesStationaryFall and the separate
CachedVelocity field (retail's two-velocity model — reporting/DR only, never fed
to the integrator). All 1536 physics tests green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 13:39:28 +02:00
Erik
6a5d8c1580
feat(core): port decompiled AC client physics — CollisionPrimitives + PhysicsBody
...
Two major C# ports from the decompiled retail AC client (acclient.exe):
1. CollisionPrimitives (9 functions, 26 tests):
- SphereIntersectsRay, RayPlaneIntersect, CalcNormal
- SphereIntersectsPoly, FindTimeOfCollision
- HitsWalkable, FindWalkableCollision
- SlideSphere, LandOnSphere
Ported from chunk_00530000.c functions FUN_005384e0 through FUN_0053a230.
Cross-referenced against ACE's Physics/ C# port for algorithm verification.
2. PhysicsBody (7 methods, 31 tests):
- update_object (top-level per-frame, sub-stepped at MaxQuantum=0.1)
- UpdatePhysicsInternal (Euler: pos += v*dt + 0.5*a*dt²)
- calc_acceleration (gravity=-9.8 when HasGravity)
- set_velocity (clamp to MaxVelocity=50)
- set_local_velocity (body→world via quaternion)
- set_on_walkable, calc_friction (ground normal + pow decay)
Ported from chunk_00510000.c/chunk_00500000.c.
Struct layout confirmed against ACE PhysicsObj field offsets.
367 total tests green (258 core + 109 net). 57 new tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 23:54:51 +02:00