Пример #1
0
void LootSettings::upgradeYaml(YAML::Node& yaml) {
    // Upgrade YAML settings' keys and values from those used in earlier
    // versions of LOOT.

  if (yaml["Debug Verbosity"] && !yaml["enableDebugLogging"])
    yaml["enableDebugLogging"] = yaml["Debug Verbosity"].as<unsigned int>() > 0;

  if (yaml["Update Masterlist"] && !yaml["updateMasterlist"])
    yaml["updateMasterlist"] = yaml["Update Masterlist"];

  if (yaml["Game"] && !yaml["game"])
    yaml["game"] = yaml["Game"];

  if (yaml["Language"] && !yaml["language"])
    yaml["language"] = yaml["Language"];

  if (yaml["Last Game"] && !yaml["lastGame"])
    yaml["lastGame"] = yaml["Last Game"];

  if (yaml["Games"] && !yaml["games"]) {
    yaml["games"] = yaml["Games"];

    for (auto node : yaml["games"]) {
      if (node["url"]) {
        node["repo"] = node["url"];
        node["branch"] = "master";  // It'll get updated to the correct default
      }
    }
  }

  if (yaml["games"]) {
    // Handle exception if YAML is invalid, eg. if an unrecognised
    // game type is used (which can happen if downgrading from a
    // later version of LOOT that supports more game types).
    // However, can't remove elements from a sequence Node, so have to
    // copy the valid elements into a new node then overwrite the
    // original.
    YAML::Node validGames;
    for (auto node : yaml["games"]) {
      try {
        GameSettings settings(node.as<GameSettings>());

        if (!yaml["Games"]) {
            // Update existing default branch, if the default
            // repositories are used.
          if (settings.RepoURL() == GameSettings(settings.Type()).RepoURL()
              && settings.IsRepoBranchOldDefault()) {
            settings.SetRepoBranch(GameSettings(settings.Type()).RepoBranch());
          }
        }

        validGames.push_back(settings);
      } catch (...) {}
    }
    yaml["games"] = validGames;
  }

  if (yaml["filters"])
    yaml["filters"].remove("contentFilter");
}
Пример #2
0
int main(int argc, char** argv)
{
	Game game(GameSettings(sf::VideoMode(800, 600, 32), "Temporal Mist"));
	
	game.Run();

	return 0;
}
void NetworkInterface::init() {
	networkAccessMutex = NULL;

	networkGameDataSynchCheckOkMap=false;
	networkGameDataSynchCheckOkTile=false;
	networkGameDataSynchCheckOkTech=false;
	receivedDataSynchCheck=false;

	gameSettings = GameSettings();

	networkPlayerFactionCRCMutex = NULL;
	for(unsigned int index = 0; index < (unsigned int)GameConstants::maxPlayers; ++index) {
		networkPlayerFactionCRC[index] = 0;
	}
}
Пример #4
0
LootSettings::LootSettings() :
  gameSettings_({
      GameSettings(GameType::tes4),
      GameSettings(GameType::tes5),
      GameSettings(GameType::tes5se),
      GameSettings(GameType::fo3),
      GameSettings(GameType::fonv),
      GameSettings(GameType::fo4),
      GameSettings(GameType::tes4, "Nehrim")
          .SetName("Nehrim - At Fate's Edge")
          .SetMaster("Nehrim.esm")
          .SetRegistryKey("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Nehrim - At Fate's Edge_is1\\InstallLocation"),
}),
enableDebugLogging_(false),
updateMasterlist_(true),
game_("auto"),
language_(Language(LanguageCode::english)),
lastGame_("auto") {}
Пример #5
0
    std::list<GameSettings> GetGameSettings(YAML::Node& settings) {
        list<GameSettings> games;

        if (settings["games"])
            games = settings["games"].as< list<GameSettings> >();

        if (find(games.begin(), games.end(), GameSettings(GameSettings::tes4)) == games.end())
            games.push_back(GameSettings(GameSettings::tes4));

        if (find(games.begin(), games.end(), GameSettings(GameSettings::tes5)) == games.end())
            games.push_back(GameSettings(GameSettings::tes5));

        if (find(games.begin(), games.end(), GameSettings(GameSettings::fo3)) == games.end())
            games.push_back(GameSettings(GameSettings::fo3));

        if (find(games.begin(), games.end(), GameSettings(GameSettings::fonv)) == games.end())
            games.push_back(GameSettings(GameSettings::fonv));

        // If there were any missing defaults, make sure they're in settings now.
        settings["games"] = games;

        return games;
    }
