From 9d0f627cc94b5c99f4f3ae700b29cd456611fd1e Mon Sep 17 00:00:00 2001 From: Skarn Date: Thu, 22 Oct 2020 02:24:12 +0300 Subject: [PATCH] minimap generator: make draw settings actually take effect, fix uninitialized bool corrupting render --- src/noggit/World.cpp | 28 ++++++---------------------- src/noggit/ui/minimap_widget.hpp | 2 +- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/src/noggit/World.cpp b/src/noggit/World.cpp index 988d40d6..587fc239 100644 --- a/src/noggit/World.cpp +++ b/src/noggit/World.cpp @@ -1844,31 +1844,13 @@ void World::drawMinimap ( MapTile *tile mcnk_shader.uniform("model_view", model_view); mcnk_shader.uniform("projection", projection); - mcnk_shader.uniform("draw_lines", 0); - mcnk_shader.uniform("draw_hole_lines", 0); - mcnk_shader.uniform("draw_areaid_overlay", 0); - mcnk_shader.uniform("draw_terrain_height_contour", 0); - - mcnk_shader.uniform("draw_impassible_flag", 0); - - mcnk_shader.uniform("draw_wireframe", 0); - mcnk_shader.uniform("wireframe_type", _settings->value("wireframe/type", 0).toInt()); - mcnk_shader.uniform("wireframe_radius", _settings->value("wireframe/radius", 1.5f).toFloat()); - mcnk_shader.uniform("wireframe_width", _settings->value("wireframe/width", 1.f).toFloat()); - - // !\ todo store the color somewhere ? - QColor c = _settings->value("wireframe/color").value(); - math::vector_4d wireframe_color(c.redF(), c.greenF(), c.blueF(), c.alphaF()); - mcnk_shader.uniform("wireframe_color", wireframe_color); - - mcnk_shader.uniform("draw_fog", 0); + mcnk_shader.uniform("draw_lines", static_cast(settings->draw_adt_grid)); + mcnk_shader.uniform("draw_terrain_height_contour", static_cast(settings->draw_elevation)); mcnk_shader.uniform("light_dir", terrain_light_dir); mcnk_shader.uniform("diffuse_color", diffuse_color); mcnk_shader.uniform("ambient_color", ambient_color); - mcnk_shader.uniform("draw_cursor_circle", 0); - mcnk_shader.uniform("alphamap", 0); mcnk_shader.uniform("tex0", 1); mcnk_shader.uniform("tex1", 2); @@ -1914,6 +1896,7 @@ void World::drawMinimap ( MapTile *tile } // M2s / models + if (settings->draw_m2) { if (need_model_updates) @@ -1932,8 +1915,6 @@ void World::drawMinimap ( MapTile *tile m2_shader.uniform("tex1", 0); m2_shader.uniform("tex2", 1); - m2_shader.uniform("draw_fog", 0); - m2_shader.uniform("light_dir", light_dir); m2_shader.uniform("diffuse_color", diffuse_color); m2_shader.uniform("ambient_color", ambient_color); @@ -1951,6 +1932,7 @@ void World::drawMinimap ( MapTile *tile } // Setup liquid lighting + if (settings->draw_water) { opengl::scoped::use_program water_shader{_liquid_render_mini->shader_program()}; water_shader.uniform("animtime", static_cast(animtime) / 2880.f); @@ -1972,6 +1954,7 @@ void World::drawMinimap ( MapTile *tile } // WMOs / map objects + if (settings->draw_wmo) { opengl::scoped::use_program wmo_program{*_wmo_program_mini.get()}; @@ -2003,6 +1986,7 @@ void World::drawMinimap ( MapTile *tile } // Liquids + if (settings->draw_water) { _liquid_render_mini->force_texture_update(); diff --git a/src/noggit/ui/minimap_widget.hpp b/src/noggit/ui/minimap_widget.hpp index 5279f0c5..5886ea4f 100644 --- a/src/noggit/ui/minimap_widget.hpp +++ b/src/noggit/ui/minimap_widget.hpp @@ -68,7 +68,7 @@ namespace noggit bool _draw_camera; bool _draw_boundaries; - bool _use_selection; + bool _use_selection = false; bool _is_selecting = false; }; }