#pragma once #include "Merchant.h" class MerchantContainer; class MerchantRecipeList; class MerchantRecipe; class ClientSideMerchant : public Merchant, public std::enable_shared_from_this { private: MerchantContainer* container; std::shared_ptr source; MerchantRecipeList* currentOffers; std::wstring m_name; public: ClientSideMerchant(std::shared_ptr source, const std::wstring& name); ~ClientSideMerchant(); void createContainer(); // 4J Added Container* getContainer(); std::shared_ptr getTradingPlayer(); void setTradingPlayer(std::shared_ptr player); MerchantRecipeList* getOffers(std::shared_ptr forPlayer); void overrideOffers(MerchantRecipeList* recipeList); void notifyTrade(MerchantRecipe* activeRecipe); void notifyTradeUpdated(std::shared_ptr item); std::wstring getDisplayName(); };