UwUHax/recvprop.h

84 lines
1.4 KiB
C
Raw Normal View History

2021-08-27 19:58:23 +08:00
#pragma once
#include <Windows.h>
struct RecvProp;
class DVariant
{
public:
union
{
float m_Float;
long m_Int;
char *m_pString;
void *m_pData;
float m_Vector[3];
};
};
namespace SourceEngine
{
enum class SendPropType
{
DPT_Int = 0,
DPT_Float,
DPT_Vector,
DPT_VectorXY, // Only encodes the XY of a vector, ignores Z
DPT_String,
DPT_Array, // An array of the base types (can't be of datatables).
DPT_DataTable,
DPT_Int64,
DPT_NUMSendPropTypes
};
};
class CRecvProxyData
{
public:
const RecvProp *m_pRecvProp;
DVariant m_Value;
int m_iElement;
int m_ObjectID;
};
typedef void(*RecvVarProxyFn)(const CRecvProxyData *pData, void *pStruct, void *pOut);
struct RecvTable
{
RecvProp *m_pProps;
int m_nProps;
void *m_pDecoder;
char *m_pNetTableName;
bool m_bInitialized;
bool m_bInMainList;
};
struct RecvProp
{
char *m_pVarName;
int 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;
};
struct ClientClass
{
BYTE _chPadding[8];
char * GetName;
RecvTable * GetTable;
ClientClass * NextClass;
int GetClassID;
};