Skip to content

feat: direction-pair packets (gidx/npc_req/rsfi server, mall/npinfo client) — 17.4.0#452

Merged
erwan-joly merged 1 commit intomasterfrom
feat/direction-pair-packets
Apr 24, 2026
Merged

feat: direction-pair packets (gidx/npc_req/rsfi server, mall/npinfo client) — 17.4.0#452
erwan-joly merged 1 commit intomasterfrom
feat/direction-pair-packets

Conversation

@erwan-joly
Copy link
Copy Markdown
Contributor

Adds the opposite-side classes for headers the validator was flagging as Wrong tag.

Concrete set added: ServerPackets.Families.GidxPacket (+ sub-packet), ServerPackets.Npcs.NpcReqPacket, ServerPackets.Player.RsfiPacket, ClientPackets.UI.MallPacket, ClientPackets.Player.NpInfoPacket.

Deferred (need real RE work, not safe to guess): bpm/bpt server-side.

  • 114/114 tests

Validator flagged headers as "Wrong tag" when they were captured in a
direction the library only knew about from the opposite side. Add the
missing counterparts so those captures deserialise correctly and give
the server a schema to serialise through when it emits them.

- ServerPackets.Families.GidxPacket + GidxFamilySubPacket — server emits
  `gidx 1 <visualId> <serverId>.<familyId> <familyName> <level> <icons>`
  (or `-1` family-id when the character has none).
- ServerPackets.Npcs.NpcReqPacket — mirrors the client packet shape.
- ServerPackets.Player.RsfiPacket — mirrors the client packet shape.
- ClientPackets.UI.MallPacket — mirrors the server packet shape.
- ClientPackets.Player.NpInfoPacket — mirrors the server packet shape.

Deserializer dedup keeps "client wins" on duplicate headers, so runtime
behaviour for single-deserializer consumers (NosCore's in-game packet
handling) is unchanged. The validator uses two separate deserializers so
now sees each side's schema in the right dict.

Deferred to a follow-up: bpm/bpt server — complex list payloads that
need per-field RE work rather than a safe mirror.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@erwan-joly erwan-joly merged commit ef78e9e into master Apr 24, 2026
@erwan-joly erwan-joly deleted the feat/direction-pair-packets branch April 24, 2026 09:06
erwan-joly added a commit to NosCoreIO/NosCore.DeveloperTools that referenced this pull request Apr 24, 2026
Picks up:
- NosCoreIO/NosCore.Packets#450 (short-subpacket deserialize fix —
  inv/sayi/msgi/msgi2/mlobjlst/infoi/qslot/fish/qstlist/pinit)
- NosCoreIO/NosCore.Packets#451 (TwkPacket setters, PetskiPacket schema,
  QnamliPacket)
- NosCoreIO/NosCore.Packets#452 (direction-pair packets: gidx/npc_req/
  rsfi server-side, mall/npinfo client-side)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant