about summary refs log tree commit diff stats
path: root/src/tracker_panel.cpp
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-07-24 14:17:40 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2024-07-24 14:17:40 -0400
commite7503333e1a71fab0c97315ae0a8ac1388f10d14 (patch)
tree24aa1e3c49419f365cdd900f6e080f5fe72eca20 /src/tracker_panel.cpp
parent4ffb5871e4bc54ab6765fcd738835c295d1e2924 (diff)
downloadlingo-ap-tracker-e7503333e1a71fab0c97315ae0a8ac1388f10d14.tar.gz
lingo-ap-tracker-e7503333e1a71fab0c97315ae0a8ac1388f10d14.tar.bz2
lingo-ap-tracker-e7503333e1a71fab0c97315ae0a8ac1388f10d14.zip
Save analysis uses remote location for non-counting panels
Diffstat (limited to 'src/tracker_panel.cpp')
-rw-r--r--src/tracker_panel.cpp15
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) {