fix #203: preserve animation on appearance updates

This commit is contained in:
Erik 2026-07-11 00:25:29 +02:00
parent ff06aa3107
commit c7607f019c
9 changed files with 237 additions and 22 deletions

View file

@ -3,6 +3,13 @@
**Created:** 2026-05-10, opening move of the ISSUE #53 retry session.
**Purpose:** enumerate every code path that writes to `WorldEntity.MeshRefs` (the dispatcher's load-bearing per-entity input) and every adjacent state read by `WbDrawDispatcher.ClassifyBatches` / model-matrix composition, classify each as STATIC or DYNAMIC, and design the cache invalidation surface BEFORE touching renderer code.
> **Superseded detail (2026-07-11):** this historical audit described
> `0xF625 ObjDescEvent` as despawn + respawn. That was an acdream implementation
> artifact, not retail behavior, and caused animation state to freeze after
> equip/unequip. Appearance updates now mutate the existing entity and invalidate
> its classification cache in place, matching
> `CPhysicsObj::DoObjDescChangesFromDefault`. Real despawns remain unchanged.
This audit is the load-bearing prerequisite the prior Tier 1 attempt (commit `3639a6f`, reverted at `9b49009`) skipped. Cache design follows from the audit, not the other way around.
---