blob: 129dbbcd24ae7001de519e550ff467189248d1a8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#include "tracker_config.h"
#include <yaml-cpp/yaml.h>
#include <fstream>
#include "global.h"
void TrackerConfig::Load() {
try {
YAML::Node file = YAML::LoadFile(filename_);
connection_details.ap_server = file["ap_server"].as<std::string>();
connection_details.ap_player = file["ap_player"].as<std::string>();
connection_details.ap_password = file["ap_password"].as<std::string>();
asked_to_check_for_updates = file["asked_to_check_for_updates"].as<bool>();
should_check_for_updates = file["should_check_for_updates"].as<bool>();
hybrid_areas = file["hybrid_areas"].as<bool>();
show_hunt_panels = file["show_hunt_panels"].as<bool>();
if (file["connection_history"]) {
for (const auto& connection : file["connection_history"]) {
connection_history.push_back(ConnectionDetails{
.ap_server = connection["ap_server"].as<std::string>(),
.ap_player = connection["ap_player"].as<std::string>(),
.ap_password = connection["ap_password"].as<std::string>()
});
}
}
ipc_address = file["ipc_address"].as<std::string>();
} catch (const std::exception&) {
// It's fine if the file can't be loaded.
}
}
void TrackerConfig::Save() {
YAML::Node output;
output["ap_server"] = connection_details.ap_server;
output["ap_player"] = connection_details.ap_player;
output["ap_password"] = connection_details.ap_password;
output["asked_to_check_for_updates"] = asked_to_check_for_updates;
output["should_check_for_updates"] = should_check_for_updates;
output["hybrid_areas"] = hybrid_areas;
output["show_hunt_panels"] = show_hunt_panels;
output.remove("connection_history");
for (const ConnectionDetails& details : connection_history) {
YAML::Node connection;
connection["ap_server"] = details.ap_server;
connection["ap_player"] = details.ap_player;
connection["ap_password"] = details.ap_password;
output["connection_history"].push_back(connection);
}
output["ipc_address"] = ipc_address;
std::ofstream filewriter(filename_);
filewriter << output;
}
TrackerConfig& GetTrackerConfig() {
static TrackerConfig* instance =
new TrackerConfig(GetAbsolutePath("config.yaml"));
return *instance;
}
|