From 6e7146714e0af2145c8c6cda3da4e2a54b469cb6 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 6 Mar 2025 14:09:02 -0500 Subject: Added setting for disabling player position tracking --- src/settings_dialog.cpp | 5 +++++ src/settings_dialog.h | 2 ++ src/tracker_config.cpp | 2 ++ src/tracker_config.h | 1 + src/tracker_frame.cpp | 5 +++++ src/tracker_panel.cpp | 11 +++++++---- 6 files changed, 22 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/settings_dialog.cpp b/src/settings_dialog.cpp index 0321b5a..fa7a82f 100644 --- a/src/settings_dialog.cpp +++ b/src/settings_dialog.cpp @@ -9,11 +9,13 @@ SettingsDialog::SettingsDialog() : wxDialog(nullptr, wxID_ANY, "Settings") { this, wxID_ANY, "Use two colors to show that an area has partial availability"); show_hunt_panels_box_ = new wxCheckBox(this, wxID_ANY, "Show hunt panels"); + track_position_box_ = new wxCheckBox(this, wxID_ANY, "Track player position"); should_check_for_updates_box_->SetValue( GetTrackerConfig().should_check_for_updates); hybrid_areas_box_->SetValue(GetTrackerConfig().hybrid_areas); show_hunt_panels_box_->SetValue(GetTrackerConfig().show_hunt_panels); + track_position_box_->SetValue(GetTrackerConfig().track_position); wxBoxSizer* form_sizer = new wxBoxSizer(wxVERTICAL); @@ -26,6 +28,9 @@ SettingsDialog::SettingsDialog() : wxDialog(nullptr, wxID_ANY, "Settings") { form_sizer->Add(show_hunt_panels_box_, wxSizerFlags().HorzBorder()); form_sizer->AddSpacer(2); + form_sizer->Add(track_position_box_, wxSizerFlags().HorzBorder()); + form_sizer->AddSpacer(2); + form_sizer->Add(CreateButtonSizer(wxOK | wxCANCEL), wxSizerFlags().Center()); SetSizerAndFit(form_sizer); diff --git a/src/settings_dialog.h b/src/settings_dialog.h index d7c1ed3..12f2439 100644 --- a/src/settings_dialog.h +++ b/src/settings_dialog.h @@ -16,11 +16,13 @@ class SettingsDialog : public wxDialog { } bool GetHybridAreas() const { return hybrid_areas_box_->GetValue(); } bool GetShowHuntPanels() const { return show_hunt_panels_box_->GetValue(); } + bool GetTrackPosition() const { return track_position_box_->GetValue(); } private: wxCheckBox* should_check_for_updates_box_; wxCheckBox* hybrid_areas_box_; wxCheckBox* show_hunt_panels_box_; + wxCheckBox* track_position_box_; }; #endif /* end of include guard: SETTINGS_DIALOG_H_D8635719 */ diff --git a/src/tracker_config.cpp b/src/tracker_config.cpp index 129dbbc..aeff669 100644 --- a/src/tracker_config.cpp +++ b/src/tracker_config.cpp @@ -29,6 +29,7 @@ void TrackerConfig::Load() { } ipc_address = file["ipc_address"].as(); + track_position = file["track_position"].as(); } catch (const std::exception&) { // It's fine if the file can't be loaded. } @@ -55,6 +56,7 @@ void TrackerConfig::Save() { } output["ipc_address"] = ipc_address; + output["track_position"] = track_position; std::ofstream filewriter(filename_); filewriter << output; diff --git a/src/tracker_config.h b/src/tracker_config.h index 9244b74..4e851dc 100644 --- a/src/tracker_config.h +++ b/src/tracker_config.h @@ -30,6 +30,7 @@ class TrackerConfig { bool show_hunt_panels = false; std::deque connection_history; std::string ipc_address; + bool track_position = true; private: std::string filename_; diff --git a/src/tracker_frame.cpp b/src/tracker_frame.cpp index bacef34..acc6343 100644 --- a/src/tracker_frame.cpp +++ b/src/tracker_frame.cpp @@ -232,6 +232,7 @@ void TrackerFrame::OnSettings(wxCommandEvent &event) { dlg.GetShouldCheckForUpdates(); GetTrackerConfig().hybrid_areas = dlg.GetHybridAreas(); GetTrackerConfig().show_hunt_panels = dlg.GetShowHuntPanels(); + GetTrackerConfig().track_position = dlg.GetTrackPosition(); GetTrackerConfig().Save(); UpdateIndicators(); @@ -321,6 +322,10 @@ void TrackerFrame::OnStatusChanged(wxCommandEvent &event) { } void TrackerFrame::OnRedrawPosition(wxCommandEvent &event) { + if (!GetTrackerConfig().track_position) { + return; + } + if (notebook_->GetSelection() == 0) { tracker_panel_->Refresh(); } else if (notebook_->GetSelection() == 2) { diff --git a/src/tracker_panel.cpp b/src/tracker_panel.cpp index 04b970c..3f51cd5 100644 --- a/src/tracker_panel.cpp +++ b/src/tracker_panel.cpp @@ -103,10 +103,13 @@ void TrackerPanel::OnPaint(wxPaintEvent &event) { dc.DrawBitmap(rendered_, 0, 0); std::optional> player_position; - if (IPC_IsConnected()) { - player_position = IPC_GetPlayerPosition(); - } else { - player_position = AP_GetPlayerPosition(); + if (GetTrackerConfig().track_position) + { + if (IPC_IsConnected()) { + player_position = IPC_GetPlayerPosition(); + } else { + player_position = AP_GetPlayerPosition(); + } } if (player_position.has_value()) { -- cgit 1.4.1