# acdream — known bugs

Track visual, gameplay, and protocol bugs here. Close by moving to
the "Fixed" section with the commit hash that resolved it.

---

## Open

### BUG-001: Wrong cloth textures on characters
- **Observed:** 2026-04-13
- **Description:** Character clothing renders with incorrect textures.
  ObjDesc Phase 5 (AnimPartChange + TextureChanges + SubPalettes) is
  shipped but something is off — either a texture-swap ordering issue,
  a missing remapping step, or a palette application bug.
- **Repro:** Connect to ACE server, observe player character or NPCs.
- **Likely area:** `WorldEntity` ObjDesc application, `TextureCache`,
  or the CreaturePalette pipeline in `InstancedMeshRenderer`.
- **Phase:** Unassigned (investigate after rendering rebuild Step 5).

### BUG-005: Collision penetration — body enters objects before blocking
- **Observed:** 2026-04-14
- **Description:** Player walks partway into boulders, trees, and walls
  before collision is detected. Root cause: static overlap detection
  instead of swept-sphere. Retail uses FindTimeOfCollision to compute
  the exact contact point BEFORE moving the sphere. Our system moves
  first, detects overlap, then tries to push out.
- **Repro:** Walk into a boulder at any speed — body clips into it.
- **Fix required:** Restructure Transition loop to compute collision
  time before advancing position. Use CollisionPrimitives.FindTimeOfCollision
  (already ported from FUN_00539BA0).
- **Phase:** B.3 (collision completion)

### BUG-006: Getting stuck at object corners and tight spaces
- **Observed:** 2026-04-14
- **Description:** Player gets permanently stuck when walking into
  building corners or between objects. The SlideSphere crease projection
  degenerates when two collision normals are nearly parallel or the
  sphere is already penetrating.
- **Repro:** Run along a building wall and hit a corner.
- **Fix required:** Pre-move collision prevents penetration (fixes
  BUG-005), which eliminates the degenerate crease case. Also need
  stuck detection + push-out as a safety valve.
- **Phase:** B.3 (collision completion)

### BUG-007: Some trees don't have collision
- **Observed:** 2026-04-14
- **Description:** Some scenery trees/objects pass through despite
  CylSphere collision being implemented. Likely missing CylSphere
  data in their Setup, or the Setup isn't cached in PhysicsDataCache.
- **Repro:** Walk through certain trees near Holtburg.
- **Phase:** B.3 (collision completion)

---

## Fixed

### BUG-002: Jump not visible from retail client
- **Fixed:** 5634e71 — Jump packet (opcode 0xF61B) now sent to server.

### BUG-003: Facing direction mismatch with server
- **Fixed:** 6523c71 — YawToAcQuaternion converts from our yaw convention
  to AC heading (0=West, 90=North) using holtburger's from_heading formula.

### BUG-004: Run speed not verified working
- **Fixed:** bb7eced — Server doesn't echo UpdateMotion to sender. Compute
  RunRate locally via PlayerWeenie.InqRunRate (Run skill 200 → 9.5 m/s).
