about summary refs log tree commit diff
path: root/src/engine/shared/console.h
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-07-14 22:07:21 +0200
committeroy <Tom_Adams@web.de>2011-07-14 22:07:21 +0200
commit571dff6216562387ff020407c147fe8000177c15 (patch)
treeb189fba67ffa80658a93f580327188e6ac37c9d0 /src/engine/shared/console.h
parent7a129caf8d3ad7fe0f3f5a94bd2d9ffce08d4942 (diff)
downloadzcatch-571dff6216562387ff020407c147fe8000177c15.tar.gz
zcatch-571dff6216562387ff020407c147fe8000177c15.zip
made rcon auto completion serverside. Closes #97
Diffstat (limited to 'src/engine/shared/console.h')
-rw-r--r--src/engine/shared/console.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/engine/shared/console.h b/src/engine/shared/console.h
index 14c48581..b29f3202 100644
--- a/src/engine/shared/console.h
+++ b/src/engine/shared/console.h
@@ -13,9 +13,13 @@ class CConsole : public IConsole
 	public:
 		CCommand *m_pNext;
 		int m_Flags;
-		int m_AccessLevel;
+		bool m_Temp;
 		FCommandCallback m_pfnCallback;
 		void *m_pUserData;
+
+		virtual const CCommandInfo *NextCommandInfo(int AccessLevel, int FlagMask) const;
+
+		void SetAccessLevel(int AccessLevel) { m_AccessLevel = clamp(AccessLevel, (int)(ACCESS_LEVEL_ADMIN), (int)(ACCESS_LEVEL_MOD)); }
 	};
 
 
@@ -44,6 +48,9 @@ class CConsole : public IConsole
 	class IStorage *m_pStorage;
 	int m_AccessLevel;
 
+	CCommand *m_pRecycleList;
+	CHeap m_TempCommands;
+
 	static void Con_Chain(IResult *pResult, void *pUserData);
 	static void Con_Echo(IResult *pResult, void *pUserData);
 	static void Con_Exec(IResult *pResult, void *pUserData);
@@ -138,16 +145,21 @@ class CConsole : public IConsole
 		}
 	} m_ExecutionQueue;
 
+	void AddCommandSorted(CCommand *pCommand);
 	CCommand *FindCommand(const char *pName, int FlagMask);
 
 public:
 	CConsole(int FlagMask);
 
-	virtual CCommandInfo *GetCommandInfo(const char *pName, int FlagMask);
-	virtual void PossibleCommands(const char *pStr, int FlagMask, FPossibleCallback pfnCallback, void *pUser) ;
+	virtual const CCommandInfo *FirstCommandInfo(int AccessLevel, int Flagmask) const;
+	virtual const CCommandInfo *GetCommandInfo(const char *pName, int FlagMask, bool Temp);
+	virtual void PossibleCommands(const char *pStr, int FlagMask, bool Temp, FPossibleCallback pfnCallback, void *pUser);
 
 	virtual void ParseArguments(int NumArgs, const char **ppArguments);
 	virtual void Register(const char *pName, const char *pParams, int Flags, FCommandCallback pfnFunc, void *pUser, const char *pHelp);
+	virtual void RegisterTemp(const char *pName, const char *pParams, int Flags, const char *pHelp);
+	virtual void DeregisterTemp(const char *pName);
+	virtual void DeregisterTempAll();
 	virtual void Chain(const char *pName, FChainCommandCallback pfnChainFunc, void *pUser);
 	virtual void StoreCommands(bool Store);