46 lines
2.8 KiB
C++
46 lines
2.8 KiB
C++
|
#pragma once
|
||
|
#include "netSyncDataNode.hpp"
|
||
|
#include "NodeCommonDataOperations.hpp"
|
||
|
|
||
|
namespace rage
|
||
|
{
|
||
|
class netSyncData;
|
||
|
class netObject;
|
||
|
}
|
||
|
|
||
|
class CProjectBaseSyncDataNode : public rage::netSyncDataNode
|
||
|
{
|
||
|
public:
|
||
|
virtual bool IsSyncNode() { return false; } // 0x50
|
||
|
virtual bool _0x58() { return false; } // 0x58
|
||
|
virtual bool IsGlobalFlags() { return false; } // 0x60
|
||
|
virtual void DoPreCache(rage::netSyncData* data) {} // 0x68
|
||
|
virtual std::uint8_t GetSyncFrequency(int index) { return 0; } // 0x70
|
||
|
virtual int GetSyncInterval(int index) { return 0; } // 0x78
|
||
|
virtual int GetBandwidthForPlayer(int player) { return 200; } // 0x80 (should always return 200)
|
||
|
virtual void _0x88(void*) {} // 0x88
|
||
|
virtual bool _0x90(void*, void*, int, int, int) { return false; } // 0x90
|
||
|
virtual int CalculateSize() { return 0; } // 0x98 need to verify later
|
||
|
virtual bool IsPreCacheDisabled() { return false; } // 0xA0
|
||
|
virtual bool CanApply(rage::netObject* object) { return false; } // 0xA8
|
||
|
virtual int GetPlayersInScope() { return -1; } // 0xB0
|
||
|
virtual void DeserializeImpl() {} // 0xB8 need to verify later
|
||
|
virtual void SerializeImpl() {} // 0xC0 need to verify later
|
||
|
virtual int CalculateSize2() { return 0; } // 0xC8
|
||
|
virtual int _0xD0() { return 0; } // 0xD0 calls NodeCommonDataOperations::Unk()
|
||
|
virtual void Log() {} // 0xD8
|
||
|
virtual bool CanPreCache(int) { return false; } // 0xE0 arg is always zero afaik
|
||
|
virtual bool CanBeEmpty() { return false; } // 0xE8
|
||
|
virtual bool IsEmpty() { return false; } // 0xF0 returns true if all data is default
|
||
|
virtual void SetEmpty() {} // 0xF8 sets all data to their default values
|
||
|
virtual void Log2() {} // 0x100
|
||
|
virtual void ResetScriptData() {} // 0x108
|
||
|
virtual bool _0x110() { return false; } // 0x110
|
||
|
|
||
|
private:
|
||
|
NodeCommonDataOperations m_common_data_operations; // 0xB0 this is generally invalidated by MoveCommonDataOpsVFT()
|
||
|
};
|
||
|
static_assert(sizeof(CProjectBaseSyncDataNode) == 0xC0);
|
||
|
|
||
|
class CSyncDataNodeFrequent : public CProjectBaseSyncDataNode {};
|
||
|
class CSyncDataNodeInfrequent : public CProjectBaseSyncDataNode {};
|