diff options
Diffstat (limited to 'src/tracker_panel.cpp')
-rw-r--r-- | src/tracker_panel.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/tracker_panel.cpp b/src/tracker_panel.cpp index 42c3132..27e825a 100644 --- a/src/tracker_panel.cpp +++ b/src/tracker_panel.cpp | |||
@@ -180,7 +180,7 @@ void TrackerPanel::Redraw() { | |||
180 | for (AreaIndicator &area : areas_) { | 180 | for (AreaIndicator &area : areas_) { |
181 | const MapArea &map_area = GD_GetMapArea(area.area_id); | 181 | const MapArea &map_area = GD_GetMapArea(area.area_id); |
182 | if (panels_mode_) { | 182 | if (panels_mode_) { |
183 | area.active = map_area.panel; | 183 | area.active = map_area.has_single_panel; |
184 | } else if (!AP_IsLocationVisible(map_area.classification) && | 184 | } else if (!AP_IsLocationVisible(map_area.classification) && |
185 | !(map_area.hunt && GetTrackerConfig().show_hunt_panels) && | 185 | !(map_area.hunt && GetTrackerConfig().show_hunt_panels) && |
186 | !(AP_IsPaintingShuffle() && !map_area.paintings.empty())) { | 186 | !(AP_IsPaintingShuffle() && !map_area.paintings.empty())) { |
@@ -200,11 +200,14 @@ void TrackerPanel::Redraw() { | |||
200 | if (IsLocationWinCondition(section)) { | 200 | if (IsLocationWinCondition(section)) { |
201 | has_unchecked = !AP_HasReachedGoal(); | 201 | has_unchecked = !AP_HasReachedGoal(); |
202 | } else if (panels_mode_) { | 202 | } else if (panels_mode_) { |
203 | has_unchecked = section.panel && std::any_of( | 203 | if (section.single_panel) { |
204 | section.panels.begin(), section.panels.end(), [this](int panel_id) { | 204 | const Panel &panel = GD_GetPanel(*section.single_panel); |
205 | const Panel &panel = GD_GetPanel(panel_id); | 205 | if (panel.non_counting) { |
206 | return !solved_panels_.contains(panel.nodepath); | 206 | has_unchecked = !AP_HasCheckedGameLocation(section.ap_location_id); |
207 | }); | 207 | } else { |
208 | has_unchecked = !solved_panels_.contains(panel.nodepath); | ||
209 | } | ||
210 | } | ||
208 | } else if (AP_IsLocationVisible(section.classification)) { | 211 | } else if (AP_IsLocationVisible(section.classification)) { |
209 | has_unchecked = !AP_HasCheckedGameLocation(section.ap_location_id); | 212 | has_unchecked = !AP_HasCheckedGameLocation(section.ap_location_id); |
210 | } else if (section.hunt && GetTrackerConfig().show_hunt_panels) { | 213 | } else if (section.hunt && GetTrackerConfig().show_hunt_panels) { |