struct SettingsData: SerializationData
{
size_t WindowWidth = 400;
size_t WindowHeight = 800;
size_t ActiveResolutionIndex = 1;
size_t SoundEffectVolume = 100;
size_t MusicVolume = 100;
std::string ToString() const;
void Convert(const std::vector<std::string>& values);
};
class SettinsDataSerializer: public ISerializable
{
public:
static constexpr char Delimetr = '\n';
public:
std::filesystem::path GetDefaultFilePath() const;
std::filesystem::path GetFileExtension() const;
void Serialize(const std::filesystem::path& path,
const SerializationData* data) const override;
void Serialize(const SerializationData* data) const;
std::unique_ptr<SerializationData> Deserialize(
const std::filesystem::path& path) const override;
std::unique_ptr<SerializationData> Deserialize() const;
private:
bool IsPathRelevant(const std::filesystem::path& path) const;
};
auto start = high_resolution_clock::now();
auto lastStart = high_resolution_clock::now();
auto time = 0us;
do
{
std::this_thread::yield();
lastStart = high_resolution_clock::now();
time += duration_cast<microseconds>(lastStart - start);
start = lastStart;
//std::cout << duration_cast<milliseconds>(time) << std::endl;
}
while(time < Duration && !_isPaused);
UPD: Добавил еще