#pragma once #include "pch.h" #include #include "Shared/BaseControlDevice.h" class Emulator; class RewindData { private: vector _saveStateData; vector _uncompressedData; template void ProcessXorState(T& data, deque& prevStates, int32_t position); public: std::deque InputLogs[BaseControlDevice::PortCount]; int32_t FrameCount = 0; bool EndOfSegment = false; bool IsFullState = false; void GetStateData(stringstream& stateData, deque& prevStates, int32_t position); uint32_t GetStateSize() { return (uint32_t)_saveStateData.size(); } void LoadState(Emulator* emu, deque& prevStates, int32_t position = -1, bool sendNotification = true); void SaveState(Emulator* emu, deque& prevStates, int32_t position = -1); };