/* * CCampaignScreen.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 "../windows/CWindowObject.h" VCMI_LIB_NAMESPACE_BEGIN class JsonNode; VCMI_LIB_NAMESPACE_END class CLabel; class CPicture; class CButton; class VideoWidget; class CCampaignScreen : public CWindowObject { public: enum CampaignStatus {DEFAULT = 0, ENABLED, DISABLED, COMPLETED}; // the status of the campaign private: /// A button which plays a video when you move the mouse cursor over it class CCampaignButton : public CIntObject { private: std::shared_ptr hoverLabel; std::shared_ptr graphicsImage; std::shared_ptr graphicsCompleted; std::shared_ptr videoPlayer; CampaignStatus status; VideoPath videoPath; std::string campFile; // the filename/resourcename of the campaign std::string hoverText; std::string campaignSet; void clickReleased(const Point & cursorPosition) override; void hover(bool on) override; public: CCampaignButton(const JsonNode & config, const JsonNode & parentConfig, std::string campaignSet); }; std::string campaignSet; std::vector> campButtons; std::vector> images; std::shared_ptr buttonBack; std::shared_ptr createExitButton(const JsonNode & button); public: CCampaignScreen(const JsonNode & config, std::string campaignSet); void activate() override; };