This commit is contained in:
bart
2026-11-08 17:06:47 +01:00
parent 17901ce25c
commit 408541c7e0
46 changed files with 1474 additions and 1057 deletions
+17 -1
View File
@@ -1,4 +1,5 @@
#include "unitrenderer.h"
#include "pathfinder.h"
#include <cmath>
#include <vector>
@@ -92,7 +93,10 @@ void UnitRenderer::renderUnits(
const QMatrix4x4 &projection,
const QMatrix4x4 &vMatrix,
const QVector3D &lightDir,
int selectedUnitId)
int selectedUnitId,
int cityViewRadius,
int cityViewTileX,
int cityViewTileY)
{
if (!m_initialized || !m_program) return;
@@ -103,6 +107,12 @@ void UnitRenderer::renderUnits(
// 1. Render Cities (as stylized hexagonal / cylindrical city bastions)
for (const auto &c : cities) {
if (cityViewRadius >= 0) {
if (c.tileX != cityViewTileX || c.tileY != cityViewTileY) {
continue;
}
}
const Player *p = players.getPlayer(c.playerId);
QColor col = p ? p->primaryColor : QColor(100, 100, 100);
@@ -125,6 +135,12 @@ void UnitRenderer::renderUnits(
for (const auto &unit : units) {
if (unit->isDead()) continue;
if (cityViewRadius >= 0) {
if (Pathfinder::hexDistance(cityViewTileX, cityViewTileY, unit->tileX, unit->tileY) > cityViewRadius) {
continue;
}
}
const Player *player = players.getPlayer(unit->playerId);
QColor col = player ? player->primaryColor : QColor(200, 200, 200);