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