about summary refs log tree commit diff stats
path: root/src/area_popup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/area_popup.cpp')
-rw-r--r--src/area_popup.cpp32
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_;