From ae119c1d8a864b2ba535ee35a713778eedc6acd4 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Sat, 31 Aug 2024 15:26:20 -0400 Subject: [PATCH] Display: make fog/shroud drawing buffer registration more readable --- src/display.cpp | 24 ++++++++---------------- src/display.hpp | 2 -- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/display.cpp b/src/display.cpp index 69b373943fc..4f80f1401ca 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -421,12 +421,6 @@ void display::fill_images_list(const std::string& prefix, std::vector& variants, const map_location &loc) -{ - //TODO use better noise function - return variants[std::abs(loc.x + loc.y) % variants.size()]; -} - void display::rebuild_all() { builder_->rebuild_all(); @@ -2717,17 +2711,15 @@ void display::draw_hex(const map_location& loc) // Apply shroud, fog and linger overlay - if(is_shrouded) { - // We apply void also on off-map tiles to shroud the half-hexes too + if(is_shrouded || fogged(loc)) { + // TODO: better noise function + const auto get_variant = [&loc](const std::vector& variants) -> const auto& { + return variants[std::abs(loc.x + loc.y) % variants.size()]; + }; + + const std::string& img = get_variant(is_shrouded ? shroud_images_ : fog_images_); drawing_buffer_add(drawing_layer::fog_shroud, loc, - [tex = image::get_texture(get_variant(shroud_images_, loc), image::TOD_COLORED)](const rect& dest) { - draw::blit(tex, dest); - }); - } else if(fogged(loc)) { - drawing_buffer_add(drawing_layer::fog_shroud, loc, - [tex = image::get_texture(get_variant(fog_images_, loc), image::TOD_COLORED)](const rect& dest) { - draw::blit(tex, dest); - }); + [tex = image::get_texture(img, image::TOD_COLORED)](const rect& dest) { draw::blit(tex, dest); }); } if(!is_shrouded) { diff --git a/src/display.hpp b/src/display.hpp index b9a2695391e..1eb3d922702 100644 --- a/src/display.hpp +++ b/src/display.hpp @@ -732,8 +732,6 @@ protected: static void fill_images_list(const std::string& prefix, std::vector& images); - static const std::string& get_variant(const std::vector& variants, const map_location &loc); - std::size_t currentTeam_; bool dont_show_all_; //const team *viewpoint_; /**