Extract the shared preserved-note mapping into GetOtherNaKrulNotes.
Keep the ground pickup and inserted-inventory entry points separate because they still have different item lifetime and inventory compaction semantics.
Keep Na-Krul note auto-combine limited to player-facing inventory inserts so internal inventory reflow does not trigger partial side effects.\n\nTrack the inserted note through inventory compaction when combining, and add inventory regression tests for duplicate notes and sort behavior.
Fixes#8487
Torn notes were only combined when picked up from the ground via
CheckQuestItem(). When notes entered the inventory through other
paths (e.g. stash transfers, item swaps), the combine logic never
ran.
Add CheckSpecialInventoryItem() which checks whether all three torn
notes are present after an item is placed into InvList, and combines
them into the full note if so.
Called from:
- ChangeInvItem (empty slot path)
- ChangeInvItem (swap path)
- AutoPlaceItemInInventory (covers stash-to-inventory transfers)
Asio 1.11.0
- Conversion between IP address types, and conversion from string to
address, is now supported via the address_cast<>(), make_address(),
make_address_v4() and make_address_v6() free functions. The from_string(),
to_v4(), to_v6() and v4_mapped() member functions have been deprecated.