@@ -13,7 +13,7 @@ struct SchemaKey
1313};
1414
1515class CBaseEntity ;
16- void SetStateChanged (CBaseEntity* pEntity, int offset );
16+ void SetStateChanged (uintptr_t entityPtr, std::string className, std::string fieldName, int extraOffset, bool isStruct );
1717
1818constexpr uint32_t val_32_const = 0x811c9dc5 ;
1919constexpr uint32_t prime_32_const = 0x1000193 ;
@@ -62,46 +62,19 @@ namespace sch
6262 static const auto m_key = \
6363 sch::GetOffset (ThisClassName, datatable_hash, #varName, prop_hash); \
6464 \
65- static const auto m_chain = \
66- sch::FindChainOffset (ThisClassName); \
67- \
6865 static const size_t offset = offsetof (ThisClass, varName); \
6966 ThisClass *pThisClass = (ThisClass *)((byte *)this - offset); \
7067 \
71- if (m_chain != 0 && m_key.networked ) \
72- g_Signatures->FetchSignature <NetworkSTChange>(" NetworkStateChanged" )((uintptr_t )(pThisClass) + m_chain, m_key.offset + extra_offset, 0xFFFFFFFF ); \
73- else if (m_key.networked ) \
74- { \
75- if (!IsStruct) \
76- SetStateChanged ((CBaseEntity *)pThisClass, m_key.offset + extra_offset); \
77- else if (IsPlatformPosix ()) \
78- CALL_VIRTUAL (void , 1 , pThisClass, m_key.offset + extra_offset, 0xFFFFFFFF , 0xFFFF ); \
79- } \
68+ SetStateChanged ((uintptr_t )pThisClass, ThisClassName, #varName, extra_offset, IsStruct); \
8069 *reinterpret_cast <std::add_pointer_t <type>>((uintptr_t )(pThisClass) + m_key.offset + extra_offset) = val; \
8170 } \
8271 void StateUpdate () \
8372 { \
84- static constexpr auto datatable_hash = hash_32_fnv1a_const (ThisClassName); \
85- static constexpr auto prop_hash = hash_32_fnv1a_const (#varName); \
86- \
87- static const auto m_key = \
88- sch::GetOffset (ThisClassName, datatable_hash, #varName, prop_hash); \
89- \
90- static const auto m_chain = \
91- sch::FindChainOffset (ThisClassName); \
9273 \
9374 static const size_t offset = offsetof (ThisClass, varName); \
9475 ThisClass *pThisClass = (ThisClass *)((byte *)this - offset); \
9576 \
96- if (m_chain != 0 && m_key.networked ) \
97- g_Signatures->FetchSignature <NetworkSTChange>(" NetworkStateChanged" )((uintptr_t )(pThisClass) + m_chain, m_key.offset + extra_offset, 0xFFFFFFFF ); \
98- else if (m_key.networked ) \
99- { \
100- if (!IsStruct) \
101- SetStateChanged ((CBaseEntity *)pThisClass, m_key.offset + extra_offset); \
102- else if (IsPlatformPosix ()) \
103- CALL_VIRTUAL (void , 1 , pThisClass, m_key.offset + extra_offset, 0xFFFFFFFF , 0xFFFF ); \
104- } \
77+ SetStateChanged ((uintptr_t )pThisClass, ThisClassName, #varName, extra_offset, IsStruct); \
10578 } \
10679 operator std::add_lvalue_reference_t <type>() { return Get (); } \
10780 std::add_lvalue_reference_t <type> operator ()() { return Get (); } \
0 commit comments