mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-14 00:23:50 +00:00
fix: trade accept dialog not showing (stale state from domain handler split)
GameHandler::hasPendingTradeRequest() and all trade getters were reading GameHandler's own tradeStatus_/tradeSlots_ which are never written after the PR #23 split. InventoryHandler owns the canonical trade state. Delegate all trade getters to InventoryHandler: - getTradeStatus, hasPendingTradeRequest, isTradeOpen, getTradePeerName - getMyTradeSlots, getPeerTradeSlots, getMyTradeGold, getPeerTradeGold Also fix InventoryHandler::isTradeOpen() to include Accepted state.
This commit is contained in:
parent
99ac31987f
commit
f37994cc1b
3 changed files with 39 additions and 10 deletions
|
|
@ -1307,17 +1307,16 @@ public:
|
|||
bool occupied = false;
|
||||
};
|
||||
|
||||
TradeStatus getTradeStatus() const { return tradeStatus_; }
|
||||
bool hasPendingTradeRequest() const { return tradeStatus_ == TradeStatus::PendingIncoming; }
|
||||
bool isTradeOpen() const { return tradeStatus_ == TradeStatus::Open || tradeStatus_ == TradeStatus::Accepted; }
|
||||
const std::string& getTradePeerName() const { return tradePeerName_; }
|
||||
TradeStatus getTradeStatus() const;
|
||||
bool hasPendingTradeRequest() const;
|
||||
bool isTradeOpen() const;
|
||||
const std::string& getTradePeerName() const;
|
||||
|
||||
// My trade slots (what I'm offering)
|
||||
const std::array<TradeSlot, TRADE_SLOT_COUNT>& getMyTradeSlots() const { return myTradeSlots_; }
|
||||
// Peer's trade slots (what they're offering)
|
||||
const std::array<TradeSlot, TRADE_SLOT_COUNT>& getPeerTradeSlots() const { return peerTradeSlots_; }
|
||||
uint64_t getMyTradeGold() const { return myTradeGold_; }
|
||||
uint64_t getPeerTradeGold() const { return peerTradeGold_; }
|
||||
const std::array<TradeSlot, TRADE_SLOT_COUNT>& getMyTradeSlots() const;
|
||||
const std::array<TradeSlot, TRADE_SLOT_COUNT>& getPeerTradeSlots() const;
|
||||
uint64_t getMyTradeGold() const;
|
||||
uint64_t getPeerTradeGold() const;
|
||||
|
||||
void acceptTradeRequest(); // respond to incoming SMSG_TRADE_STATUS(1) with CMSG_BEGIN_TRADE
|
||||
void declineTradeRequest(); // respond with CMSG_CANCEL_TRADE
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public:
|
|||
|
||||
TradeStatus getTradeStatus() const { return tradeStatus_; }
|
||||
bool hasPendingTradeRequest() const { return tradeStatus_ == TradeStatus::PendingIncoming; }
|
||||
bool isTradeOpen() const { return tradeStatus_ == TradeStatus::Open; }
|
||||
bool isTradeOpen() const { return tradeStatus_ == TradeStatus::Open || tradeStatus_ == TradeStatus::Accepted; }
|
||||
const std::string& getTradePeerName() const { return tradePeerName_; }
|
||||
const std::array<TradeSlot, TRADE_SLOT_COUNT>& getMyTradeSlots() const { return myTradeSlots_; }
|
||||
const std::array<TradeSlot, TRADE_SLOT_COUNT>& getPeerTradeSlots() const { return peerTradeSlots_; }
|
||||
|
|
|
|||
|
|
@ -5074,6 +5074,36 @@ const std::vector<GameHandler::EquipmentSetInfo>& GameHandler::getEquipmentSets(
|
|||
return empty;
|
||||
}
|
||||
|
||||
// Trade state delegation to InventoryHandler (which owns the canonical trade state)
|
||||
GameHandler::TradeStatus GameHandler::getTradeStatus() const {
|
||||
if (inventoryHandler_) return static_cast<TradeStatus>(inventoryHandler_->getTradeStatus());
|
||||
return tradeStatus_;
|
||||
}
|
||||
bool GameHandler::hasPendingTradeRequest() const {
|
||||
return inventoryHandler_ ? inventoryHandler_->hasPendingTradeRequest() : false;
|
||||
}
|
||||
bool GameHandler::isTradeOpen() const {
|
||||
return inventoryHandler_ ? inventoryHandler_->isTradeOpen() : false;
|
||||
}
|
||||
const std::string& GameHandler::getTradePeerName() const {
|
||||
if (inventoryHandler_) return inventoryHandler_->getTradePeerName();
|
||||
return tradePeerName_;
|
||||
}
|
||||
const std::array<GameHandler::TradeSlot, GameHandler::TRADE_SLOT_COUNT>& GameHandler::getMyTradeSlots() const {
|
||||
if (inventoryHandler_) return reinterpret_cast<const std::array<TradeSlot, TRADE_SLOT_COUNT>&>(inventoryHandler_->getMyTradeSlots());
|
||||
return myTradeSlots_;
|
||||
}
|
||||
const std::array<GameHandler::TradeSlot, GameHandler::TRADE_SLOT_COUNT>& GameHandler::getPeerTradeSlots() const {
|
||||
if (inventoryHandler_) return reinterpret_cast<const std::array<TradeSlot, TRADE_SLOT_COUNT>&>(inventoryHandler_->getPeerTradeSlots());
|
||||
return peerTradeSlots_;
|
||||
}
|
||||
uint64_t GameHandler::getMyTradeGold() const {
|
||||
return inventoryHandler_ ? inventoryHandler_->getMyTradeGold() : myTradeGold_;
|
||||
}
|
||||
uint64_t GameHandler::getPeerTradeGold() const {
|
||||
return inventoryHandler_ ? inventoryHandler_->getPeerTradeGold() : peerTradeGold_;
|
||||
}
|
||||
|
||||
bool GameHandler::supportsEquipmentSets() const {
|
||||
return inventoryHandler_ && inventoryHandler_->supportsEquipmentSets();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue