-
Notifications
You must be signed in to change notification settings - Fork 98
/
cserserverprotocol_engine.h
166 lines (135 loc) · 3.87 KB
/
cserserverprotocol_engine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef CSERSERVERPROTOCOL_ENGINE_H
#define CSERSERVERPROTOCOL_ENGINE_H
#ifdef _WIN32
#pragma once
#endif
// NOTE: These defined must match the ones in Steam's CSERServerProtocol.h!!!
#define C2M_REPORT_GAMESTATISTICS 'k'
#define C2M_REPORT_GAMESTATISTICS_PROTOCOL_VERSION_1 1
#define C2M_REPORT_GAMESTATISTICS_PROTOCOL_VERSION 2
typedef enum
{
GS_UNKNOWN = 0,
GS_NO_UPLOAD,
GS_UPLOAD_REQESTED,
// Must be last
GS_NUM_TYPES
} EGameStatsEnum;
// C2M_REPORT_GAMESTATISTICS details (OLD VERSION)
// u8(C2M_REPORT_GAMESTATISTICS_PROTOCOL_VERSION_1)
// u32(build_number)
// string( exename )
// string( gamedir )
// string( mapname )
// u32 requested upload data length
// C2M_REPORT_GAMESTATISTICS details (current version)
// u8(C2M_REPORT_GAMESTATISTICS_PROTOCOL_VERSION)
// u32(appID)
// u32 requested upload data length
#define M2C_ACKREPORT_GAMESTATISTICS 'l'
// M2C_ACKREPORT_GAMESTATISTICS details
// u8(protocol okay (bool))
// u8(GS_NO_UPLOAD or GS_UPLOAD_REQESTED )
// iff GS_UPLOAD_REQESTED then add:
// u32(harvester ip address)
// u16(harvester port #)
// u32(upload context id)
#define C2M_PHONEHOME 'm'
#define C2M_PHONEHOME_PROTOCOL_VERSION 3
// C2M_PHONEHOME
// u8( C2M_PHONEHOME_PROTOCOL_VERSION )
// u32( sessionid ) or 0 to request a new sessionid
// u16(encryptedlength)
// remainder = encrypteddata:
// u8 corruption id == 1
// string build unique id
// string computername
// string username
// string gamedir
// float( enginetimestamp )
// u8 messagetype:
// 1: engine startup
// 2: engine shutdown
// 3: map started + mapname
// 4: map finished + mapname
// string( mapname )
#define M2C_ACKPHONEHOME 'n'
// M2C_ACKPHONEHOME details
// u8(connection allowed (bool))
// u32(sessionid)
#define C2M_BUGREPORT 'o'
#define C2M_BUGREPORT_PROTOCOL_VERSION 3
// C2M_BUGREPORT details
// u8(C2M_BUGREPORT_PROTOCOL_VERSION)
// u16(encryptedlength)
// remainder=encrypteddata
// encrypted payload:
// byte corruptionid = 1
// u32(buildnumber)
// string(exename 64)
// string(gamedir 64)
// string(mapname 64)
// u32 RAM
// u32 CPU
// string(processor)
// u32 DXVerHigh
// u32 DXVerLow
// u32 DXVendorID
// u32 DXDeviceID
// string(OSVer)
// Version 2+:
// {
// reporttype(char 32)
// email(char 80)
// accountname(char 80)
// }
// Version 3+
// {
// userid( sizeof( TSteamGlobalUserID ) )
// }
// --- all versions
// string(title 128)
// u32(.zip file size, or 0 if none available)
// u32(text length > max 1024)
// text(descriptive text -- capped to text length bytes)
#define M2C_ACKBUGREPORT 'p'
typedef enum
{
BR_UNKNOWN = 0,
BR_NO_FILES,
BR_REQEST_FILES,
// Must be last
BR_NUM_TYPES
} EBugReportAckEnum;
// M2C_ACKBUGREPORT details
// u8(protocol okay (bool))
// u8(BR_NO_FILES or BR_REQEST_FILES )
// iff BR_REQEST_FILES then add:
// u32(harvester ip address)
// u16(harvester port #)
// u32(upload context id)
// Arbitrary encrypted data upload
#define C2M_UPLOADDATA 'q'
#define C2M_UPLOADDATA_PROTOCOL_VERSION 1
#define C2M_UPLOADDATA_DATA_VERSION 1
// C2M_BUGREPORT details
// u8(C2M_UPLOADDATA_PROTOCOL_VERSION)
// u16(encryptedlength)
// remainder=encrypteddata
// encrypted payload:
// byte(corruptionid)
// byte(protocolid) // C2M_UPLOADDATA_DATA_VERSION
// string(tablename 40)
// u8(numvalues)
// for each value:
// string(fieldname 32)
// string(value 128)
#define M2C_ACKUPLOADDATA 'r'
// M2C_ACKUPLOADDATA details
// u8(protocol okay (bool))
#endif // CSERSERVERPROTOCOL_ENGINE_H