diff options
Diffstat (limited to 'src/area_popup.cpp')
-rw-r--r-- | src/area_popup.cpp | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/src/area_popup.cpp b/src/area_popup.cpp index a8e6004..c95e492 100644 --- a/src/area_popup.cpp +++ b/src/area_popup.cpp | |||
@@ -50,21 +50,15 @@ void AreaPopup::ResetIndicators() { | |||
50 | for (int section_id = 0; section_id < map_area.locations.size(); | 50 | for (int section_id = 0; section_id < map_area.locations.size(); |
51 | section_id++) { | 51 | section_id++) { |
52 | const Location& location = map_area.locations.at(section_id); | 52 | const Location& location = map_area.locations.at(section_id); |
53 | if (IsLocationPostgame(location.ap_location_id)) { | 53 | if ((!AP_IsLocationVisible(location.classification) || |
54 | IsLocationPostgame(location.ap_location_id)) && | ||
55 | !(location.hunt && | ||
56 | GetTrackerConfig().visible_panels == TrackerConfig::kHUNT_PANELS) && | ||
57 | !(location.single_panel && | ||
58 | GetTrackerConfig().visible_panels == TrackerConfig::kALL_PANELS)) { | ||
54 | continue; | 59 | continue; |
55 | } | 60 | } |
56 | 61 | ||
57 | if (tracker_panel->IsPanelsMode()) { | ||
58 | if (!location.single_panel) { | ||
59 | continue; | ||
60 | } | ||
61 | } else { | ||
62 | if (!AP_IsLocationVisible(location.classification) && | ||
63 | !(location.hunt && GetTrackerConfig().show_hunt_panels)) { | ||
64 | continue; | ||
65 | } | ||
66 | } | ||
67 | |||
68 | indicators_.emplace_back(section_id, kLOCATION, acc_height); | 62 | indicators_.emplace_back(section_id, kLOCATION, acc_height); |
69 | 63 | ||
70 | wxSize item_extent = mem_dc.GetTextExtent(location.name); | 64 | wxSize item_extent = mem_dc.GetTextExtent(location.name); |
@@ -77,7 +71,7 @@ void AreaPopup::ResetIndicators() { | |||
77 | } | 71 | } |
78 | } | 72 | } |
79 | 73 | ||
80 | if (AP_IsPaintingShuffle() && !tracker_panel->IsPanelsMode()) { | 74 | if (AP_IsPaintingShuffle()) { |
81 | for (int painting_id : map_area.paintings) { | 75 | for (int painting_id : map_area.paintings) { |
82 | if (IsPaintingPostgame(painting_id)) { | 76 | if (IsPaintingPostgame(painting_id)) { |
83 | continue; | 77 | continue; |
@@ -135,17 +129,11 @@ void AreaPopup::UpdateIndicators() { | |||
135 | bool checked = false; | 129 | bool checked = false; |
136 | if (IsLocationWinCondition(location)) { | 130 | if (IsLocationWinCondition(location)) { |
137 | checked = AP_HasReachedGoal(); | 131 | checked = AP_HasReachedGoal(); |
138 | } else if (tracker_panel->IsPanelsMode()) { | ||
139 | const Panel& panel = GD_GetPanel(*location.single_panel); | ||
140 | if (panel.non_counting) { | ||
141 | checked = AP_HasCheckedGameLocation(location.ap_location_id); | ||
142 | } else { | ||
143 | checked = tracker_panel->GetSolvedPanels().contains(panel.nodepath); | ||
144 | } | ||
145 | } else { | 132 | } else { |
146 | checked = AP_HasCheckedGameLocation(location.ap_location_id) || | 133 | checked = AP_HasCheckedGameLocation(location.ap_location_id) || |
147 | (location.hunt && | 134 | (location.single_panel && |
148 | AP_HasCheckedHuntPanel(location.ap_location_id)); | 135 | AP_IsPanelSolved( |
136 | GD_GetPanel(*location.single_panel).solve_index)); | ||
149 | } | 137 | } |
150 | 138 | ||
151 | const wxBitmap* eye_ptr = checked ? checked_eye_ : unchecked_eye_; | 139 | const wxBitmap* eye_ptr = checked ? checked_eye_ : unchecked_eye_; |