1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

added var

This commit is contained in:
Laserlicht 2023-10-01 00:18:25 +02:00 committed by GitHub
parent 182d762135
commit 65c21064b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 25 deletions

View File

@ -148,32 +148,32 @@ CMapOverview::CMapOverviewWidget::CMapOverviewWidget(CMapOverview& parent):
InterfaceObjectConfigurable(), p(parent)
{
drawPlayerElements = p.tabType == ESelectionScreen::newGame;
renderImage = settings["lobby"]["mapPreview"].Bool();
// create minimaps
ResourcePath res = ResourcePath(p.resource.getName(), EResType::MAP);
std::unique_ptr<CMap> campaignMap = nullptr;
if(p.tabType != ESelectionScreen::newGame)
{
CLoadFile lf(*CResourceHandler::get()->getResourceName(ResourcePath(p.resource.getName(), EResType::SAVEGAME)), MINIMAL_SERIALIZATION_VERSION);
lf.checkMagicBytes(SAVEGAME_MAGIC);
std::unique_ptr<CMapHeader> mapHeader = std::make_unique<CMapHeader>();
StartInfo * startInfo;
lf >> *(mapHeader) >> startInfo;
if(startInfo->campState)
campaignMap = startInfo->campState->getMap(*startInfo->campState->currentScenario());
res = ResourcePath(startInfo->fileURI, EResType::MAP);
}
if(!campaignMap)
minimaps = createMinimaps(res);
else
minimaps = createMinimaps(campaignMap);
// config
const JsonNode config(JsonPath::builtin("config/widgets/mapOverview.json"));
if(settings["lobby"]["mapPreview"].Bool())
{
ResourcePath res = ResourcePath(p.resource.getName(), EResType::MAP);
std::unique_ptr<CMap> campaignMap = nullptr;
if(p.tabType != ESelectionScreen::newGame && config["variables"]["mapPreviewForSaves"].Bool())
{
CLoadFile lf(*CResourceHandler::get()->getResourceName(ResourcePath(p.resource.getName(), EResType::SAVEGAME)), MINIMAL_SERIALIZATION_VERSION);
lf.checkMagicBytes(SAVEGAME_MAGIC);
std::unique_ptr<CMapHeader> mapHeader = std::make_unique<CMapHeader>();
StartInfo * startInfo;
lf >> *(mapHeader) >> startInfo;
if(startInfo->campState)
campaignMap = startInfo->campState->getMap(*startInfo->campState->currentScenario());
res = ResourcePath(startInfo->fileURI, EResType::MAP);
}
if(!campaignMap)
minimaps = createMinimaps(res);
else
minimaps = createMinimaps(campaignMap);
}
REGISTER_BUILDER("drawMinimap", &CMapOverview::CMapOverviewWidget::buildDrawMinimap);
build(config);

View File

@ -33,7 +33,6 @@ class CMapOverview : public CWindowObject
CMapOverview& p;
bool drawPlayerElements;
bool renderImage;
std::vector<Canvas> minimaps;
Canvas createMinimapForLayer(std::unique_ptr<CMap> & map, int layer) const;

View File

@ -130,5 +130,10 @@
"text": "",
"rect": {"x": 10, "y": 334, "w": 408, "h": 35}
}
]
],
"variables":
{
"mapPreviewForSaves": true
}
}