core/convar_sm_dota.h
changeset 3942 7aaa00382627
parent 3899 fd4ec50a0d6c
     1.1 --- a/core/convar_sm_dota.h	Wed Jul 10 20:46:00 2013 -0400
     1.2 +++ b/core/convar_sm_dota.h	Fri Jul 12 02:31:41 2013 -0400
     1.3 @@ -49,6 +49,22 @@
     1.4  class ConCommandBase;
     1.5  struct characterset_t;
     1.6  
     1.7 +struct CCommandContext
     1.8 +{
     1.9 +	CCommandContext( int index )
    1.10 +	{
    1.11 +		_index = index;
    1.12 +	}
    1.13 +	
    1.14 +	int Get() const
    1.15 +	{
    1.16 +		return _index;
    1.17 +	}
    1.18 +	
    1.19 +private:
    1.20 +	int _index;
    1.21 +};
    1.22 +
    1.23  
    1.24  
    1.25  //-----------------------------------------------------------------------------
    1.26 @@ -76,7 +92,7 @@
    1.27  // Called when a ConCommand needs to execute
    1.28  //-----------------------------------------------------------------------------
    1.29  typedef void ( *FnCommandCallbackV1_t )( void );
    1.30 -typedef void ( *FnCommandCallback_t )( void *pUnknown, const CCommand &command );
    1.31 +typedef void ( *FnCommandCallback_t )( const CCommandContext &context, const CCommand &command );
    1.32  
    1.33  #define COMMAND_COMPLETION_MAXITEMS		64
    1.34  #define COMMAND_COMPLETION_ITEM_LENGTH	64
    1.35 @@ -99,7 +115,7 @@
    1.36  class ICommandCallback2
    1.37  {
    1.38  public:
    1.39 -	virtual void CommandCallback( void *pUnknown, const CCommand &command ) = 0;
    1.40 +	virtual void CommandCallback( const CCommandContext &context, const CCommand &command ) = 0;
    1.41  };
    1.42  
    1.43  class ICommandCompletionCallback
    1.44 @@ -307,7 +323,7 @@
    1.45  	virtual bool CanAutoComplete( void );
    1.46  
    1.47  	// Invoke the function
    1.48 -	virtual void Dispatch( void *pUnknown, const CCommand &command );
    1.49 +	virtual void Dispatch( const CCommandContext &context, const CCommand &command );
    1.50  
    1.51  private:
    1.52  	// NOTE: To maintain backward compat, we have to be very careful:
    1.53 @@ -962,71 +978,71 @@
    1.54  // Purpose: Utility macros to quicky generate a simple console command
    1.55  //-----------------------------------------------------------------------------
    1.56  #define CON_COMMAND( name, description ) \
    1.57 -   static void name( void *pUnknown, const CCommand &args ); \
    1.58 +   static void name( const CCommandContext &context, const CCommand &args ); \
    1.59     static ConCommand name##_command( #name, name, description ); \
    1.60 -   static void name( void *pUnknown, const CCommand &args )
    1.61 +   static void name( const CCommandContext &context, const CCommand &args )
    1.62  
    1.63  #ifdef CLIENT_DLL
    1.64  	#define CON_COMMAND_SHARED( name, description ) \
    1.65 -		static void name( void *pUnknown, const CCommand &args ); \
    1.66 +		static void name( const CCommandContext &context, const CCommand &args ); \
    1.67  		static ConCommand name##_command_client( #name "_client", name, description ); \
    1.68 -		static void name( void *pUnknown, const CCommand &args )
    1.69 +		static void name( const CCommandContext &context, const CCommand &args )
    1.70  #else
    1.71  	#define CON_COMMAND_SHARED( name, description ) \
    1.72 -		static void name( void *pUnknown, const CCommand &args ); \
    1.73 +		static void name( const CCommandContext &context, const CCommand &args ); \
    1.74  		static ConCommand name##_command( #name, name, description ); \
    1.75 -		static void name( void *pUnknown, const CCommand &args )
    1.76 +		static void name( const CCommandContext &context, const CCommand &args )
    1.77  #endif
    1.78  
    1.79  
    1.80  #define CON_COMMAND_F( name, description, flags ) \
    1.81 -	static void name( void *pUnknown, const CCommand &args ); \
    1.82 +	static void name( const CCommandContext &context, const CCommand &args ); \
    1.83  	static ConCommand name##_command( #name, name, description, flags ); \
    1.84 -	static void name( void *pUnknown, const CCommand &args )
    1.85 +	static void name( const CCommandContext &context, const CCommand &args )
    1.86  
    1.87  #ifdef CLIENT_DLL
    1.88  	#define CON_COMMAND_F_SHARED( name, description, flags ) \
    1.89 -		static void name( void *pUnknown, const CCommand &args ); \
    1.90 +		static void name( const CCommandContext &context, const CCommand &args ); \
    1.91  		static ConCommand name##_command_client( #name "_client", name, description, flags ); \
    1.92 -		static void name( void *pUnknown, const CCommand &args )
    1.93 +		static void name( const CCommandContext &context, const CCommand &args )
    1.94  #else
    1.95  	#define CON_COMMAND_F_SHARED( name, description, flags ) \
    1.96 -		static void name( void *pUnknown, const CCommand &args ); \
    1.97 +		static void name( const CCommandContext &context, const CCommand &args ); \
    1.98  		static ConCommand name##_command( #name, name, description, flags ); \
    1.99 -		static void name( void *pUnknown, const CCommand &args )
   1.100 +		static void name( const CCommandContext &context, const CCommand &args )
   1.101  #endif
   1.102  
   1.103  
   1.104  #define CON_COMMAND_F_COMPLETION( name, description, flags, completion ) \
   1.105 -	static void name( void *pUnknown, const CCommand &args ); \
   1.106 +	static void name( const CCommandContext &context, const CCommand &args ); \
   1.107  	static ConCommand name##_command( #name, name, description, flags, completion ); \
   1.108 -	static void name( void *pUnknown, const CCommand &args )
   1.109 +	static void name( const CCommandContext &context, const CCommand &args )
   1.110  
   1.111  #ifdef CLIENT_DLL
   1.112  	#define CON_COMMAND_F_COMPLETION_SHARED( name, description, flags, completion ) \
   1.113 -		static void name( void *pUnknown, const CCommand &args ); \
   1.114 +		static void name( const CCommandContext &context, const CCommand &args ); \
   1.115  		static ConCommand name##_command_client( #name "_client", name, description, flags, completion ); \
   1.116 -		static void name( void *pUnknown, const CCommand &args )
   1.117 +		static void name( const CCommandContext &context, const CCommand &args )
   1.118  #else
   1.119  	#define CON_COMMAND_F_COMPLETION_SHARED( name, description, flags, completion ) \
   1.120 -		static void name( void *pUnknown, const CCommand &args ); \
   1.121 +		static void name( const CCommandContext &context, const CCommand &args ); \
   1.122  		static ConCommand name##_command( #name, name, description, flags, completion ); \
   1.123 -		static void name( void *pUnknown, const CCommand &args )
   1.124 +		static void name( const CCommandContext &context, const CCommand &args )
   1.125  #endif
   1.126  
   1.127  
   1.128  #define CON_COMMAND_EXTERN( name, _funcname, description ) \
   1.129 -	void _funcname( void *pUnknown, const CCommand &args ); \
   1.130 +	void _funcname( const CCommandContext &context, const CCommand &args ); \
   1.131  	static ConCommand name##_command( #name, _funcname, description ); \
   1.132 -	void _funcname( void *pUnknown, const CCommand &args )
   1.133 +	void _funcname( const CCommandContext &context, const CCommand &args )
   1.134  
   1.135  #define CON_COMMAND_EXTERN_F( name, _funcname, description, flags ) \
   1.136 -	void _funcname( void *pUnknown, const CCommand &args ); \
   1.137 +	void _funcname( const CCommandContext &context, const CCommand &args ); \
   1.138  	static ConCommand name##_command( #name, _funcname, description, flags ); \
   1.139 -	void _funcname( void *pUnknown, const CCommand &args )
   1.140 +	void _funcname( const CCommandContext &context, const CCommand &args )
   1.141  
   1.142  #define CON_COMMAND_MEMBER_F( _thisclass, name, _funcname, description, flags ) \
   1.143 -	void _funcname( void *pUnknown, const CCommand &args );						\
   1.144 +	void _funcname( const CCommandContext &context, const CCommand &args );						\
   1.145  	friend class CCommandMemberInitializer_##_funcname;			\
   1.146  	class CCommandMemberInitializer_##_funcname					\
   1.147  	{															\