diff options
| author | oy <Tom_Adams@web.de> | 2010-10-09 13:27:21 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-10-09 13:27:21 +0200 |
| commit | 85b9c60158adee3aae6d02a9e5529ea57ed39611 (patch) | |
| tree | 874dc6a0cfe834c47fc084aa3b6cc1d88df665b9 /src/engine | |
| parent | 7ad4d3224c22216b1131df56172995be33d48405 (diff) | |
| download | zcatch-85b9c60158adee3aae6d02a9e5529ea57ed39611.tar.gz zcatch-85b9c60158adee3aae6d02a9e5529ea57ed39611.zip | |
added info in the demo browser by Choupom
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/demo.h | 1 | ||||
| -rw-r--r-- | src/engine/shared/demo.cpp | 19 | ||||
| -rw-r--r-- | src/engine/shared/demo.h | 1 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/engine/demo.h b/src/engine/demo.h index e0cad387..e901de36 100644 --- a/src/engine/demo.h +++ b/src/engine/demo.h @@ -25,6 +25,7 @@ public: virtual void Unpause() = 0; virtual const CInfo *BaseInfo() const = 0; virtual char *GetDemoName() = 0; + virtual bool GetDemoInfo(class IStorage *pStorage, const char *pFilename, int StorageType, char *pMap, int BufferSize) const = 0; }; class IDemoRecorder : public IInterface diff --git a/src/engine/shared/demo.cpp b/src/engine/shared/demo.cpp index 4ae4a4c5..5d82d1c0 100644 --- a/src/engine/shared/demo.cpp +++ b/src/engine/shared/demo.cpp @@ -742,3 +742,22 @@ char *CDemoPlayer::GetDemoName() return pDemoShortName; } +bool CDemoPlayer::GetDemoInfo(class IStorage *pStorage, const char *pFilename, int StorageType, char *pMap, int BufferSize) const +{ + IOHANDLE File = pStorage->OpenFile(pFilename, IOFLAG_READ, StorageType); + if(!File) + return false; + + CDemoHeader Header; + io_read(File, &Header, sizeof(Header)); + if(mem_comp(Header.m_aMarker, gs_aHeaderMarker, sizeof(gs_aHeaderMarker)) != 0) + { + io_close(File); + return false; + } + + str_copy(pMap, Header.m_aMap, BufferSize); + + io_close(File); + return true; +} diff --git a/src/engine/shared/demo.h b/src/engine/shared/demo.h index 9d510542..be643371 100644 --- a/src/engine/shared/demo.h +++ b/src/engine/shared/demo.h @@ -112,6 +112,7 @@ public: int SetPos(float Precent); const CInfo *BaseInfo() const { return &m_Info.m_Info; } char *GetDemoName(); + bool GetDemoInfo(class IStorage *pStorage, const char *pFilename, int StorageType, char *pMap, int BufferSize) const; int Update(); |