@@ -252,6 +252,27 @@ base::Size clampedSectionSize(
252252 std::min (sectionSize.height , map.height () - sectionStart.y )};
253253}
254254
255+
256+ base::ScopeGuard
257+ applyBrightnessOption (renderer::Renderer* pRenderer, float brightness)
258+ {
259+ if (brightness < 1 .0f )
260+ {
261+ auto guard = renderer::saveState (pRenderer);
262+ pRenderer->setColorModulation (base::Color{
263+ base::roundTo<uint8_t >(255 .0f * brightness),
264+ base::roundTo<uint8_t >(255 .0f * brightness),
265+ base::roundTo<uint8_t >(255 .0f * brightness),
266+ 255 });
267+ return guard;
268+ }
269+ else
270+ {
271+ return base::ScopeGuard{[]() {
272+ }};
273+ }
274+ }
275+
255276} // namespace
256277
257278
@@ -990,10 +1011,10 @@ void GameWorld::drawMapAndSprites(
9901011 }
9911012 else
9921013 {
1014+ const auto saved =
1015+ applyBrightnessOption (mpRenderer, mpOptions->mDropTileBrightness );
9931016 state.mMapRenderer .renderBackdrop (
994- params.mInterpolatedCameraPosition ,
995- params.mViewportSize ,
996- mpOptions->mDropTileBrightness );
1017+ params.mInterpolatedCameraPosition , params.mViewportSize );
9971018 }
9981019 };
9991020
@@ -1010,25 +1031,32 @@ void GameWorld::drawMapAndSprites(
10101031 };
10111032
10121033 auto renderBackgroundLayers = [&]() {
1013- state.mMapRenderer .renderBackground (
1014- params.mRenderStartPosition ,
1015- params.mViewportSize ,
1016- mpOptions->mBackTileBrightness );
1017- state.mDynamicGeometrySystem .renderDynamicBackgroundSections (
1018- params.mRenderStartPosition , params.mViewportSize , interpolationFactor);
1034+ {
1035+ const auto saved =
1036+ applyBrightnessOption (mpRenderer, mpOptions->mBackTileBrightness );
1037+ state.mMapRenderer .renderBackground (
1038+ params.mRenderStartPosition , params.mViewportSize );
1039+ state.mDynamicGeometrySystem .renderDynamicBackgroundSections (
1040+ params.mRenderStartPosition , params.mViewportSize , interpolationFactor);
1041+ }
1042+
10191043 state.mSpriteRenderingSystem .renderBackgroundSprites (
10201044 mSpecialEffects , mpOptions->mBackSpriteBrightness );
10211045 state.mSpriteRenderingSystem .renderRegularSprites (
10221046 mSpecialEffects , mpOptions->mRegSpriteBrightness );
10231047 };
10241048
10251049 auto renderForegroundLayers = [&]() {
1026- state.mMapRenderer .renderForeground (
1027- params.mRenderStartPosition ,
1028- params.mViewportSize ,
1029- mpOptions->mForeTileBrightness );
1030- state.mDynamicGeometrySystem .renderDynamicForegroundSections (
1031- params.mRenderStartPosition , params.mViewportSize , interpolationFactor);
1050+ {
1051+ const auto saved =
1052+ applyBrightnessOption (mpRenderer, mpOptions->mForeTileBrightness );
1053+
1054+ state.mMapRenderer .renderForeground (
1055+ params.mRenderStartPosition , params.mViewportSize );
1056+ state.mDynamicGeometrySystem .renderDynamicForegroundSections (
1057+ params.mRenderStartPosition , params.mViewportSize , interpolationFactor);
1058+ }
1059+
10321060 state.mSpriteRenderingSystem .renderForegroundSprites (
10331061 mSpecialEffects , mpOptions->mForeSpriteBrightness );
10341062 renderTileDebris ();
0 commit comments