Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarWorldClient.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-03-27 16:07:17 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-03-27 16:07:17 +1100
commitf08ffe2162f9c3298f04174de7303bcbcdaf2a01 (patch)
tree2a13b67ffdeef540dcbd387b6848b561728ef466 /source/game/StarWorldClient.cpp
parentb50244ade5415f9f84db9d54995faacffe6fd691 (diff)
parent888cde79ef8f6d1b008e86207b41e1fd686c7636 (diff)
Merge branch 'light-test'
Diffstat (limited to 'source/game/StarWorldClient.cpp')
-rw-r--r--source/game/StarWorldClient.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/game/StarWorldClient.cpp b/source/game/StarWorldClient.cpp
index df69b94..535980b 100644
--- a/source/game/StarWorldClient.cpp
+++ b/source/game/StarWorldClient.cpp
@@ -1652,10 +1652,15 @@ void WorldClient::lightingCalc() {
for (auto const& light : lights) {
Vec2F position = m_geometry.nearestTo(Vec2F(m_lightingCalculator.calculationRegion().min()), light.position);
- if (light.pointLight)
- m_lightingCalculator.addPointLight(position, light.color, light.pointBeam, light.beamAngle, light.beamAmbience);
- else {
+ if (light.type == LightType::Spread)
m_lightingCalculator.addSpreadLight(position, light.color);
+ else {
+ if (light.type == LightType::PointAsSpread) {
+ // hybrid (used for auto-converted object lights) - 75% spread, 25% point (2nd is applied elsewhere)
+ m_lightingCalculator.addSpreadLight(position, light.color * 0.75f);
+ m_lightingCalculator.addPointLight(position, light.color, light.pointBeam, light.beamAngle, light.beamAmbience, true);
+ } else // fully additive point light
+ m_lightingCalculator.addPointLight(position, light.color, light.pointBeam, light.beamAngle, light.beamAmbience);
}
}