1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Visual logger map texts

This commit is contained in:
Andrii Danylchenko
2024-08-06 22:29:04 +03:00
parent 9ffd6368d4
commit 47c77826c3
10 changed files with 228 additions and 66 deletions

View File

@@ -31,7 +31,8 @@
#include "../../lib/CConfigHandler.h"
#include "../../lib/mapObjects/CGHeroInstance.h"
#include "../../lib/logging/VisualLogger.h"
#include "MapOverlayLogVisualizer.h"
BasicMapView::~BasicMapView() = default;
@@ -58,50 +59,13 @@ BasicMapView::BasicMapView(const Point & offset, const Point & dimensions)
pos.h = dimensions.y;
}
class VisualLoggerRenderer : public IMapOverlayLogVisualizer
{
private:
Canvas & target;
std::shared_ptr<MapViewModel> model;
public:
VisualLoggerRenderer(Canvas & target, std::shared_ptr<MapViewModel> model) : target(target), model(model)
{
}
virtual void drawLine(int3 start, int3 end) override
{
const Point offset = Point(30, 30);
auto level = model->getLevel();
if(start.z != level || end.z != level)
return;
auto pStart = model->getTargetTileArea(start).topLeft();
auto pEnd = model->getTargetTileArea(end).topLeft();
auto viewPort = target.getRenderArea();
pStart.x += 3;
pEnd.x -= 3;
pStart += offset;
pEnd += offset;
if(viewPort.isInside(pStart) && viewPort.isInside(pEnd))
{
target.drawLine(pStart, pEnd, ColorRGBA(255, 255, 0), ColorRGBA(255, 0, 0));
}
}
};
void BasicMapView::render(Canvas & target, bool fullUpdate)
{
Canvas targetClipped(target, pos);
tilesCache->update(controller->getContext());
tilesCache->render(controller->getContext(), targetClipped, fullUpdate);
VisualLoggerRenderer r(target, model);
MapOverlayLogVisualizer r(target, model);
logVisual->visualize(r);
}