mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2025-12-06 12:14:54 +01:00
Update 128 files
- /dll/base.cpp - /dll/base.h - /dll/common_includes.h - /dll/dll.cpp - /dll/dll.h - /dll/flat.cpp - /dll/local_storage.cpp - /dll/local_storage.h - /dll/net.proto - /dll/network.cpp - /dll/network.h - /dll/rtlgenrandom.c - /dll/rtlgenrandom.def - /dll/settings.cpp - /dll/settings.h - /dll/settings_parser.cpp - /dll/settings_parser.h - /dll/steam_HTMLsurface.h - /dll/steam_applist.cpp - /dll/steam_applist.h - /dll/steam_apps.cpp - /dll/steam_apps.h - /dll/steam_client.cpp - /dll/steam_client.h - /dll/steam_controller.h - /dll/steam_friends.h - /dll/steam_game_coordinator.h - /dll/steam_gamesearch.h - /dll/steam_gameserver.cpp - /dll/steam_gameserver.h - /dll/steam_gameserverstats.cpp - /dll/steam_gameserverstats.h - /dll/steam_http.cpp - /dll/steam_http.h - /dll/steam_inventory.h - /dll/steam_masterserver_updater.h - /dll/steam_matchmaking.h - /dll/steam_matchmaking_servers.cpp - /dll/steam_matchmaking_servers.h - /dll/steam_music.cpp - /dll/steam_music.h - /dll/steam_musicremote.cpp - /dll/steam_musicremote.h - /dll/steam_networking.h - /dll/steam_networking_messages.h - /dll/steam_networking_sockets.h - /dll/steam_networking_socketsserialized.h - /dll/steam_networking_utils.h - /dll/steam_parental.cpp - /dll/steam_parental.h - /dll/steam_parties.h - /dll/steam_remote_storage.h - /dll/steam_remoteplay.h - /dll/steam_screenshots.cpp - /dll/steam_screenshots.h - /dll/steam_tv.h - /dll/steam_ugc.h - /dll/steam_unified_messages.h - /dll/steam_user.h - /dll/steam_user_stats.h - /dll/steam_utils.h - /dll/steam_video.cpp - /dll/steam_video.h - /dll/wrap.cpp - /all/network.h - /all/network.cpp - /all/dll.cpp - /all/base.cpp - /all/base.h - /all/common_includes.h - /all/local_storage.cpp - /all/local_storage.h - /all/rtlgenrandom.c - /all/settings_parser.cpp - /all/settings.cpp - /all/steam_HTMLsurface.h - /all/settings_parser.h - /all/steam_client.h - /all/steam_apps.h - /all/steam_gameserver.h - /all/steam_client.cpp - /all/steam_applist.cpp - /all/steam_gameserver.cpp - /all/steam_controller.h - /all/dll.h - /all/steam_apps.cpp - /all/steam_friends.h - /all/steam_game_coordinator.h - /all/net.proto - /all/rtlgenrandom.def - /all/steam_matchmaking_servers.h - /all/settings.h - /all/steam_applist.h - /all/flat.cpp - /all/steam_gamesearch.h - /all/steam_music.cpp - /all/steam_remoteplay.h - /all/steam_screenshots.cpp - /all/steam_parental.cpp - /all/steam_musicremote.h - /all/steam_networking.h - /all/steam_networking_messages.h - /all/steam_networking_sockets.h - /all/steam_networking_socketsserialized.h - /all/steam_networking_utils.h - /all/steam_parental.h - /all/steam_parties.h - /all/steam_remote_storage.h - /all/steam_screenshots.h - /all/steam_tv.h - /all/steam_ugc.h - /all/steam_unified_messages.h - /all/steam_user.h - /all/steam_user_stats.h - /all/steam_http.cpp - /all/steam_http.h - /all/steam_inventory.h - /all/steam_masterserver_updater.h - /all/steam_matchmaking.h - /all/steam_matchmaking_servers.cpp - /all/steam_music.h - /all/steam_musicremote.cpp - /all/steam_utils.h - /all/steam_video.cpp - /all/wrap.cpp - /all/steam_gameserverstats.cpp - /all/steam_gameserverstats.h - /all/steam_video.h
This commit is contained in:
parent
1c0bdceaac
commit
25c00530f3
64 changed files with 0 additions and 0 deletions
226
dll/settings.cpp
226
dll/settings.cpp
|
|
@ -1,226 +0,0 @@
|
|||
/* Copyright (C) 2019 Mr Goldberg
|
||||
This file is part of the Goldberg Emulator
|
||||
|
||||
The Goldberg Emulator is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 3 of the License, or (at your option) any later version.
|
||||
|
||||
The Goldberg Emulator is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the Goldberg Emulator; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "settings.h"
|
||||
|
||||
|
||||
std::string Settings::sanitize(std::string name)
|
||||
{
|
||||
name.erase(std::remove(name.begin(), name.end(), '\n'), name.end());
|
||||
name.erase(std::remove(name.begin(), name.end(), '\r'), name.end());
|
||||
|
||||
for (auto& i : name)
|
||||
{
|
||||
if (!isprint(i))
|
||||
i = ' ';
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
Settings::Settings(CSteamID steam_id, CGameID game_id, std::string name, std::string language, bool offline)
|
||||
{
|
||||
this->steam_id = steam_id;
|
||||
this->game_id = game_id;
|
||||
this->name = sanitize(name);
|
||||
if (this->name.size() == 0) {
|
||||
this->name = " ";
|
||||
}
|
||||
|
||||
if (this->name.size() == 1) {
|
||||
this->name = this->name + " ";
|
||||
}
|
||||
|
||||
auto lang = sanitize(language);
|
||||
std::transform(lang.begin(), lang.end(), lang.begin(), ::tolower);
|
||||
lang.erase(std::remove(lang.begin(), lang.end(), ' '), lang.end());
|
||||
this->language = lang;
|
||||
this->lobby_id = k_steamIDNil;
|
||||
this->unlockAllDLCs = true;
|
||||
|
||||
this->offline = offline;
|
||||
this->create_unknown_leaderboards = true;
|
||||
}
|
||||
|
||||
CSteamID Settings::get_local_steam_id()
|
||||
{
|
||||
return steam_id;
|
||||
}
|
||||
|
||||
CGameID Settings::get_local_game_id()
|
||||
{
|
||||
return game_id;
|
||||
}
|
||||
|
||||
const char *Settings::get_local_name()
|
||||
{
|
||||
return name.c_str();
|
||||
}
|
||||
|
||||
const char *Settings::get_language()
|
||||
{
|
||||
return language.c_str();
|
||||
}
|
||||
|
||||
void Settings::set_local_name(char *name)
|
||||
{
|
||||
this->name = name;
|
||||
}
|
||||
|
||||
void Settings::set_language(char *language)
|
||||
{
|
||||
this->language = language;
|
||||
}
|
||||
|
||||
void Settings::set_game_id(CGameID game_id)
|
||||
{
|
||||
this->game_id = game_id;
|
||||
}
|
||||
|
||||
void Settings::set_lobby(CSteamID lobby_id)
|
||||
{
|
||||
this->lobby_id = lobby_id;
|
||||
}
|
||||
|
||||
CSteamID Settings::get_lobby()
|
||||
{
|
||||
return this->lobby_id;
|
||||
}
|
||||
|
||||
void Settings::unlockAllDLC(bool value)
|
||||
{
|
||||
this->unlockAllDLCs = value;
|
||||
}
|
||||
|
||||
void Settings::addDLC(AppId_t appID, std::string name, bool available)
|
||||
{
|
||||
auto f = std::find_if(DLCs.begin(), DLCs.end(), [&appID](DLC_entry const& item) { return item.appID == appID; });
|
||||
if (DLCs.end() != f) {
|
||||
f->name = name;
|
||||
f->available = available;
|
||||
return;
|
||||
}
|
||||
|
||||
DLC_entry new_entry;
|
||||
new_entry.appID = appID;
|
||||
new_entry.name = name;
|
||||
new_entry.available = available;
|
||||
DLCs.push_back(new_entry);
|
||||
}
|
||||
|
||||
void Settings::addMod(PublishedFileId_t id, std::string title, std::string path)
|
||||
{
|
||||
auto f = std::find_if(mods.begin(), mods.end(), [&id](Mod_entry const& item) { return item.id == id; });
|
||||
if (mods.end() != f) {
|
||||
f->title = title;
|
||||
f->path = path;
|
||||
return;
|
||||
}
|
||||
|
||||
Mod_entry new_entry;
|
||||
new_entry.id = id;
|
||||
new_entry.title = title;
|
||||
new_entry.path = path;
|
||||
mods.push_back(new_entry);
|
||||
}
|
||||
|
||||
Mod_entry Settings::getMod(PublishedFileId_t id)
|
||||
{
|
||||
auto f = std::find_if(mods.begin(), mods.end(), [&id](Mod_entry const& item) { return item.id == id; });
|
||||
if (mods.end() != f) {
|
||||
return *f;
|
||||
}
|
||||
|
||||
return Mod_entry();
|
||||
}
|
||||
|
||||
bool Settings::isModInstalled(PublishedFileId_t id)
|
||||
{
|
||||
auto f = std::find_if(mods.begin(), mods.end(), [&id](Mod_entry const& item) { return item.id == id; });
|
||||
if (mods.end() != f) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
std::set<PublishedFileId_t> Settings::modSet()
|
||||
{
|
||||
std::set<PublishedFileId_t> ret_set;
|
||||
|
||||
for (auto & m: mods) {
|
||||
ret_set.insert(m.id);
|
||||
}
|
||||
|
||||
return ret_set;
|
||||
}
|
||||
|
||||
unsigned int Settings::DLCCount()
|
||||
{
|
||||
return this->DLCs.size();
|
||||
}
|
||||
|
||||
bool Settings::hasDLC(AppId_t appID)
|
||||
{
|
||||
if (this->unlockAllDLCs) return true;
|
||||
|
||||
auto f = std::find_if(DLCs.begin(), DLCs.end(), [&appID](DLC_entry const& item) { return item.appID == appID; });
|
||||
if (DLCs.end() == f)
|
||||
return false;
|
||||
|
||||
return f->available;
|
||||
}
|
||||
|
||||
bool Settings::getDLC(unsigned int index, AppId_t &appID, bool &available, std::string &name)
|
||||
{
|
||||
if (index >= DLCs.size()) return false;
|
||||
|
||||
appID = DLCs[index].appID;
|
||||
available = DLCs[index].available;
|
||||
name = DLCs[index].name;
|
||||
return true;
|
||||
}
|
||||
|
||||
void Settings::setAppInstallPath(AppId_t appID, std::string path)
|
||||
{
|
||||
app_paths[appID] = path;
|
||||
}
|
||||
|
||||
std::string Settings::getAppInstallPath(AppId_t appID)
|
||||
{
|
||||
return app_paths[appID];
|
||||
}
|
||||
|
||||
void Settings::setLeaderboard(std::string leaderboard, enum ELeaderboardSortMethod sort_method, enum ELeaderboardDisplayType display_type)
|
||||
{
|
||||
Leaderboard_config leader;
|
||||
leader.sort_method = sort_method;
|
||||
leader.display_type = display_type;
|
||||
|
||||
leaderboards[leaderboard] = leader;
|
||||
}
|
||||
|
||||
int Settings::add_image(std::string data, uint32 width, uint32 height)
|
||||
{
|
||||
int last = images.size() + 1;
|
||||
struct Image_Data dt;
|
||||
dt.width = width;
|
||||
dt.height = height;
|
||||
dt.data = data;
|
||||
images[last] = dt;
|
||||
return last;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue