#pragma once #include "Merchant.h" class MerchantContainer; class MerchantRecipeList; class MerchantRecipe; class ClientSideMerchant : public Merchant, public enable_shared_from_this { private: MerchantContainer *container; std::shared_ptr source; MerchantRecipeList *currentOffers; int m_name; public: ClientSideMerchant(std::shared_ptr source, int 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); int getDisplayName(); };