3#ifndef ENGINE_SHARED_DEMO_H
4#define ENGINE_SHARED_DEMO_H
43 bool Write(
int Type,
const void *pData,
int Size);
50 int Start(
IStorage *pStorage,
const char *pFilename,
const char *pNetversion,
const char *pMap,
const SHA256_DIGEST &Sha256,
unsigned MapCrc,
const char *pType,
unsigned MapSize,
unsigned char *pMapData,
IOHANDLE MapFile,
DEMOFUNC_FILTER pfnFilter,
void *pUser);
143#if defined(CONF_VIDEORECORDER)
177 int Load(
IStorage *pStorage,
const char *pFilename,
int StorageType);
181 void Pause()
override;
183 void Stop(
const char *pErrorMessage =
"");
184 void SetSpeed(
float Speed)
override;
188 bool SeekTime(
float Seconds)
override;
190 bool SetPos(
int WantedTick)
override;
192 void GetDemoName(
char *pBuffer,
size_t BufferSize)
const override;
197 void Update(
bool RealTime =
true);
213 bool Slice(
const char *pDemo,
const char *pDst,
int StartTick,
int EndTick,
DEMOFUNC_FILTER pfnFilter,
void *pUser)
override;
CSnapshotDelta * m_pSnapshotDeltaSixup
Definition demo.h:209
CSnapshotDelta * m_pSnapshotDelta
Definition demo.h:208
bool Slice(const char *pDemo, const char *pDst, int StartTick, int EndTick, DEMOFUNC_FILTER pfnFilter, void *pUser) override
Definition demo.cpp:1376
virtual void Init(CSnapshotDelta *pSnapshotDelta, CSnapshotDelta *pSnapshotDeltaSixup, IStorage *pStorage)
Definition demo.cpp:1369
IStorage * m_pStorage
Definition demo.h:207
int64_t m_Filepos
Definition demo.h:110
int m_Tick
Definition demo.h:111
CKeyFrame(int64_t Filepos, int Tick)
Definition demo.h:113
CTimelineMarkers m_TimelineMarkers
Definition demo.h:81
bool m_LiveStateUpdating
Definition demo.h:96
float m_IntraTickSincePrev
Definition demo.h:93
CDemoHeader m_Header
Definition demo.h:80
int64_t m_LastScan
Definition demo.h:86
float m_IntraTick
Definition demo.h:92
int m_LiveStateFailedCount
Definition demo.h:97
IDemoPlayer::CInfo m_Info
Definition demo.h:83
int64_t m_CurrentTime
Definition demo.h:87
int64_t m_LastUpdate
Definition demo.h:85
int m_LiveStateUnchangedCount
Definition demo.h:98
int m_NextTick
Definition demo.h:89
int m_PreviousTick
Definition demo.h:90
float m_TickTime
Definition demo.h:94
virtual void OnDemoPlayerMessage(void *pData, int Size)=0
virtual ~IListener()=default
virtual void OnDemoPlayerSnapshot(void *pData, int Size)=0
bool SeekTick(ETickOffset TickOffset) override
Definition demo.cpp:970
const char * ErrorMessage() const override
Definition demo.h:195
int m_LastSnapshotDataSize
Definition demo.h:138
int Load(IStorage *pStorage, const char *pFilename, int StorageType)
Definition demo.cpp:779
std::vector< CKeyFrame > m_vKeyFrames
Definition demo.h:123
void SetListener(IListener *pListener)
Definition demo.cpp:481
bool m_Sixup
Definition demo.h:165
int m_SpeedIndex
Definition demo.h:125
void Play()
Definition demo.cpp:931
EScanFileResult ScanFile()
Definition demo.cpp:551
bool ExtractMap(IStorage *pStorage)
Definition demo.cpp:864
bool SeekTime(float Seconds) override
Definition demo.cpp:964
CDemoPlayer(CSnapshotDelta *pSnapshotDelta, CSnapshotDelta *pSnapshotDeltaSixup, bool UseVideo)
Definition demo.cpp:471
IListener * m_pListener
Definition demo.h:102
const char * Filename() const
Definition demo.h:194
IOHANDLE m_File
Definition demo.h:119
bool SeekPercent(float Percent) override
Definition demo.cpp:958
bool IsPlaying() const override
Definition demo.h:201
EReadChunkHeaderResult
Definition demo.h:148
@ CHUNKHEADER_SUCCESS
Definition demo.h:149
@ CHUNKHEADER_ERROR
Definition demo.h:150
@ CHUNKHEADER_EOF
Definition demo.h:151
void UpdateTimes()
Definition demo.cpp:1197
bool IsSixup() const
Definition demo.h:198
void AdjustSpeedIndex(int Offset) override
Definition demo.cpp:1077
bool m_UseVideo
Definition demo.h:142
CSnapshotDelta * m_pSnapshotDeltaSixup
Definition demo.h:140
CPlaybackInfo m_Info
Definition demo.h:127
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition demo.h:121
unsigned char * GetMapData(IStorage *pStorage)
Definition demo.cpp:846
unsigned char m_aCompressedSnapshotData[CSnapshot::MAX_SIZE]
Definition demo.h:128
CSnapshotDelta * m_pSnapshotDelta
Definition demo.h:139
void SetSpeedIndex(int SpeedIndex) override
Definition demo.cpp:1070
const CMapInfo * GetMapInfo() const
Definition demo.h:202
const CInfo * BaseInfo() const override
Definition demo.h:191
bool m_WasRecording
Definition demo.h:144
void Update(bool RealTime=true)
Definition demo.cpp:1082
const CPlaybackInfo * Info() const
Definition demo.h:200
void SetSpeed(float Speed) override
Definition demo.cpp:1065
EScanFileResult
Definition demo.h:156
CSnapshotBuffer m_LastSnapshotData
Definition demo.h:137
CSnapshotDelta * SnapshotDelta()
Definition demo.cpp:440
void Unpause() override
Definition demo.cpp:770
unsigned char m_aDecompressedSnapshotData[CSnapshot::MAX_SIZE]
Definition demo.h:129
char m_aErrorMessage[256]
Definition demo.h:122
EReadChunkHeaderResult ReadChunkHeader(int *pType, int *pSize, int *pTick)
Definition demo.cpp:486
int64_t Time()
Definition demo.cpp:904
int64_t m_MapOffset
Definition demo.h:120
void DoTick()
Definition demo.cpp:628
unsigned char m_aChunkData[CSnapshot::MAX_SIZE]
Definition demo.h:133
void Pause() override
Definition demo.cpp:761
void Stop(const char *pErrorMessage="")
Definition demo.cpp:1213
bool GetDemoInfo(IStorage *pStorage, const char *pFilename, int StorageType, CDemoHeader *pDemoHeader, CTimelineMarkers *pTimelineMarkers, CMapInfo *pMapInfo, IOHANDLE *pFile=nullptr, char *pErrorMessage=nullptr, size_t ErrorMessageSize=0) const override
Definition demo.cpp:1245
CSnapshotBuffer m_Snapshot
Definition demo.h:136
bool SetPos(int WantedTick) override
Definition demo.cpp:994
void Construct(CSnapshotDelta *pSnapshotDelta, CSnapshotDelta *pSnapshotDeltaSixup, bool UseVideo)
Definition demo.cpp:449
CMapInfo m_MapInfo
Definition demo.h:124
void GetDemoName(char *pBuffer, size_t BufferSize) const override
Definition demo.cpp:1240
TUpdateIntraTimesFunc m_UpdateIntraTimesFunc
Definition demo.h:104
int m_LastKeyFrame
Definition demo.h:28
bool IsRecording() const override
Definition demo.h:59
void WriteTickMarker(int Tick, bool Keyframe)
Definition demo.cpp:233
char m_aCurrentFilename[IO_MAX_PATH_LENGTH]
Definition demo.h:26
int Start(IStorage *pStorage, const char *pFilename, const char *pNetversion, const char *pMap, const SHA256_DIGEST &Sha256, unsigned MapCrc, const char *pType, unsigned MapSize, unsigned char *pMapData, IOHANDLE MapFile, DEMOFUNC_FILTER pfnFilter, void *pUser)
Definition demo.cpp:63
int Length() const override
Definition demo.h:63
void RecordSnapshot(int Tick, const void *pData, int Size)
Definition demo.cpp:312
bool m_NoMapData
Definition demo.h:37
IOHANDLE m_File
Definition demo.h:25
int m_LastTickMarker
Definition demo.h:27
CSnapshotBuffer m_LastSnapshotData
Definition demo.h:31
int Stop(IDemoRecorder::EStopMode Mode, const char *pTargetFilename="") override
Definition demo.cpp:357
CSnapshotDelta * m_pSnapshotDelta
Definition demo.h:32
IStorage * m_pStorage
Definition demo.h:23
int m_NumTimelineMarkers
Definition demo.h:34
bool Write(int Type, const void *pData, int Size)
Definition demo.cpp:258
int m_FirstTick
Definition demo.h:29
void RecordMessage(const void *pData, int Size)
Definition demo.cpp:345
void AddDemoMarker()
Definition demo.cpp:407
bool HasMarkers() const override
Definition demo.h:62
CDemoRecorder(CSnapshotDelta *pSnapshotDelta, bool NoMapData=false)
Definition demo.cpp:46
DEMOFUNC_FILTER m_pfnFilter
Definition demo.h:39
int m_aTimelineMarkers[MAX_TIMELINE_MARKERS]
Definition demo.h:35
const char * CurrentFilename() const override
Definition demo.h:60
void * m_pUser
Definition demo.h:40
@ MAX_SIZE
Definition snapshot.h:50
ETickOffset
Definition demo.h:84
EStopMode
Definition demo.h:111
bool(*) DEMOFUNC_FILTER(const void *pData, int DataSize, void *pUser)
Definition demo.h:27
@ MAX_TIMELINE_MARKERS
Definition demo.h:18
constexpr auto IO_MAX_PATH_LENGTH
Definition types.h:26
void * IOHANDLE
Definition logger.h:12
@ SERVER_TICK_SPEED
Definition protocol.h:81
@ SUCCESS
Definition save.h:29
std::function< void()> TUpdateIntraTimesFunc
Definition demo.h:16