feat(render #53): wire EntityClassificationCache.InvalidateEntity at despawn
GameWindow.RemoveLiveEntityByServerGuid now invalidates the entity's cache entry next to the existing _animatedEntities.Remove(). Fires for DeleteObject (0xF747) and the dedup leg of ObjDescEvent (0xF625). Adds test #15 (despawn-respawn under reused id repopulates fresh) per spec section 7.5 — pins the audit's ObjDescEvent-as-despawn-respawn contract. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f7e38c214d
commit
1d1afcd562
2 changed files with 23 additions and 0 deletions
|
|
@ -2945,6 +2945,7 @@ public sealed class GameWindow : IDisposable
|
|||
_worldState.RemoveEntityByServerGuid(serverGuid);
|
||||
_worldGameState.RemoveById(existingEntity.Id);
|
||||
_animatedEntities.Remove(existingEntity.Id);
|
||||
_classificationCache.InvalidateEntity(existingEntity.Id);
|
||||
_physicsEngine.ShadowObjects.Deregister(existingEntity.Id);
|
||||
|
||||
// Dead-reckon state is keyed by SERVER guid (not local id) so we
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue