Rename the local Na-Krul note helpers to a more consistent naming scheme.
This keeps behavior unchanged while making the shared predicates and transformations easier to follow in review.
Rename the inventory-insert combine helper to clarify that it runs after an item is inserted into InvList.
This keeps the separate flow-specific entry point but makes its purpose clearer during review.
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.