@@ -48,34 +48,22 @@ void MainWindow::initialize_tracker_world(Settings& settings,
4848 // Copy settings to modify them
4949 trackerSettings = settings;
5050
51- // Show or hide chart tracker buttons depending on settings
52- for (auto chartButton : ui->tracker_tab ->findChildren <TrackerChartButton*>())
53- {
54- // If charts are randomized, show all charts if either chart progression is enabled
55- if (trackerSettings.randomize_charts )
56- {
57- chartButton->setVisible (trackerSettings.progression_treasure_charts || trackerSettings.progression_triforce_charts );
58- }
59- // If charts aren't randomized, show chart only if their rerespective chart type is progression
60- else
61- {
62- chartButton->setVisible ((trackerSettings.progression_treasure_charts && chartButton->isForTreasureChart ()) ||
63- (trackerSettings.progression_triforce_charts && chartButton->isForTriforceChart ()));
64- }
65- }
66-
6751 selectedChartIsland = 0 ;
6852 if (settings.randomize_charts )
6953 {
7054 // With charts shuffled the required ones can be on any island
7155 // So for tracker purposes, treat all 49 charts as potentially progress
56+ // Also force all charts to be shown on the map
7257 if (trackerSettings.progression_treasure_charts || trackerSettings.progression_triforce_charts )
7358 {
7459 trackerSettings.progression_treasure_charts = true ;
7560 trackerSettings.progression_triforce_charts = true ;
61+ trackerPreferences.showCharts = true ;
7662 }
7763 }
7864
65+ tracker_update_chart_visibility ();
66+
7967 // Give 3 hearts so that all heart checks pass logic
8068 trackerSettings.starting_hcs = 3 ;
8169
@@ -459,6 +447,7 @@ bool MainWindow::autosave_current_tracker_preferences()
459447 pref[" show_nonprogress_locations" ] = trackerPreferences.showNonProgressLocations ;
460448 pref[" right_click_clear_all" ] = trackerPreferences.rightClickClearAll ;
461449 pref[" clear_all_includes_dependent_locations" ] = trackerPreferences.clearAllIncludesDependentLocations ;
450+ pref[" show_charts" ] = trackerPreferences.showCharts ;
462451 pref[" override_items_color" ] = trackerPreferences.overrideItemsColor ;
463452 pref[" override_locations_color" ] = trackerPreferences.overrideLocationsColor ;
464453 pref[" override_stats_color" ] = trackerPreferences.overrideStatsColor ;
@@ -562,6 +551,11 @@ void MainWindow::load_tracker_autosave()
562551 trackerPreferences.clearAllIncludesDependentLocations = pref[" clear_all_includes_dungeon_mail" ].as <bool >();
563552 }
564553
554+ if (pref[" show_charts" ])
555+ {
556+ trackerPreferences.showCharts = pref[" show_charts" ].as <bool >();
557+ }
558+
565559 if (!std::filesystem::exists (trackerPreferences.autosaveFilePath ))
566560 {
567561 // No autosave file, don't try to do anything
@@ -1980,3 +1974,15 @@ void MainWindow::tracker_set_required_boss(const QString& bossName, Qt::CheckSta
19801974
19811975 update_tracker ();
19821976}
1977+
1978+ void MainWindow::tracker_update_chart_visibility () {
1979+ // Show or hide chart buttons depending on the preference
1980+ for (auto chartButton : ui->tracker_tab ->findChildren <TrackerChartButton*>())
1981+ {
1982+ // If charts are randomized and any are progression, showCharts is forced to be true
1983+ // If charts aren't randomized, show chart only if their respective chart type is progression
1984+ chartButton->setVisible (trackerPreferences.showCharts ||
1985+ (trackerSettings.progression_treasure_charts && chartButton->isForTreasureChart ()) ||
1986+ (trackerSettings.progression_triforce_charts && chartButton->isForTriforceChart ()));
1987+ }
1988+ }
0 commit comments