2023-09-30 15:05:12 +02:00
|
|
|
/*
|
|
|
|
* CMapOverview.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
|
|
|
|
|
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
class CMap;
|
|
|
|
VCMI_LIB_NAMESPACE_END
|
|
|
|
#include "CWindowObject.h"
|
|
|
|
#include "../../lib/filesystem/ResourcePath.h"
|
|
|
|
#include "../gui/InterfaceObjectConfigurable.h"
|
|
|
|
|
|
|
|
class CSlider;
|
|
|
|
class CLabel;
|
|
|
|
class CPicture;
|
|
|
|
class CFilledTexture;
|
|
|
|
class CTextBox;
|
|
|
|
class IImage;
|
|
|
|
class Canvas;
|
|
|
|
class TransparentFilledRectangle;
|
2024-01-21 16:48:36 +02:00
|
|
|
enum class ESelectionScreen : ui8;
|
2023-09-30 15:05:12 +02:00
|
|
|
|
2023-10-01 17:35:56 +02:00
|
|
|
class CMapOverview;
|
|
|
|
|
|
|
|
class CMapOverviewWidget : public InterfaceObjectConfigurable
|
2023-09-30 15:05:12 +02:00
|
|
|
{
|
2023-10-01 17:35:56 +02:00
|
|
|
CMapOverview& p;
|
2023-09-30 15:05:12 +02:00
|
|
|
|
2023-10-01 17:35:56 +02:00
|
|
|
bool drawPlayerElements;
|
|
|
|
std::vector<Canvas> minimaps;
|
2023-09-30 23:50:27 +02:00
|
|
|
|
2023-10-01 17:35:56 +02:00
|
|
|
Canvas createMinimapForLayer(std::unique_ptr<CMap> & map, int layer) const;
|
|
|
|
std::vector<Canvas> createMinimaps(ResourcePath resource) const;
|
|
|
|
std::vector<Canvas> createMinimaps(std::unique_ptr<CMap> & map) const;
|
2023-09-30 15:05:12 +02:00
|
|
|
|
2023-10-01 17:35:56 +02:00
|
|
|
std::shared_ptr<CPicture> buildDrawMinimap(const JsonNode & config) const;
|
|
|
|
public:
|
|
|
|
CMapOverviewWidget(CMapOverview& p);
|
|
|
|
};
|
2023-09-30 15:05:12 +02:00
|
|
|
|
2023-10-01 17:35:56 +02:00
|
|
|
class CMapOverview : public CWindowObject
|
|
|
|
{
|
2023-09-30 15:05:12 +02:00
|
|
|
std::shared_ptr<CMapOverviewWidget> widget;
|
|
|
|
|
|
|
|
public:
|
2023-09-30 17:56:51 +02:00
|
|
|
const ResourcePath resource;
|
|
|
|
const std::string mapName;
|
|
|
|
const std::string fileName;
|
|
|
|
const std::string date;
|
|
|
|
const ESelectionScreen tabType;
|
2023-09-30 17:14:22 +02:00
|
|
|
|
|
|
|
CMapOverview(std::string mapName, std::string fileName, std::string date, ResourcePath resource, ESelectionScreen tabType);
|
2023-10-01 00:46:29 +02:00
|
|
|
};
|