Commit Graph
5 Commits
Author SHA1 Message Date
OEVGandClaude Opus 5.5 f9ff62e2b0 Use specialty bags as temporary space during bag swaps
AssignSpecialtySlots() sends items that fit a free specialty-bag slot
(C_Item.GetItemFamily() on the item and on the bag) there before general
space is counted; own specialty bags first, supplemental storage only
when general space runs short. Bags themselves are never assigned. Used
by EmptyBag() and GetAdditionalSlotsNeededToSwapBag(), so the bag
tooltip's "slots needed" agrees. FillBag() only refills a new specialty
bag with items that fit it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwt5PZSpEDkXYzRuRhH
2026-11-02 05:25:17 +00:00
OEVGandClaude Opus 5.5 168b9b6358 Instant moves: don't skip items with charges
GetContainerItemInfo() reports charged items (Wizard Oil, wands...) with
a negative count, so ProcessMoveQueueBatched() treated the slot as empty
and dropped the move. Use the item link to decide whether the source has
an item, and move charged items as a stack of 1. This left one item in a
bank bag being swapped, so the new bag couldn't be placed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwt5PZSpEDkXYzRuRhH
2026-11-02 04:39:35 +00:00
OEVGandClaude Opus 5.5 1c2e1b1912 Fix bank bag swapping
- Put the new bag into bank bag slots with PutItemInBag(); EquipCursorItem()
  doesn't place bags there. Character bag slots keep EquipCursorItem() with
  PutItemInBag() as a fallback if the bag stays on the cursor.
- SwapBag() phase 2 waits up to ~3 s (12 x 0.25 s) for the old bag to be
  reported empty before placing the new one, since instant moves out of the
  bank can take a moment to be confirmed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwt5PZSpEDkXYzRuRhH
2026-11-02 04:27:28 +00:00
OEVGandClaude Opus 5.5 0742732e41 Instant restack and bag swapping with C_Container.MoveItem
MoveItems() uses ClassicAPI's C_Container.MoveItem() when available (and
no move equips a bag): each round sends every move whose slots are free
and unlocked, then waits for BAG_UPDATE_DELAYED (1 s fallback) before the
next round. Restack() queues exact amounts; EmptyBag()/FillBag() move
whole stacks. Locked slots are retried up to 5 times, stock-state
handling matches ProcessMoveQueue(), and the cursor-based queue remains
the fallback. Approach taken from brues-code/pfUI libs/libbagsort.lua.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019W3rwt5PZSpEDkXYzRuRhH
2026-11-02 03:49:40 +00:00
OEVG 896f46f0d1 Bagshui 1.6.4
enUS Localization Update Announcement / localization-update-announcement (push) Canceled after 0s
2026-10-30 15:55:43 +00:00