aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDLL/engine/r2engine.h
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2023-01-04 00:36:51 +0000
committerGitHub <noreply@github.com>2023-01-04 00:36:51 +0000
commit4fb1ae07d8f078e7abde99900c6a8286148a380a (patch)
tree56014eed36f16df79aab2c5cee527303dd70662d /NorthstarDLL/engine/r2engine.h
parenta4aab8da64eded240867fbe51d272aa44a180a26 (diff)
downloadNorthstarLauncher-4fb1ae07d8f078e7abde99900c6a8286148a380a.tar.gz
NorthstarLauncher-4fb1ae07d8f078e7abde99900c6a8286148a380a.zip
generally cleanup authentication code and fix client state issues with rejection from local server (#360)
* generally cleanup authentication code and fix client state issues with rejection from local server * fix formatting * fix formatting * use client-provided uid for logging disconnect failure as it won't be copied to player if authentication fails * support loading savegame and use more reliable method for fixing client rejection issues * oops forgot to add rejectconnectionfixes.cpp * fixup formatting
Diffstat (limited to 'NorthstarDLL/engine/r2engine.h')
-rw-r--r--NorthstarDLL/engine/r2engine.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/NorthstarDLL/engine/r2engine.h b/NorthstarDLL/engine/r2engine.h
index 68b762e1..a7ed62a3 100644
--- a/NorthstarDLL/engine/r2engine.h
+++ b/NorthstarDLL/engine/r2engine.h
@@ -157,12 +157,29 @@ namespace R2
READY_REMOTE
};
+ enum class eSignonState : int
+ {
+ NONE = 0, // no state yet; about to connect
+ CHALLENGE = 1, // client challenging server; all OOB packets
+ CONNECTED = 2, // client is connected to server; netchans ready
+ NEW = 3, // just got serverinfo and string tables
+ PRESPAWN = 4, // received signon buffers
+ GETTINGDATA = 5, // respawn-defined signonstate, assumedly this is for persistence
+ SPAWN = 6, // ready to receive entity packets
+ FIRSTSNAP = 7, // another respawn-defined one
+ FULL = 8, // we are fully connected; first non-delta packet received
+ CHANGELEVEL = 9, // server is changing level; please wait
+ };
+
// clang-format off
OFFSET_STRUCT(CBaseClient)
{
STRUCT_SIZE(0x2D728)
FIELD(0x16, char m_Name[64])
FIELD(0x258, KeyValues* m_ConVars)
+ FIELD(0x2A0, eSignonState m_Signon)
+ FIELD(0x358, char m_ClanTag[16])
+ FIELD(0x484, bool m_bFakePlayer)
FIELD(0x4A0, ePersistenceReady m_iPersistenceReady)
FIELD(0x4FA, char m_PersistenceBuffer[PERSISTENCE_MAX_SIZE])
FIELD(0xF500, char m_UID[32])