mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
feat: server-synced bag sort, fix world map continent bounds, update docs
Inventory sort: clicking "Sort Bags" now generates CMSG_SWAP_ITEM packets to move items server-side (one swap per frame to avoid race conditions). Client-side sort runs immediately for visual preview; server swaps follow. New Inventory::computeSortSwaps() computes minimal swap sequence using selection-sort permutation on quality→itemId→stackCount comparator. World map: fix continent bounds derivation that used intersection (max/min) instead of union (min/max) of child zone bounds, causing continent views to display zoomed-in/clipped. Update README.md and docs/status.md with current features, release info, and known gaps (v1.8.2-preview, 664 opcode handlers, NPC voices, bag independence, CharSections auto-detect, quest GO server limitation).
This commit is contained in:
parent
62e99da1c2
commit
c18720f0f0
7 changed files with 145 additions and 22 deletions
|
|
@ -129,6 +129,18 @@ public:
|
|||
// Purely client-side: reorders the local inventory struct without server interaction.
|
||||
void sortBags();
|
||||
|
||||
// A single swap operation using WoW bag/slot addressing (for CMSG_SWAP_ITEM).
|
||||
struct SwapOp {
|
||||
uint8_t srcBag;
|
||||
uint8_t srcSlot;
|
||||
uint8_t dstBag;
|
||||
uint8_t dstSlot;
|
||||
};
|
||||
|
||||
// Compute the CMSG_SWAP_ITEM operations needed to reach sorted order.
|
||||
// Does NOT modify the inventory — caller is responsible for sending packets.
|
||||
std::vector<SwapOp> computeSortSwaps() const;
|
||||
|
||||
// Test data
|
||||
void populateTestItems();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue