summary refs log tree commit diff stats
path: root/res/fmod/Metadata/Asset
Commit message (Expand)AuthorAgeFilesLines
* Added music and lamp popping soundStar Rauchenberger2022-03-111-0/+4
7ae226d91041389c2a47993f9c22f83d'>^
f2a4553 ^

4adfe42 ^

2adce17 ^
f2a4553 ^


2adce17 ^
f2a4553 ^
d0029a8 ^


d20664f ^

a9bc708 ^
4adfe42 ^
d0029a8 ^









f2a4553 ^






d0029a8 ^


d20664f ^

a9bc708 ^
4adfe42 ^
d0029a8 ^









f2a4553 ^
2adce17 ^
f2a4553 ^



2adce17 ^

f2a4553 ^

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

                           

                          

                  
                   


                            
                                                
 


                                                                           

                                                                               
                                                   
                                                           









                                                                    






                                             


                                                         

                                                                    
                                        
                                                









                                                               
 
                                      



                                   

                                                        

                   
#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>()
        });
      }
    }
  } 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);
  }

  std::ofstream filewriter(filename_);
  filewriter << output;
}

TrackerConfig& GetTrackerConfig() {
  static TrackerConfig* instance =
      new TrackerConfig(GetAbsolutePath("config.yaml"));
  return *instance;
}