mirror of
https://github.com/diasurgical/DevilutionX.git
synced 2026-10-12 02:13:06 +00:00
Now that the project targets C++23, use the standard library's std::expected instead of the vendored tl::expected polyfill: - tl::expected -> std::expected, tl::unexpected/tl::make_unexpected -> std::unexpected - .map()/.map_error() -> .transform()/.transform_error() - #include <expected.hpp> -> #include <expected>, grouped with std headers - Remove 3rdParty/tl/expected.hpp (the tl target remains for function_ref.hpp) Co-Authored-By: Claude Fable 5 <[email protected]>
50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
/**
|
|
* @file loadsave.h
|
|
*
|
|
* Interface of save game functionality.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <expected>
|
|
|
|
#include "pfile.h"
|
|
#include "player.h"
|
|
#include "utils/attributes.h"
|
|
|
|
namespace devilution {
|
|
|
|
extern DVL_API_FOR_TEST bool gbIsHellfireSaveGame;
|
|
extern DVL_API_FOR_TEST uint8_t giNumberOfLevels;
|
|
|
|
void RemoveInvalidItem(Item &pItem);
|
|
_item_indexes RemapItemIdxFromDiablo(_item_indexes i);
|
|
_item_indexes RemapItemIdxToDiablo(_item_indexes i);
|
|
_item_indexes RemapItemIdxFromSpawn(_item_indexes i);
|
|
_item_indexes RemapItemIdxToSpawn(_item_indexes i);
|
|
bool IsHeaderValid(uint32_t magicNumber);
|
|
void LoadHotkeys();
|
|
void LoadHeroItems(Player &player);
|
|
/**
|
|
* @brief Remove invalid inventory items from the inventory grid
|
|
* @param player The player to remove invalid items from
|
|
*/
|
|
void RemoveEmptyInventory(Player &player);
|
|
|
|
/**
|
|
* @brief Load game state
|
|
* @param firstflag Can be set to false if we are simply reloading the current game
|
|
*/
|
|
std::expected<void, std::string> LoadGame(bool firstflag);
|
|
void SaveHotkeys(SaveWriter &saveWriter, const Player &player);
|
|
void SaveHeroItems(SaveWriter &saveWriter, Player &player);
|
|
void SaveGameData(SaveWriter &saveWriter);
|
|
void SaveGame();
|
|
void SaveLevel(SaveWriter &saveWriter);
|
|
std::expected<void, std::string> LoadLevel();
|
|
std::expected<void, std::string> ConvertLevels(SaveWriter &saveWriter);
|
|
void LoadStash();
|
|
void SaveStash(SaveWriter &stashWriter);
|
|
|
|
} // namespace devilution
|