#pragma once #include "AbstractContainerMenu.h" class RepairMenu : public AbstractContainerMenu { friend class RepairResultSlot; private: static constexpr bool DEBUG_COST = false; public: static constexpr int INPUT_SLOT = 0; static constexpr int ADDITIONAL_SLOT = 1; static constexpr int RESULT_SLOT = 2; static constexpr int INV_SLOT_START = RESULT_SLOT + 1; static constexpr int INV_SLOT_END = INV_SLOT_START + (9*3); static constexpr int USE_ROW_SLOT_START = INV_SLOT_END; static constexpr int USE_ROW_SLOT_END = USE_ROW_SLOT_START + 9; public: static constexpr int DATA_TOTAL_COST = 0; private: shared_ptr resultSlots; // 4J Stu - anonymous class here now RepairContainer shared_ptr repairSlots; Level *level; int x, y, z; public: int cost; private: int repairItemCountCost; wstring itemName; shared_ptr player; public: using AbstractContainerMenu::slotsChanged; RepairMenu(shared_ptr inventory, Level *level, int xt, int yt, int zt, shared_ptr player); void slotsChanged(shared_ptr container); void createResult(); void sendData(int id, int value); void addSlotListener(ContainerListener *listener); void setData(int id, int value); void removed(shared_ptr player); bool stillValid(shared_ptr player); shared_ptr quickMoveStack(shared_ptr player, int slotIndex); void setItemName(const wstring &name); };