mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2025-12-17 01:18:25 +01:00
Merge branch 'master' into my_master
This commit is contained in:
parent
c8288d6bf3
commit
a318e04959
7 changed files with 636 additions and 42 deletions
|
|
@ -127,6 +127,21 @@ bool Local_Storage::update_save_filenames(std::string folder)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Local_Storage::load_json(std::string full_path, nlohmann::json& json)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Local_Storage::load_json_file(std::string folder, std::string const&file, nlohmann::json& json)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Local_Storage::write_json_file(std::string folder, std::string const&file, nlohmann::json const& json)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string> Local_Storage::get_filenames_path(std::string path)
|
||||
{
|
||||
return std::vector<std::string>();
|
||||
|
|
@ -680,4 +695,68 @@ bool Local_Storage::update_save_filenames(std::string folder)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Local_Storage::load_json(std::string full_path, nlohmann::json& json)
|
||||
{
|
||||
std::ifstream inventory_file(full_path);
|
||||
// If there is a file and we opened it
|
||||
if (inventory_file)
|
||||
{
|
||||
inventory_file.seekg(0, std::ios::end);
|
||||
size_t size = inventory_file.tellg();
|
||||
std::string buffer(size, '\0');
|
||||
inventory_file.seekg(0);
|
||||
// Read it entirely, if the .json file gets too big,
|
||||
// I should look into this and split reads into smaller parts.
|
||||
inventory_file.read(&buffer[0], size);
|
||||
inventory_file.close();
|
||||
|
||||
try {
|
||||
json = std::move(nlohmann::json::parse(buffer));
|
||||
PRINT_DEBUG("Loaded json \"%s\". Loaded %u items.\n", full_path.c_str(), json.size());
|
||||
return true;
|
||||
} catch (std::exception& e) {
|
||||
PRINT_DEBUG("Error while parsing \"%s\" json: %s\n", full_path.c_str(), e.what());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PRINT_DEBUG("Couldn't open file \"%s\" to read json\n", full_path.c_str());
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Local_Storage::load_json_file(std::string folder, std::string const&file, nlohmann::json& json)
|
||||
{
|
||||
if (!folder.empty() && folder.back() != *PATH_SEPARATOR) {
|
||||
folder.append(PATH_SEPARATOR);
|
||||
}
|
||||
std::string inv_path = std::move(save_directory + appid + folder);
|
||||
std::string full_path = inv_path + file;
|
||||
|
||||
return load_json(full_path, json);
|
||||
}
|
||||
|
||||
bool Local_Storage::write_json_file(std::string folder, std::string const&file, nlohmann::json const& json)
|
||||
{
|
||||
if (!folder.empty() && folder.back() != *PATH_SEPARATOR) {
|
||||
folder.append(PATH_SEPARATOR);
|
||||
}
|
||||
std::string inv_path = std::move(save_directory + appid + folder);
|
||||
std::string full_path = inv_path + file;
|
||||
|
||||
create_directory(inv_path);
|
||||
|
||||
std::ofstream inventory_file(full_path, std::ios::trunc | std::ios::out);
|
||||
if (inventory_file)
|
||||
{
|
||||
inventory_file << std::setw(2) << json;
|
||||
return true;
|
||||
}
|
||||
|
||||
PRINT_DEBUG("Couldn't open file \"%s\" to write json\n", full_path.c_str());
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue