#pragma once #include "AbstractContainerMenu.h" #include "Slot.h" class HorseInventoryMenu; class HorseSaddleSlot : public Slot { public: HorseSaddleSlot(std::shared_ptr horseInventory); bool mayPlace(std::shared_ptr item); }; class HorseArmorSlot : public Slot { private: HorseInventoryMenu* m_parent; public: HorseArmorSlot(HorseInventoryMenu* parent, std::shared_ptr horseInventory); bool mayPlace(std::shared_ptr item); bool isActive(); }; class HorseInventoryMenu : public AbstractContainerMenu { friend class HorseArmorSlot; private: std::shared_ptr horseContainer; std::shared_ptr horse; public: HorseInventoryMenu(std::shared_ptr playerInventory, std::shared_ptr horseInventory, std::shared_ptr horse); bool stillValid(std::shared_ptr player); std::shared_ptr quickMoveStack(std::shared_ptr player, int slotIndex); void removed(std::shared_ptr player); std::shared_ptr getContainer(); };