/* * CExchangeWindow.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ #pragma once #include "CWindowWithArtifacts.h" #include "../widgets/CExchangeController.h" class CGarrisonSlot; class CExchangeWindow : public CStatusbarWindow, public IGarrisonHolder, public CWindowWithArtifacts { std::array, 2> titles; std::vector> primSkillImages;//shared for both heroes std::array>, 2> primSkillValues; std::array>, 2> secSkillIcons; std::array, 2> specImages; std::array, 2> expImages; std::array, 2> expValues; std::array, 2> manaImages; std::array, 2> manaValues; std::vector> primSkillAreas; std::array>, 2> secSkillAreas; std::array, 2> heroAreas; std::array, 2> specialtyAreas; std::array, 2> experienceAreas; std::array, 2> spellPointsAreas; std::array, 2> morale; std::array, 2> luck; std::shared_ptr quit; std::array, 2> questlogButton; std::shared_ptr garr; std::shared_ptr moveAllGarrButtonLeft; std::shared_ptr exchangeGarrButton; std::shared_ptr moveAllGarrButtonRight; std::shared_ptr moveArtifactsButtonLeft; std::shared_ptr exchangeArtifactsButton; std::shared_ptr moveArtifactsButtonRight; std::vector> moveStackLeftButtons; std::vector> moveStackRightButtons; std::shared_ptr backpackButtonLeft; std::shared_ptr backpackButtonRight; CExchangeController controller; public: std::array heroInst; std::array, 2> artifs; void updateGarrisons() override; bool holdsGarrison(const CArmedInstance * army) override; void questlog(int whichHero); //questlog button callback; whichHero: 0 - left, 1 - right void updateWidgets(); const CGarrisonSlot * getSelectedSlotID() const; CExchangeWindow(ObjectInstanceID hero1, ObjectInstanceID hero2, QueryID queryID); };