67 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #pragma once
 | ||
|  | 
 | ||
|  | class RecvTable; | ||
|  | struct CRecvProxyData; | ||
|  | 
 | ||
|  | typedef void (*RecvVarProxyFn) (const CRecvProxyData*, void*, void*); | ||
|  | 
 | ||
|  | enum SendPropType: int { | ||
|  | 	DPT_Int = 0, | ||
|  | 	DPT_Float, | ||
|  | 	DPT_Vector, | ||
|  | 	DPT_VectorXY, | ||
|  | 	DPT_String, | ||
|  | 	DPT_Array, | ||
|  | 	DPT_DataTable, | ||
|  | 	DPT_Int64, | ||
|  | 	DPT_NUMSendPropTypes | ||
|  | }; | ||
|  | 
 | ||
|  | class RecvProp { | ||
|  | 	public: | ||
|  | 		char* m_pVarName; | ||
|  | 		SendPropType m_RecvType; | ||
|  | 		int m_Flags; | ||
|  | 		int m_StringBufferSize; | ||
|  | 		bool m_bInsideArray; | ||
|  | 		const void* m_pExtraData; | ||
|  | 		RecvProp* m_pArrayProp; | ||
|  | 		void* m_ArrayLengthProxy; | ||
|  | 		void* m_ProxyFn; | ||
|  | 		void* m_DataTableProxyFn; | ||
|  | 		RecvTable* m_pDataTable; | ||
|  | 		int m_Offset; | ||
|  | 		int m_ElementStride; | ||
|  | 		int m_nElements; | ||
|  | 		const char* m_pParentArrayPropName; | ||
|  | }; | ||
|  | 
 | ||
|  | class RecvTable { | ||
|  | 	public: | ||
|  | 		RecvProp* m_pProps; | ||
|  | 		int m_nProps; | ||
|  | 		void* m_pDecoder; | ||
|  | 		char* m_pNetTableName; | ||
|  | 		bool m_bInitialized; | ||
|  | 		bool m_bInMainList; | ||
|  | }; | ||
|  | 
 | ||
|  | struct DVariant { | ||
|  | 	union { | ||
|  | 		float m_Float; | ||
|  | 		long m_Int; | ||
|  | 		char* m_pString; | ||
|  | 		void* m_pData; | ||
|  | 		float m_Vector[3]; | ||
|  | 		int64_t m_Int64; | ||
|  | 	}; | ||
|  | 
 | ||
|  | 	int	m_Type; | ||
|  | }; | ||
|  | 
 | ||
|  | struct CRecvProxyData { | ||
|  | 	const RecvProp* m_pRecvProp; | ||
|  | 	DVariant m_Value; | ||
|  | 	int m_iElement; | ||
|  | 	int m_ObjectID; | ||
|  | }; |