Skip to content

Bakragore “taint” icon is **not persisted** across relog #576

@servant777servant

Description

@servant777servant

Bakragore “taint” icon is not persisted across relog, because it’s sent as a special icon byte in protocol opcode 0xA2, and that value is never serialized to database (unlike persistent Conditions). After relog the client starts with no special icon, so unless the server re-sends 0xA2 with the special icon again on login, it disappears.

Additionally, calling sendIconBakragore() currently does:

  • msg:addU64(0) (normal icons bitset = 0)
  • msg:addByte(specialIcon)
    This can wipe/override other normal condition icons (poison/haste/etc.) because the packet overwrites the whole normal icons bitset.

Expected behavior

  • A player who has Bakragore taints stored server-side should get the Bakragore special icon again after relog.
  • Sending/updating the Bakragore special icon should not clear normal condition icons.

What’s needed in upstream

  1. Engine-side persistence for the Bakragore special icon value (the “special icon byte”), OR
  2. A reliable server-side hook on login that re-sends the special icon based on a persisted value, AND
  3. A protocol method to set special icon without resetting normal icons, e.g. server should send current normal icons bitset together with the special icon (or provide a dedicated message to only update the special icon).

Repro steps

  1. Set Bakragore taint icon (special icon) to any value (e.g. 4).
  2. Relog.
  3. Result: Bakragore special icon is gone.
  4. Also: if using a packet that sends normalIcons=0 together with special icon, other condition icons can disappear.

Root cause summary

  • Special icon is not backed by a persisted variable in the engine.
  • Protocol message 0xA2 overwrites normal icon bitset when setting special icon.
  • No automatic restore (re-send) of special icon on login by default.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions