about summary refs log tree commit diff
path: root/src/game
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-06-19 20:51:54 +0200
committeroy <Tom_Adams@web.de>2010-06-19 20:51:54 +0200
commite2c3f744b2b12c63f3563c79471446ec508929ef (patch)
treeb8e462c8854e2a48702e2ac322ae28c59e3965f7 /src/game
parentb790634a2dc273a506d3373a85e8b11ae9b043da (diff)
downloadzcatch-e2c3f744b2b12c63f3563c79471446ec508929ef.tar.gz
zcatch-e2c3f744b2b12c63f3563c79471446ec508929ef.zip
added commands to clear the consoles. Closes #104
Diffstat (limited to 'src/game')
-rw-r--r--src/game/client/components/console.cpp18
-rw-r--r--src/game/client/components/console.h4
2 files changed, 22 insertions, 0 deletions
diff --git a/src/game/client/components/console.cpp b/src/game/client/components/console.cpp
index 2916606b..5ffe1efd 100644
--- a/src/game/client/components/console.cpp
+++ b/src/game/client/components/console.cpp
@@ -61,6 +61,12 @@ void CGameConsole::CInstance::Init(CGameConsole *pGameConsole)
 	m_pGameConsole = pGameConsole;
 };
 
+void CGameConsole::CInstance::ClearBacklog()
+{
+	m_Backlog.Init();
+	m_BacklogActPage = 0;
+}
+
 void CGameConsole::CInstance::ExecuteLine(const char *pLine)
 {
 	if(m_Type == 0)
@@ -574,6 +580,16 @@ void CGameConsole::ConToggleRemoteConsole(IConsole::IResult *pResult, void *pUse
 	((CGameConsole *)pUserData)->Toggle(1);
 }
 
+void CGameConsole::ConClearLocalConsole(IConsole::IResult *pResult, void *pUserData)
+{
+	((CGameConsole *)pUserData)->m_LocalConsole.ClearBacklog();
+}
+
+void CGameConsole::ConClearRemoteConsole(IConsole::IResult *pResult, void *pUserData)
+{
+	((CGameConsole *)pUserData)->m_RemoteConsole.ClearBacklog();
+}
+
 void CGameConsole::ClientConsolePrintCallback(const char *pStr, void *pUserData)
 {
 	((CGameConsole *)pUserData)->m_LocalConsole.PrintLine(pStr);
@@ -600,6 +616,8 @@ void CGameConsole::OnConsoleInit()
 	
 	Console()->Register("toggle_local_console", "", CFGFLAG_CLIENT, ConToggleLocalConsole, this, "Toggle local console");
 	Console()->Register("toggle_remote_console", "", CFGFLAG_CLIENT, ConToggleRemoteConsole, this, "Toggle remote console");
+	Console()->Register("clear_local_console", "", CFGFLAG_CLIENT, ConClearLocalConsole, this, "Clear local console");
+	Console()->Register("clear_remote_console", "", CFGFLAG_CLIENT, ConClearRemoteConsole, this, "Clear remote console");
 }
 
 /*
diff --git a/src/game/client/components/console.h b/src/game/client/components/console.h
index 6d644001..68f3965d 100644
--- a/src/game/client/components/console.h
+++ b/src/game/client/components/console.h
@@ -31,6 +31,8 @@ class CGameConsole : public CComponent
 		CInstance(int t);
 		void Init(CGameConsole *pGameConsole);
 
+		void ClearBacklog();
+
 		void ExecuteLine(const char *pLine);
 		
 		void OnInput(IInput::CEvent Event);
@@ -59,6 +61,8 @@ class CGameConsole : public CComponent
 	static void ClientConsolePrintCallback(const char *pStr, void *pUserData);
 	static void ConToggleLocalConsole(IConsole::IResult *pResult, void *pUserData);
 	static void ConToggleRemoteConsole(IConsole::IResult *pResult, void *pUserData);
+	static void ConClearLocalConsole(IConsole::IResult *pResult, void *pUserData);
+	static void ConClearRemoteConsole(IConsole::IResult *pResult, void *pUserData);
 	
 public:
 	CGameConsole();