1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 12:06:07 +08:00

Update CGameEntitySystem members (#204)

This commit is contained in:
vanz696
2024-02-07 19:40:14 +03:00
committed by GitHub
parent 7687b61810
commit 2306c0f864
5 changed files with 48 additions and 14 deletions

View File

@ -313,11 +313,12 @@ EntityInstanceByClassIter_t::EntityInstanceByClassIter_t(const char* szClassName
}
}
EntityInstanceByClassIter_t::EntityInstanceByClassIter_t(CEntityInstance* pStart, char const* szClassName, IEntityFindFilter* pFilter, EntityIterType_t eIterType)
EntityInstanceByClassIter_t::EntityInstanceByClassIter_t(CEntityInstance* pStart, const char* szClassName, IEntityFindFilter* pFilter, EntityIterType_t eIterType)
{
m_pCurrentEnt = pStart ? pStart->m_pEntity : nullptr;
m_pFilter = pFilter;
m_eIterType = eIterType;
m_hWorldGroupId = WorldGroupId_t();
m_pszClassName = szClassName;
m_pEntityClass = NULL;
}

View File

@ -290,10 +290,10 @@ public:
public:
CUtlString m_sEntSystemName; // 2696
CUtlMap<const char*, CEntityClass*> m_entClassesByCPPClassname; // 2704
CUtlMap<const char*, CEntityClass*> m_entClassesByClassname; // 2736
CUtlMap<const char*, CEntityComponentHelper*> m_entityComponentHelpers; // 2768
CUtlMap<CUtlSymbolLarge, CUtlVector<CEntityHandle>*> m_entityNames; // 2800
CUtlMap<const char*, CEntityClass*, uint16, CDefFastCaselessStringLess> m_entClassesByCPPClassname; // 2704
CUtlMap<const char*, CEntityClass*, uint16, CDefFastCaselessStringLess> m_entClassesByClassname; // 2736
CUtlMap<const char*, CEntityComponentHelper*, uint16, CDefFastCaselessStringLess> m_entityComponentHelpers; // 2768
CUtlMap<CUtlSymbolLarge, CUtlVector<CEntityHandle>*, uint16, CDefLess<CUtlSymbolLarge>> m_entityNames; // 2800
CEventQueue m_EventQueue; // 2832
CUtlVectorFixedGrowable<IEntityIONotify*, 2> m_entityIONotifiers; // 2968 | 2984
int m_nSuppressDormancyChangeCount; // 3008 | 3024
@ -331,7 +331,7 @@ public:
CUtlHashtable<CUtlString, void*> m_EntityMaterialAttributes; // 5360 | 5408
};
// Size: 0x1580 | 0x15B0 (from constructor)
// Size: 0x1570 | 0x15A0 (from constructor)
class CGameEntitySystem : public CEntitySystem
{
struct SpawnGroupEntityFilterInfo_t
@ -356,7 +356,6 @@ public:
CUtlVector<IEntityListener*> m_entityListeners; // 5448 | 5496
IEntity2SaveRestore* m_pEntity2SaveRestore; // 5472 | 5520
IEntity2Networkables* m_pEntity2Networkables; // 5480 | 5528
bool m_Unk7; // 5488 | 5536
};
abstract_class IEntityFindFilter
@ -408,7 +407,7 @@ class EntityInstanceByClassIter_t
{
public:
EntityInstanceByClassIter_t(const char* szClassName, IEntityFindFilter* pFilter = nullptr, EntityIterType_t eIterType = ENTITY_ITER_OVER_ACTIVE);
EntityInstanceByClassIter_t(CEntityInstance* pStart, char const* szClassName, IEntityFindFilter* pFilter = nullptr, EntityIterType_t eIterType = ENTITY_ITER_OVER_ACTIVE);
EntityInstanceByClassIter_t(CEntityInstance* pStart, const char* szClassName, IEntityFindFilter* pFilter = nullptr, EntityIterType_t eIterType = ENTITY_ITER_OVER_ACTIVE);
CEntityInstance* First();
CEntityInstance* Next();

View File

@ -25,12 +25,14 @@ enum EDictCompareType
{
k_eDictCompareTypeCaseSensitive=0,
k_eDictCompareTypeCaseInsensitive=1,
k_eDictCompareTypeCaseInsensitiveFast=2,
k_eDictCompareTypeFilenames // Slashes and backslashes count as the same character..
};
template <int COMPARE_TYPE> struct CDictCompareTypeDeducer {};
template <int COMPARE_TYPE> struct CDictCompareTypeDeducer {};
template <> struct CDictCompareTypeDeducer<k_eDictCompareTypeCaseSensitive> { typedef CDefStringLess Type_t; };
template <> struct CDictCompareTypeDeducer<k_eDictCompareTypeCaseInsensitive> { typedef CDefCaselessStringLess Type_t; };
template <> struct CDictCompareTypeDeducer<k_eDictCompareTypeCaseInsensitiveFast> { typedef CDefFastCaselessStringLess Type_t; };
template <> struct CDictCompareTypeDeducer<k_eDictCompareTypeFilenames> { typedef CDefCaselessStringLessIgnoreSlashes Type_t; };
#define FOR_EACH_DICT( dictName, iteratorName ) \
@ -43,7 +45,7 @@ template <> struct CDictCompareTypeDeducer<k_eDictCompareTypeFilenames> { typede
//-----------------------------------------------------------------------------
// A dictionary mapping from symbol to structure
//-----------------------------------------------------------------------------
template <class T, class I = int, int COMPARE_TYPE = k_eDictCompareTypeCaseInsensitive>
template <class T, class I = int, int COMPARE_TYPE = k_eDictCompareTypeCaseInsensitiveFast>
class CUtlDict
{
public:

View File

@ -45,9 +45,26 @@ public:
//-------------------------------------
inline bool StringLessThan( const char * const &lhs, const char * const &rhs) { return ( strcmp( lhs, rhs) < 0 ); }
inline bool CaselessStringLessThan( const char * const &lhs, const char * const &rhs ) { return ( V_stricmp_fast( lhs, rhs) < 0 ); }
inline bool StringLessThan( const char * const &lhs, const char * const &rhs)
{
if ( !lhs ) return false;
if ( !rhs ) return true;
return ( strcmp( lhs, rhs ) < 0 );
}
inline bool CaselessStringLessThan( const char * const &lhs, const char * const &rhs )
{
if ( !lhs ) return false;
if ( !rhs ) return true;
return ( stricmp( lhs, rhs ) < 0 );
}
inline bool FastCaselessStringLessThan( const char * const &lhs, const char * const &rhs )
{
if ( !lhs ) return false;
if ( !rhs ) return true;
return ( V_stricmp_fast( lhs, rhs ) < 0 );
}
// Same as CaselessStringLessThan, but it ignores differences in / and \.
inline bool CaselessStringLessThanIgnoreSlashes( const char * const &lhs, const char * const &rhs )
@ -97,7 +114,7 @@ class CDefStringLess
public:
CDefStringLess() {}
CDefStringLess( int i ) {}
inline bool operator()( const char * const &lhs, const char * const &rhs ) const { return StringLessThan( lhs, rhs ); }
inline bool operator()( const char * const &lhs, const char * const &rhs ) const { return ( strcmp( lhs, rhs ) < 0 ); }
inline bool operator!() const { return false; }
};
@ -106,7 +123,16 @@ class CDefCaselessStringLess
public:
CDefCaselessStringLess() {}
CDefCaselessStringLess( int i ) {}
inline bool operator()( const char * const &lhs, const char * const &rhs ) const { return CaselessStringLessThan( lhs, rhs ); }
inline bool operator()( const char * const &lhs, const char * const &rhs ) const { return ( stricmp( lhs, rhs ) < 0 ); }
inline bool operator!() const { return false; }
};
class CDefFastCaselessStringLess
{
public:
CDefFastCaselessStringLess() {}
CDefFastCaselessStringLess( int i ) {}
inline bool operator()( const char * const &lhs, const char * const &rhs ) const { return ( V_stricmp_fast( lhs, rhs ) < 0 ); }
inline bool operator!() const { return false; }
};

View File

@ -58,6 +58,12 @@ public:
{
return m_pString != src.m_pString;
}
// operator<
bool operator<( CUtlSymbolLarge const& src ) const
{
return ( intp )m_pString < ( intp )src.m_pString;
}
inline const char* String() const
{