Просмотр исходного кода
[11] fix(inventory): refuse to dismantle a locked item
Review: locked items can be dismantled.
Resolution: staging a dismantle refuses an item carrying the native
locked bit.
stage_item_dismantle checked ownership, placement and row resolution but
never read the item's state flags, so a locked item dismantled like any
other.
Names the native locked bit and refuses the staging when it is set. The
bit was confirmed against the installed build rather than assumed: three
observed lock and unlock transitions moved flags between 0x0 and 0x1 on
an unequipped item.
This is defence in depth rather than a repair of something reachable in
play. The Client gates the action itself and sends no opcode 402 for a
locked item, which the same capture confirmed, so only a request that
skips the Client could reach the staging. The Server should not depend
on the Client declining to ask.