r5sdk/r5dev/engine/server/datablock_sender.h
Kawe Mazidjatari 46390ba875 Additional reduction of untyped variables
These were not caught by the regex due to typos, or additional symbols that were not taken into account when making the regex.
2023-07-03 00:02:08 +02:00

89 lines
3.0 KiB
C++

#ifndef DATABLOCK_SENDER_H
#define DATABLOCK_SENDER_H
#include "idatablock.h"
class CClient;
class ServerDataBlockSender : public NetDataBlockSender
{
friend class CClient;
public:
virtual ~ServerDataBlockSender() override;
virtual void SendDataBlock(short unk0, int unk1,
short unk2, short unk3, const void* buffer, int length) override;
virtual float GetResendRate() const override;
virtual const char* GetReceiverName() const override;
protected:
char pad_0008[56];
RTL_SRWLOCK LOCK;
char pad_0048[56];
CClient* m_pClient;
char m_bInitialized;
char m_bStartedTransfer;
char m_bMultiplayer;
char field_8B;
short m_nTransferId;
short m_nCounter;
int m_nTransferSize;
int m_nTotalBlocks;
int m_nBlockAckTick;
int m_nCurrentBlock;
int m_nUnkA0;
int m_nBlockSendsAttempted;
float m_flResendRate;
char pad_00AC[4];
double m_TimeCurrentSend;
double m_TimeFirstSend;
double m_TimeLastSend;
double m_flBlockTimesArray[DATABLOCK_STATUS_SIZE];
char m_szDebugName[64];
bool m_bBlockStatusArray[DATABLOCK_STATUS_SIZE];
void* m_pData;
bool m_bAbnormalSending_Maybe;
};
struct ServerDataBlock
{
char SnapshotBuffer[295312]; // this might be wrong !!!
void* pUnkBlockStruct;
char gapC0008[56];
ServerDataBlockSender sender;
};
inline CMemory p_ServerDataBlockSender__Destructor;
inline void*(*v_ServerDataBlockSender__Destructor)(ServerDataBlockSender* thisptr);
inline CMemory p_ServerDataBlockSender__SendDataBlock;
inline void* (*v_ServerDataBlockSender__SendDataBlock)(ServerDataBlockSender* thisptr,
short unk0, int unk1, short unk2, short unk3, const void* buffer, int length);
///////////////////////////////////////////////////////////////////////////////
class VServerDataBlockSender : public IDetour
{
virtual void GetAdr(void) const
{
LogFunAdr("ServerDataBlockSender::~ServerDataBlockSender", p_ServerDataBlockSender__Destructor.GetPtr());
LogFunAdr("ServerDataBlockSender::SendDataBlock", p_ServerDataBlockSender__SendDataBlock.GetPtr());
}
virtual void GetFun(void) const
{
p_ServerDataBlockSender__Destructor = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 57 48 83 EC 20 8B DA 48 8B F9 E8 ?? ?? ?? ?? F6 C3 01 74"
" 0D BA ?? ?? ?? ?? 48 8B CF E8 ?? ?? ?? ?? 48 8B C7 48 8B 5C 24 ?? 48 83 C4 20 5F C3 CC CC CC CC CC CC CC CC CC CC CC CC 48 89 5C 24"
" ?? 48 89 74 24 ?? 57 48 83 EC 20 33 F6 66 C7 81 ?? ?? ?? ?? ?? ??");
v_ServerDataBlockSender__Destructor = p_ServerDataBlockSender__Destructor.RCast<void* (*)(ServerDataBlockSender*)>();
p_ServerDataBlockSender__SendDataBlock = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 55 48 8D AC 24 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 8B 99 ?? ?? ?? ??");
v_ServerDataBlockSender__SendDataBlock = p_ServerDataBlockSender__SendDataBlock.RCast<void* (*)(ServerDataBlockSender*,
short, int, short, short, const void*, int)>();
}
virtual void GetVar(void) const { }
virtual void GetCon(void) const { }
virtual void Attach(void) const { }
virtual void Detach(void) const { }
};
///////////////////////////////////////////////////////////////////////////////
#endif // DATABLOCK_SENDER_H