acdream/src/AcDream.Core.Net
Erik cbbfe4cd49 feat(D.5.4): PlayerDescription = membership manifest; drop WeenieClassId=ContainerType misuse
The old seeding block set WeenieClassId = inv.ContainerType (a 0/1/2
container-kind discriminator, not a weenie class id) and used MoveItem
for the equipped block. Replace both loops with RecordMembership calls:
inventory guids get a bare stub (WeenieClassId stays 0); equipped guids
get the equip slot set directly. Weenie data arrives via CreateObject /
ObjectTableWiring, not PlayerDescription.

New test PlayerDescription_SeedsMembership_NotWeenieClassIdMisuse proves:
(a) inv guid is registered, (b) WeenieClassId==0 not ContainerType, and
(c) equipped guid CurrentlyEquippedLocation is set to MeleeWeapon.
No existing tests pinned the old behavior; all 15 GameEventWiringTests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:38:54 +02:00
..
Cryptography feat(net): PacketHeader + PacketHeaderFlags + Hash32 checksum (Phase 4.2) 2026-04-11 14:17:37 +02:00
Messages feat(D.5.4): capture full item field set in CreateObject parser 2026-06-18 15:50:27 +02:00
Packets feat(net): Phase B.2 — MoveToState + AutonomousPosition message builders 2026-04-12 14:28:35 +02:00
AcDream.Core.Net.csproj feat(ui+net): #16 LiveCommandBus + WorldSession.Send{Talk,Tell,Channel} + SendChatCmd wiring 2026-04-25 19:27:22 +02:00
GameEventWiring.cs feat(D.5.4): PlayerDescription = membership manifest; drop WeenieClassId=ContainerType misuse 2026-06-18 16:38:54 +02:00
NetClient.cs feat(net+app): WorldSession class + GameWindow live-mode wiring (Phase 4.7e/f) 2026-04-11 15:25:41 +02:00
NOTICE.md feat(net): AcDream.Core.Net scaffold + ISAAC keystream (Phase 4.1) 2026-04-11 14:14:28 +02:00
ObjectTableWiring.cs feat(D.5.4): ObjectTableWiring (CreateObject=upsert, Delete=evict, 0x02CE) off GameWindow 2026-06-18 16:34:56 +02:00
WorldSession.cs feat(D.5.4): forward full item field set through WorldSession.EntitySpawn 2026-06-18 15:53:07 +02:00