about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authorghost <ghost91@gmx.net>2010-09-06 21:36:39 +0200
committeroy <Tom_Adams@web.de>2010-09-07 19:12:11 +0200
commit56c4081da403728486bf747666c0f745567a0be6 (patch)
treeb0b1c51ccff5c3f3d9fbbce6503c0452ecb1b62f /src/engine
parentea25972e21f0d3ec599f7822981b40cf1b029e4a (diff)
downloadzcatch-56c4081da403728486bf747666c0f745567a0be6.tar.gz
zcatch-56c4081da403728486bf747666c0f745567a0be6.zip
Demo name is now showed while playing a demo file
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/demo.h1
-rw-r--r--src/engine/shared/demorec.cpp15
-rw-r--r--src/engine/shared/demorec.h2
3 files changed, 18 insertions, 0 deletions
diff --git a/src/engine/demo.h b/src/engine/demo.h
index 6abc9b2d..e0cad387 100644
--- a/src/engine/demo.h
+++ b/src/engine/demo.h
@@ -24,6 +24,7 @@ public:
 	virtual void Pause() = 0;
 	virtual void Unpause() = 0;
 	virtual const CInfo *BaseInfo() const = 0;
+	virtual char *GetDemoName() = 0;
 };
 
 class IDemoRecorder : public IInterface
diff --git a/src/engine/shared/demorec.cpp b/src/engine/shared/demorec.cpp
index 960634b1..0c2efd40 100644
--- a/src/engine/shared/demorec.cpp
+++ b/src/engine/shared/demorec.cpp
@@ -516,6 +516,9 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
 		return -1;
 	}
 	
+	// store the filename
+	str_copy(m_aFilename, pFilename, sizeof(m_aFilename));
+
 	// clear the playback info
 	mem_zero(&m_Info, sizeof(m_Info));
 	m_Info.m_Info.m_FirstTick = -1;
@@ -722,7 +725,19 @@ int CDemoPlayer::Stop()
 	m_File = 0;
 	mem_free(m_pKeyFrames);
 	m_pKeyFrames = 0;
+	str_copy(m_aFilename, "", sizeof(m_aFilename));
 	return 0;
 }
 
+char *CDemoPlayer::GetDemoName()
+{
+	// get the name of the demo without its path
+	char *pDemoShortName = &m_aFilename[0];
+	for(int i = 0; i < str_length(m_aFilename)-1; i++)
+	{
+		if(m_aFilename[i] == '/' || m_aFilename[i] == '\\')
+			pDemoShortName = &m_aFilename[i+1];
+	}
+	return pDemoShortName;
+}
 
diff --git a/src/engine/shared/demorec.h b/src/engine/shared/demorec.h
index cdf46e99..39e9ebdb 100644
--- a/src/engine/shared/demorec.h
+++ b/src/engine/shared/demorec.h
@@ -83,6 +83,7 @@ private:
 
 	class IConsole *m_pConsole;
 	IOHANDLE m_File;
+	char m_aFilename[256];
 	CKeyFrame *m_pKeyFrames;
 
 	CPlaybackInfo m_Info;
@@ -109,6 +110,7 @@ public:
 	void SetSpeed(float Speed);
 	int SetPos(float Precent);
 	const CInfo *BaseInfo() const { return &m_Info.m_Info; }
+	char *GetDemoName();
 	
 	int Update();