about summary refs log tree commit diff stats
path: root/vendor/valijson
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2023-10-19 10:34:21 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2023-10-19 10:34:21 -0400
commitdb3a486383d85a963073e87ebc16d7adb8453111 (patch)
treecf89624b4eae5ba4590f458088df10173d560ef8 /vendor/valijson
parent9dcbd3776ed24ba88b92c1a06256f238ef873bf0 (diff)
downloadlingo-ap-tracker-db3a486383d85a963073e87ebc16d7adb8453111.tar.gz
lingo-ap-tracker-db3a486383d85a963073e87ebc16d7adb8453111.tar.bz2
lingo-ap-tracker-db3a486383d85a963073e87ebc16d7adb8453111.zip
Released v0.5.4
Diffstat (limited to 'vendor/valijson')
0 files changed, 0 insertions, 0 deletions
gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#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;
}