mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Originally, we store the search results in a CMemory instance which we then assign to the actual function pointer. CMemory is just a pointer class; we can assign the results directly to the actual function pointer. This commit reduces a lot of code verbosity, and also reduced roughly 2KiB worth of static pointers in the resulting executable. This commit also officially deprecates the support for any GameDLL's below S3 (Season 3), since it makes more sense to port the assets from earlier/later games back to the version this SDK supports.
48 lines
2.3 KiB
C
48 lines
2.3 KiB
C
#pragma once
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* _protocol.h
|
|
*-----------------------------------------------------------------------------*/
|
|
|
|
// Max number of history commands to send ( 2 by default ) in case of dropped packets
|
|
#define NUM_BACKUP_COMMAND_BITS 4 // Originally 3 bits.
|
|
#define MAX_BACKUP_COMMANDS ((1 << NUM_BACKUP_COMMAND_BITS)-1) // 15 in R5; see 'CL_Move'.
|
|
|
|
// Maximum amount of backup commands to process on the server.
|
|
#define MAX_BACKUP_COMMANDS_PROCESS (MAX_BACKUP_COMMANDS+1) * NUM_BACKUP_COMMAND_BITS
|
|
#define MAX_QUEUED_COMMANDS_PROCESS 0x1B0
|
|
|
|
enum class SIGNONSTATE : int
|
|
{
|
|
SIGNONSTATE_NONE = 0, // no state yet; about to connect.
|
|
SIGNONSTATE_CHALLENGE = 1, // client challenging server; all OOB packets.
|
|
SIGNONSTATE_CONNECTED = 2, // client is connected to server; netchans ready.
|
|
SIGNONSTATE_NEW = 3, // just got serverinfo and string tables.
|
|
SIGNONSTATE_PRESPAWN = 4, // received signon buffers.
|
|
SIGNONSTATE_GETTING_DATA = 5, // getting persistence data.
|
|
SIGNONSTATE_SPAWN = 6, // ready to receive entity packets.
|
|
SIGNONSTATE_FIRST_SNAP = 7, // received baseline snapshot.
|
|
SIGNONSTATE_FULL = 8, // we are fully connected; first non-delta packet received.
|
|
SIGNONSTATE_CHANGELEVEL = 9, // server is changing level; please wait.
|
|
};
|
|
|
|
enum class PERSISTENCE : int
|
|
{
|
|
PERSISTENCE_NONE = 0, // no persistence data for this client yet.
|
|
PERSISTENCE_PENDING = 1, // pending or processing persistence data.
|
|
PERSISTENCE_AVAILABLE = 2, // persistence is available for this client.
|
|
PERSISTENCE_READY = 5 // persistence is ready for this client.
|
|
};
|
|
|
|
#define net_NOP 0 // nop command used for padding.
|
|
#define net_Disconnect 1 // disconnect, last message in connection.
|
|
|
|
// each channel packet has 1 byte of FLAG bits
|
|
#define PACKET_FLAG_RELIABLE (1<<0) // packet contains subchannel stream data
|
|
#define PACKET_FLAG_COMPRESSED (1<<1) // packet is compressed
|
|
#define PACKET_FLAG_ENCRYPTED (1<<2) // packet is encrypted
|
|
#define PACKET_FLAG_SPLIT (1<<3) // packet is split
|
|
#define PACKET_FLAG_CHOKED (1<<4) // packet was choked by sender
|
|
#define PACKET_FLAG_PRESCALED (1<<5) // packet was sent by sender with prescaled frame time
|
|
#define PACKET_FLAG_LOOPBACK (1<<6) // packet was sent from loopback connection
|