core/ConCommandBaseIterator.h
changeset 3099 1b7bf8509625
parent 2847 1daf209d9dd2
     1.1 --- a/core/ConCommandBaseIterator.h	Mon Jul 26 19:26:32 2010 -0400
     1.2 +++ b/core/ConCommandBaseIterator.h	Tue Jul 27 17:32:32 2010 -0500
     1.3 @@ -2,7 +2,7 @@
     1.4   * vim: set ts=4 sw=4 tw=99 noet :
     1.5   * =============================================================================
     1.6   * SourceMod
     1.7 - * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
     1.8 + * Copyright (C) 2004-2010 AlliedModders LLC.  All rights reserved.
     1.9   * =============================================================================
    1.10   *
    1.11   * This program is free software; you can redistribute it and/or modify it under
    1.12 @@ -31,59 +31,59 @@
    1.13  #ifndef _INCLUDE_SOURCEMOD_CON_COMMAND_BASE_ITERATOR_H_
    1.14  #define _INCLUDE_SOURCEMOD_CON_COMMAND_BASE_ITERATOR_H_
    1.15  
    1.16 +#if SOURCE_ENGINE >= SE_LEFT4DEAD
    1.17  class ConCommandBaseIterator
    1.18  {
    1.19 -#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
    1.20 -	ICvarIteratorInternal *cvarIter;
    1.21 -#else
    1.22 -	ConCommandBase *cvarIter;
    1.23 -#endif
    1.24 -
    1.25  public:
    1.26 -	ConCommandBaseIterator()
    1.27 +	inline ConCommandBaseIterator() : iter(icvar)
    1.28  	{
    1.29 -#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
    1.30 -		cvarIter = icvar->FactoryInternalIterator();
    1.31 -		cvarIter->SetFirst();
    1.32 -#else
    1.33 -		cvarIter = icvar->GetCommands();
    1.34 -#endif
    1.35 -	}
    1.36 -	
    1.37 -	~ConCommandBaseIterator()
    1.38 -	{
    1.39 -#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
    1.40 -		g_pMemAlloc->Free(cvarIter);
    1.41 -#endif
    1.42 +		iter.SetFirst();
    1.43  	}
    1.44  
    1.45  	inline bool IsValid()
    1.46  	{
    1.47 -#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
    1.48 -		return cvarIter->IsValid();
    1.49 -#else
    1.50 -		return cvarIter != NULL;
    1.51 -#endif
    1.52 +		return iter.IsValid();
    1.53  	}
    1.54  
    1.55  	inline void Next()
    1.56  	{
    1.57 -#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
    1.58 -		cvarIter->Next();
    1.59 -#else
    1.60 -		cvarIter = const_cast<ConCommandBase*>(cvarIter->GetNext());
    1.61 -#endif
    1.62 +		iter.Next();
    1.63  	}
    1.64  
    1.65  	inline ConCommandBase *Get()
    1.66  	{
    1.67 -#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
    1.68 -		return cvarIter->Get();
    1.69 +		return iter.Get();
    1.70 +	}
    1.71 +private:
    1.72 +	ICvar::Iterator iter;
    1.73 +};
    1.74  #else
    1.75 -		return cvarIter;
    1.76 +class ConCommandBaseIterator
    1.77 +{
    1.78 +public:
    1.79 +	inline ConCommandBaseIterator()
    1.80 +	{
    1.81 +		iter = icvar->GetCommands();
    1.82 +	}
    1.83 +
    1.84 +	inline bool IsValid()
    1.85 +	{
    1.86 +		return iter != NULL;
    1.87 +	}
    1.88 +
    1.89 +	inline void Next()
    1.90 +	{
    1.91 +		iter = const_cast<ConCommandBase *>(iter->GetNext());
    1.92 +	}
    1.93 +
    1.94 +	inline ConCommandBase *Get()
    1.95 +	{
    1.96 +		return iter;
    1.97 +	}
    1.98 +private:
    1.99 +	ConCommandBase *iter;
   1.100 +};
   1.101  #endif
   1.102 -	}
   1.103 -};
   1.104  
   1.105  #endif /* _INCLUDE_SOURCEMOD_CON_COMMAND_BASE_ITERATOR_H_ */
   1.106