Пример #6
0
void LootSettings::load(YAML::Node& settings) {
  lock_guard<recursive_mutex> guard(mutex_);

  upgradeYaml(settings);

  if (settings["enableDebugLogging"])
    enableDebugLogging_ = settings["enableDebugLogging"].as<bool>();
  if (settings["updateMasterlist"])
    updateMasterlist_ = settings["updateMasterlist"].as<bool>();
  if (settings["game"])
    game_ = settings["game"].as<string>();
  if (settings["language"])
    language_ = Language(settings["language"].as<string>());
  if (settings["lastGame"])
    lastGame_ = settings["lastGame"].as<string>();
  if (settings["lastVersion"])
    lastVersion_ = settings["lastVersion"].as<string>();

  if (settings["window"]
      && settings["window"]["top"] && settings["window"]["bottom"]
      && settings["window"]["left"] && settings["window"]["right"]) {
    windowPosition_.top = settings["window"]["top"].as<long>();
    windowPosition_.bottom = settings["window"]["bottom"].as<long>();
    windowPosition_.left = settings["window"]["left"].as<long>();
    windowPosition_.right = settings["window"]["right"].as<long>();
  }

  if (settings["games"]) {
    gameSettings_ = settings["games"].as<std::vector<GameSettings>>();

    // If a base game isn't in the settings, add it.
    if (find(begin(gameSettings_), end(gameSettings_), GameSettings(GameType::tes4)) == end(gameSettings_))
      gameSettings_.push_back(GameSettings(GameType::tes4));

    if (find(begin(gameSettings_), end(gameSettings_), GameSettings(GameType::tes5)) == end(gameSettings_))
      gameSettings_.push_back(GameSettings(GameType::tes5));

    if (find(begin(gameSettings_), end(gameSettings_), GameSettings(GameType::tes5se)) == end(gameSettings_))
        gameSettings_.push_back(GameSettings(GameType::tes5se));

    if (find(begin(gameSettings_), end(gameSettings_), GameSettings(GameType::fo3)) == end(gameSettings_))
      gameSettings_.push_back(GameSettings(GameType::fo3));

    if (find(begin(gameSettings_), end(gameSettings_), GameSettings(GameType::fonv)) == end(gameSettings_))
      gameSettings_.push_back(GameSettings(GameType::fonv));

    if (find(begin(gameSettings_), end(gameSettings_), GameSettings(GameType::fo4)) == end(gameSettings_))
      gameSettings_.push_back(GameSettings(GameType::fo4));
  }

  if (settings["filters"])
    filters_ = settings["filters"].as<std::map<string, bool>>();
}
Пример #7
0
    bool LootState::AreSettingsValid() {
        // Acquire the lock for the scope of this method.
        base::AutoLock lock_scope(_lock);

        if (!_settings["language"]) {
            if (_settings["Language"]) {
                // Conversion from 0.6 key.
                _settings["language"] = _settings["Language"];
                _settings.remove("Language");
            }
            else
                return false;
        }
        if (!_settings["game"]) {
            if (_settings["Game"]) {
                // Conversion from 0.6 key.
                _settings["game"] = _settings["Game"];
                _settings.remove("Game");
            }
            else
                return false;
        }
        if (!_settings["lastGame"]) {
            if (_settings["Last Game"]) {
                // Conversion from 0.6 key.
                _settings["lastGame"] = _settings["Last Game"];
                _settings.remove("Last Game");
            }
            else
                return false;
        }
        if (!_settings["enableDebugLogging"]) {
            if (_settings["Debug Verbosity"]) {
                // Conversion from 0.6 key.
                _settings["enableDebugLogging"] = (_settings["Debug Verbosity"].as<unsigned int>() > 0);
                _settings.remove("Debug Verbosity");
            }
            else if (_settings["debugVerbosity"]) {
                // Conversion from 0.7 alpha key
                _settings["enableDebugLogging"] = (_settings["debugVerbosity"].as<unsigned int>() > 0);
                _settings.remove("debugVerbosity");
            }
            else
                return false;
        }
        if (!_settings["updateMasterlist"]) {
            if (_settings["Update Masterlist"]) {
                // Conversion from 0.6 key.
                _settings["updateMasterlist"] = _settings["Update Masterlist"];
                _settings.remove("Update Masterlist");
            }
            else
                return false;
        }
        if (!_settings["games"]) {
            if (_settings["Games"]) {
                // Conversion from 0.6 key.
                _settings["games"] = _settings["Games"];

                for (auto &node : _settings["games"]) {
                    if (node["url"]) {
                        node["repo"] = node["url"];
                        node["branch"] = "v0.7";
                        node.remove("url");
                    }
                }

                _settings.remove("Games");
            }
            else
                return false;
        }
        else {
            // Update existing default branches to new version default, if the
            // default repositories are used.
            for (auto &node : _settings["games"]) {
                GameSettings settings(node.as<GameSettings>());

                if (settings.RepoURL() == GameSettings(settings.Id()).RepoURL()
                    && settings.RepoBranch() == "master") {
                    node["branch"] = "v0.7";
                }
            }
        }

        if (_settings["windows"])
            _settings.remove("windows");

        return true;
    }