samp-re/common.h

110 lines
3.1 KiB
C

/* vim: set filetype=c ts=8 noexpandtab: */
#define NULL 0
#define _CRT_SECURE_NO_DEPRECATE
#define STATIC_ASSERT(E) typedef char __static_assert_[(E)?1:-1]
#define EXPECT_SIZE(S,SIZE) STATIC_ASSERT(sizeof(S)==(SIZE))
#pragma pack(push, 1)
struct PlayerID {
int binaryAddress;
short port;
short __pad;
};
EXPECT_SIZE(struct PlayerID, 0x8);
struct CList {
void *values;
int list_size;
int allocation_size;
};
EXPECT_SIZE(struct CList, 0xC);
struct COrdenedList {
struct CList _parent;
};
EXPECT_SIZE(struct COrdenedList, 0xC);
struct CRangeList {
struct COrdenedList _parent;
};
EXPECT_SIZE(struct CRangeList, 0xC);
struct CRaknetTimeNS {
int lo32;
int hi32;
};
EXPECT_SIZE(struct CRaknetTimeNS, 0x8);
struct CQueue {
void *array;
void *head;
void *tail;
int allocationSize;
};
EXPECT_SIZE(struct CQueue, 0x10);
struct CReliabilityLayer {
/*000*/ char _pad0[0xC];
/*00C*/ struct CQueue outputQueue;
/*01C*/ void *acknowlegements; // DataStructures::RangeList<short>
/*020*/ char _pad20[0x20];
/*040*/ void *resendList;
/*044*/ char _pad44[0x24];
/*068*/ void* sendPacketSet; // DataStructures::Queue<InternalPacket*>
// (sizeof one element = 16 0x10)
// TODO this would be too big?
/*06C*/ char _pad6C[0x4C];
/*0B8*/ struct CRaknetTimeNS lastAckTime;
/*0C0*/ char _padC0[0x114];
/*1D4*/ short waitingForOrderedPacketWriteIndex[32];
/*214*/ short waitingForSequencedPacketWriteIndex[32];
/*254*/ short waitingForOrderedPacketReadIndex[32];
/*294*/ short waitingForSequencedPacketReadIndex[32];
/*2D4*/ char _pad2D4[0xC];
/*2E0*/ int timeoutTimeMS;
/*2E4*/ char _pad2E4[0x68];
/*35C*/ int statistics_acknowlegementsSent;
/*360*/ char _pad360[0x2C];
/*38C*/ int statistics_numberOfUnsplitMessages;
/*390*/ int statistics_numberOfSplitMessages;
/*394*/ char _pad394[0x2C];
/*3B0*/ int statistics_sequencedMessagesOutOfOrder;
/*3B4*/ int statistics_sequencedMessagesInOrder;
/*3B8*/ int statistics_orderedMessagesOutOfOrder;
/*3BC*/ int statistics_orderedMessagesInOrder;
/*3C0*/ int statistics_packetsReceived;
/*3C4*/ char _pad3C4[0x4];
/*3C8*/ unsigned int statistics_bitsReceivedLo32;
/*3CC*/ unsigned int statistics_bitsReceivedHi32;
/*3D0*/ char _pad3D0[0x10];
/*3E0*/ int statistics_messagesReceived;
/*3E4*/ char _pad3E4[0x4];
/*3E8*/ int statistics_duplicateMessagesReceived;
/*3EC*/ char _pad3EC[0x28];
/*414*/ int someCounter;
/*418*/ char _pad418[0xC];
/*424*/ struct CQueue hasReceivedPacketQueue;
/*434*/ short receivedPacketsBaseIndex;
/*436*/ char resetReceivedPackets;
/*437*/ char _pad437[0x11];
/*448*/ struct CRaknetTimeNS histogramStartTime;
/*450*/ int histogramReceiveMarker;
/*454*/ char _pad454[0x8];
/*45C*/ int histogramAckCount;
/*460*/ char _pad460[0x24];
/*484*/ void *encryptor;
/*488*/ char _pad488[0x274];
/*6FC*/ int receivePacketCount;
/*700*/ char _pad700[0x8];
/*708*/ char freeThreadedMemoryOnNextUpdate;
/*709*/ char _pad709[0x1F];
/*728*/ void *internalPacketPool;
};
EXPECT_SIZE(struct CReliabilityLayer, 0x72C);
#pragma pack(pop)
void __stdcall __RangeList__ctor(struct CRangeList *this);
void __stdcall __RangeList__dtor(struct CRangeList *this);