Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

808 lines
35 KiB

  1. //====== Copyright (C), Valve Corporation, All rights reserved. =======
  2. //
  3. // Purpose: This file defines all of our over-the-wire net protocols for the
  4. // Game Coordinator for CS:GO. Note that we never use types
  5. // with undefined length (like int). Always use an explicit type
  6. // (like int32).
  7. //
  8. //=============================================================================
  9. #ifndef CSTRIKE15_GCCONSTANTS_H
  10. #define CSTRIKE15_GCCONSTANTS_H
  11. #ifdef _WIN32
  12. #pragma once
  13. #endif
  14. //=============================================================================
  15. enum EMsgGCCStrike15_v2_ClientLogonFatalError
  16. {
  17. k_EMsgGCCStrike15_v2_ClientLogonFatalError_None = 0, // Should not be used (default = no error and logon can succeed)
  18. k_EMsgGCCStrike15_v2_ClientLogonFatalError_MustUsePWLauncher = 1, // Client must use PW launcher
  19. k_EMsgGCCStrike15_v2_ClientLogonFatalError_MustUseSteamLauncher = 2, // Client must use Steam launcher
  20. k_EMsgGCCStrike15_v2_ClientLogonFatalError_AccountLinkPWMissing = 3, // Client hasn't linked their Steam and PW accounts
  21. k_EMsgGCCStrike15_v2_ClientLogonFatalError_CustomMessageBase = 1000, // Custom message has been provided by the 3rd party server (Perfect World)
  22. };
  23. //=============================================================================
  24. enum EMsgGCCStrike15_v2_MatchmakingState_t
  25. {
  26. k_EMsgGCCStrike15_v2_MatchmakingState_None = 0, // Client is not in matchmaking pool
  27. k_EMsgGCCStrike15_v2_MatchmakingState_Joined = 1, // Client joined matchmaking pool
  28. k_EMsgGCCStrike15_v2_MatchmakingState_Searching = 2, // Client is searching in matchmaking pool for some time
  29. k_EMsgGCCStrike15_v2_MatchmakingState_BackToSearching = 3, // Client has a match which failed to get confirmed by other players
  30. k_EMsgGCCStrike15_v2_MatchmakingState_MatchConfirmed = 4, // Client's match is confirmed and client is removed from matchmaking pool
  31. };
  32. //=============================================================================
  33. enum EMsgGCCStrike15_v2_MatchmakingMatchOutcome_t
  34. {
  35. k_EMsgGCCStrike15_v2_MatchmakingMatchOutcome_ResultMask = 0x3, // Typical match result ( 0 = tie, 1 = first team wins, 2 = second team wins, 3 = legacy incomplete )
  36. k_EMsgGCCStrike15_v2_MatchmakingMatchOutcome_Flag_NetworkEvent = 0x4, // Network event occurred during the match
  37. };
  38. //=============================================================================
  39. enum EMsgGCCStrike15_v2_MatchmakingGameComposition_t
  40. {
  41. k_EMsgGCCStrike15_v2_MatchmakingGameComposition_bits_Game = 7,
  42. k_EMsgGCCStrike15_v2_MatchmakingGameComposition_bits_MapGroup = 24,
  43. };
  44. enum EMsgGCCStrike15_v2_MatchmakingGame_t // & 0xF (values from 1 to 15)
  45. {
  46. // 1 .. 2 .. 3 are available
  47. k_EMsgGCCStrike15_v2_MatchmakingGame_ArmsRace = 4,
  48. k_EMsgGCCStrike15_v2_MatchmakingGame_Demolition = 5,
  49. k_EMsgGCCStrike15_v2_MatchmakingGame_Deathmatch = 6,
  50. k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCasual = 7,
  51. k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCompetitive = 8, // Used since October 2012
  52. k_EMsgGCCStrike15_v2_MatchmakingGame_Cooperative = 9,
  53. k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp2v2 = 10, // Used since April 2017
  54. k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp5v5 = 11, // Used since April 2017
  55. k_EMsgGCCStrike15_v2_MatchmakingGame_Skirmish = 12, // Used since April 2017
  56. // 11 .. 15 are available
  57. };
  58. enum EPlayerRankPipsTypeID_t // STORED IN SQL!
  59. {
  60. k_EPlayerRankPipsTypeID_Undefined = 0, // should never be used
  61. k_EPlayerRankPipsTypeID_ScrimComp2v2_2017 = 1, // Spring 2017 comp 2v2
  62. k_EPlayerRankPipsTypeID_ScrimComp5v5_2017 = 2, // Spring 2017 comp 5v5 weapons expert
  63. };
  64. enum EMsgGCCStrike15_v2_SeasonTime_t
  65. {
  66. k_EMsgGCCStrike15_v2_SeasonTime_2013Autumn = 1392822576, // Operation Bravo ended
  67. k_EMsgGCCStrike15_v2_SeasonTime_2014Winter = 1402958328, // Operation Phoenix ended
  68. k_EMsgGCCStrike15_v2_SeasonTime_2014Summer = 1412899200, // Operation Breakout ended
  69. k_EMsgGCCStrike15_v2_SeasonTime_2015Spring = 1430179200, // Operation Vanguard ended
  70. k_EMsgGCCStrike15_v2_SeasonTime_2015Autumn = 1449089753, // Operation Bloodhound ended
  71. k_EMsgGCCStrike15_v2_SeasonTime_2016Summer = 1472688000, // Operation Wildfire ended
  72. };
  73. enum EMsgGCCStrike15_v2_MatchmakingMapGroup_t // combines with Game_t above, 24 bits available (up to 1<<23)
  74. {
  75. // NOTE: Changing names/values in this enum will break old match info records, which have their
  76. // map group encoded using this enum, and mapped to map name. For details, see
  77. // MatchmakingGameTypeMapToString()
  78. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_dust = ( 1 << 0 ),
  79. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_dust2 = ( 1 << 1 ),
  80. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_train = ( 1 << 2 ),
  81. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_aztec = ( 1 << 3 ),
  82. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_inferno = ( 1 << 4 ),
  83. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_nuke = ( 1 << 5 ),
  84. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_vertigo = ( 1 << 6 ),
  85. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_mirage = ( 1 << 7 ), // (0x080)
  86. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_office = ( 1 << 8 ),
  87. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_italy = ( 1 << 9 ),
  88. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_assault = ( 1 << 10 ),
  89. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_militia = ( 1 << 11 ), // (0x800)
  90. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_cache = ( 1 << 12 ), // Bravo, Phoenix => free
  91. // 13-19 operation maps
  92. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_overpass = ( 1 << 20 ),
  93. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_cbble = ( 1 << 21 ),
  94. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_canals = ( 1 << 22 ),
  95. // 23 free, should be debugged extensively before using as it makes numbers negative (when combined with game type for C++ and SQL)
  96. // k_EMsgGCCStrike15_v2_MatchmakingMapGroup_questionable = ( 1 << 23 ),
  97. // End of Operation Bravo: 1392822576
  98. // Your time zone: 2/19/2014 7:09:36 AM GMT-8
  99. // End of Operation Phoenix: 1402958328
  100. // Your time zone: 6/16/2014 3:38:48 PM GMT-7
  101. // End of Operation Breakout: 1412899200
  102. // Your time zone: 10/9/2014 5:00:00 PM GMT-7
  103. // End of Operation Vanguard: 1430179200
  104. // Your time zone: 4/27/2015, 5:00:00 PM GMT-7
  105. // End of Operation Bloodhound: 1449089753
  106. // Your time zone: 4/27/2015, 5:00:00 PM GMT-7
  107. // End of Operation Wildfire: 1472688000 (significantly before this, actually)
  108. // 9/1/2016, 0:00:00 AM UTC
  109. // defined in Valve main group--
  110. // k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_cache = ( 1 << 12 ), // Bravo, Phoenix => free
  111. // Operation maps (7)
  112. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map01 = ( 1 << 13 ), // (generic)
  113. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_gwalior = ( 1 << 13 ), // Bravo
  114. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_motel = ( 1 << 13 ), // Phoenix
  115. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_rush = ( 1 << 13 ), // Breakout
  116. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_season = ( 1 << 13 ), // Vanguard, Bloodhound
  117. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_cruise = ( 1 << 13 ), // Wildfire
  118. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map02 = ( 1 << 14 ), // (generic)
  119. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_ali = ( 1 << 14 ), // Bravo, Phoenix
  120. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_blackgold = ( 1 << 14 ), // Breakout
  121. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_marquis = ( 1 << 14 ), // Vanguard
  122. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_log = ( 1 << 14 ), // Bloodhound
  123. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_coast = ( 1 << 14 ), // Wildfire
  124. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map03 = ( 1 << 15 ), // (generic)
  125. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_ruins = ( 1 << 15 ), // Bravo
  126. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_thunder = ( 1 << 15 ), // Phoenix
  127. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_mist = ( 1 << 15 ), // Breakout
  128. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_facade = ( 1 << 15 ), // Vanguard
  129. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_rails = ( 1 << 15 ), // Bloodhound
  130. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_empire = ( 1 << 15 ), // Wildfire
  131. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map04 = ( 1 << 16 ), // (generic)
  132. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_chinatown = ( 1 << 16 ), // Bravo
  133. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_favela = ( 1 << 16 ), // Phoenix
  134. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_insertion = ( 1 << 16 ), // Breakout
  135. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_backalley = ( 1 << 16 ), // Vanguard
  136. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_resort = ( 1 << 16 ), // Bloodhound
  137. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_mikla = ( 1 << 16 ), // Wildfire
  138. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map05 = ( 1 << 17 ), // (generic)
  139. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_seaside = ( 1 << 17 ), // Payback, Bravo, Phoenix
  140. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_overgrown = ( 1 << 17 ), // Breakout
  141. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_workout = ( 1 << 17 ), // Vanguard
  142. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_zoo = ( 1 << 17 ), // Bloodhound
  143. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_royal = ( 1 << 17 ), // Wildfire
  144. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map06 = ( 1 << 18 ), // (generic)
  145. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_siege = ( 1 << 18 ), // Bravo
  146. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_downtown = ( 1 << 18 ), // Phoenix
  147. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_castle = ( 1 << 18 ), // Breakout
  148. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_bazaar = ( 1 << 18 ), // Vanguard
  149. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_santorini = ( 1 << 18 ), // Wildfire
  150. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map07 = ( 1 << 19 ), // (generic)
  151. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_agency = ( 1 << 19 ), // Bravo, Phoenix, Bloodhound
  152. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_tulip = ( 1 << 19 ), // Wildfire
  153. // defined in Valve main group--
  154. // k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_overpass = ( 1 << 20 ),
  155. // k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_cbble = ( 1 << 21 ),
  156. // k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_canals = ( 1 << 22 ),
  157. //
  158. // NO MORE BITS AVAILABLE HERE UNFORTUNATELY
  159. // ALL ACTIVE MAPGROUPS MUST FIT IN 0xFFFFFF (24 bits, 1<<0 to 1<<23)
  160. // 1<<23 should be debugged extensively before using as it makes numbers negative (when combined with game type for C++ and SQL)
  161. //
  162. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_tournament_maps =
  163. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_inferno |
  164. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_nuke |
  165. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_mirage |
  166. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_train |
  167. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_overpass |
  168. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_cbble |
  169. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_cache |
  170. 0,
  171. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_operation_maps =
  172. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map01 |
  173. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map02 |
  174. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map03 |
  175. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map04 |
  176. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map05 |
  177. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map06 |
  178. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_map07 |
  179. 0,
  180. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_reserves_maps =
  181. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_dust |
  182. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_aztec |
  183. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_vertigo |
  184. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_canals |
  185. 0,
  186. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_hostage_maps =
  187. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_office |
  188. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_italy |
  189. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_assault |
  190. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_cs_militia |
  191. 0,
  192. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_all_valid =
  193. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_tournament_maps|
  194. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_dust2 |
  195. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_operation_maps |
  196. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_reserves_maps |
  197. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_hostage_maps |
  198. 0,
  199. // --- Begin special mapgroups for non-competitive game modes
  200. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ar_shoots = ( 1 << 0 ), // AR
  201. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_bank = ( 1 << 0 ), // DEMO + 2v2
  202. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ar_baggage = ( 1 << 1 ), // AR
  203. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_shorttrain = ( 1 << 1 ), // DEMO + 2v2
  204. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ar_monastery = ( 1 << 2 ), // AR
  205. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_sugarcane = ( 1 << 2 ), // DEMO + 2v2
  206. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_lake = ( 1 << 3 ), // AR + DEMO + 2v2
  207. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_stmarc = ( 1 << 4 ), // AR + DEMO + 2v2
  208. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_safehouse = ( 1 << 5 ), // AR + DEMO + 2v2
  209. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_shortdust = ( 1 << 6 ), // DEMO + 2v2
  210. // --- combination of special mapgroups for non-competitive game modes
  211. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_AR =
  212. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ar_shoots |
  213. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ar_baggage |
  214. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ar_monastery |
  215. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_lake |
  216. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_stmarc |
  217. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_safehouse |
  218. 0,
  219. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_DEMO =
  220. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_bank |
  221. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_shorttrain |
  222. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_sugarcane |
  223. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_lake |
  224. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_stmarc |
  225. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_safehouse |
  226. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_shortdust |
  227. 0,
  228. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_ScrimComp2v2 =
  229. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_bank |
  230. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_shorttrain |
  231. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_lake |
  232. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_stmarc |
  233. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_safehouse |
  234. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_shortdust |
  235. 0,
  236. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_active = k_EMsgGCCStrike15_v2_MatchmakingMapGroup_tournament_maps, // Active group
  237. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_dust247 = k_EMsgGCCStrike15_v2_MatchmakingMapGroup_de_dust2, // Dust 2 (24x7) group
  238. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_reserves = k_EMsgGCCStrike15_v2_MatchmakingMapGroup_reserves_maps, // Reserves group
  239. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_hostage = k_EMsgGCCStrike15_v2_MatchmakingMapGroup_hostage_maps, // Hostage group
  240. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_op_op07 = k_EMsgGCCStrike15_v2_MatchmakingMapGroup_operation_maps, // Operation 7 group
  241. k_EMsgGCCStrike15_v2_MatchmakingMapGroup_skirmish = ( 1 << 22 ) - 1, // = 0x3fffff. Up to 22 simultaneous skirmish modes are supported
  242. // --- end of special mapgroups for non-competitive game modes
  243. };
  244. enum EMsgGCCStrike15_v2_MatchmakingMap_t
  245. {
  246. //
  247. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  248. //
  249. k_EMsgGCCStrike15_v2_MatchmakingMap_undefined = 0,
  250. k_EMsgGCCStrike15_v2_MatchmakingMap_de_dust = 1,
  251. k_EMsgGCCStrike15_v2_MatchmakingMap_de_dust2 = 2,
  252. k_EMsgGCCStrike15_v2_MatchmakingMap_de_train = 3,
  253. k_EMsgGCCStrike15_v2_MatchmakingMap_de_aztec = 4,
  254. k_EMsgGCCStrike15_v2_MatchmakingMap_de_inferno = 5,
  255. k_EMsgGCCStrike15_v2_MatchmakingMap_de_nuke = 6,
  256. k_EMsgGCCStrike15_v2_MatchmakingMap_de_vertigo = 7,
  257. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_office = 8,
  258. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_italy = 9,
  259. k_EMsgGCCStrike15_v2_MatchmakingMap_ar_baggage = 10,
  260. k_EMsgGCCStrike15_v2_MatchmakingMap_ar_baloney = 11,
  261. k_EMsgGCCStrike15_v2_MatchmakingMap_ar_monastery = 12,
  262. k_EMsgGCCStrike15_v2_MatchmakingMap_ar_shoots = 13,
  263. k_EMsgGCCStrike15_v2_MatchmakingMap_de_bank = 14,
  264. k_EMsgGCCStrike15_v2_MatchmakingMap_de_glass = 15,
  265. k_EMsgGCCStrike15_v2_MatchmakingMap_de_lake = 16,
  266. k_EMsgGCCStrike15_v2_MatchmakingMap_de_safehouse = 17,
  267. k_EMsgGCCStrike15_v2_MatchmakingMap_de_shorttrain = 18,
  268. k_EMsgGCCStrike15_v2_MatchmakingMap_de_stmarc = 19,
  269. k_EMsgGCCStrike15_v2_MatchmakingMap_de_sugarcane = 20,
  270. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_assault = 21,
  271. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_militia = 22,
  272. k_EMsgGCCStrike15_v2_MatchmakingMap_de_mirage = 23,
  273. k_EMsgGCCStrike15_v2_MatchmakingMap_de_cache = 24,
  274. k_EMsgGCCStrike15_v2_MatchmakingMap_de_gwalior = 25,
  275. k_EMsgGCCStrike15_v2_MatchmakingMap_de_ali = 26,
  276. k_EMsgGCCStrike15_v2_MatchmakingMap_de_ruins = 27,
  277. k_EMsgGCCStrike15_v2_MatchmakingMap_de_chinatown = 28,
  278. k_EMsgGCCStrike15_v2_MatchmakingMap_de_seaside = 29,
  279. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_siege = 30,
  280. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_agency = 31,
  281. k_EMsgGCCStrike15_v2_MatchmakingMap_de_overpass = 32,
  282. k_EMsgGCCStrike15_v2_MatchmakingMap_de_cbble = 33,
  283. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_motel = 34,
  284. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_downtown = 35,
  285. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_thunder = 36,
  286. k_EMsgGCCStrike15_v2_MatchmakingMap_de_favela = 37,
  287. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_rush = 38,
  288. k_EMsgGCCStrike15_v2_MatchmakingMap_de_mist = 39,
  289. k_EMsgGCCStrike15_v2_MatchmakingMap_de_castle = 40,
  290. k_EMsgGCCStrike15_v2_MatchmakingMap_de_overgrown = 41,
  291. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_insertion = 42,
  292. k_EMsgGCCStrike15_v2_MatchmakingMap_de_blackgold = 43,
  293. k_EMsgGCCStrike15_v2_MatchmakingMap_de_season = 44,
  294. k_EMsgGCCStrike15_v2_MatchmakingMap_de_marquis = 45,
  295. k_EMsgGCCStrike15_v2_MatchmakingMap_de_facade = 46,
  296. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_backalley = 47,
  297. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_workout = 48,
  298. k_EMsgGCCStrike15_v2_MatchmakingMap_de_bazaar = 49,
  299. k_EMsgGCCStrike15_v2_MatchmakingMap_de_shortdust = 50,
  300. k_EMsgGCCStrike15_v2_MatchmakingMap_de_rails = 51,
  301. k_EMsgGCCStrike15_v2_MatchmakingMap_de_resort = 52,
  302. k_EMsgGCCStrike15_v2_MatchmakingMap_de_zoo = 53,
  303. k_EMsgGCCStrike15_v2_MatchmakingMap_de_log = 54,
  304. k_EMsgGCCStrike15_v2_MatchmakingMap_gd_crashsite = 55,
  305. k_EMsgGCCStrike15_v2_MatchmakingMap_gd_lake = 56,
  306. k_EMsgGCCStrike15_v2_MatchmakingMap_gd_bank = 57,
  307. k_EMsgGCCStrike15_v2_MatchmakingMap_gd_cbble = 58,
  308. k_EMsgGCCStrike15_v2_MatchmakingMap_cs_cruise = 59,
  309. k_EMsgGCCStrike15_v2_MatchmakingMap_de_coast = 60,
  310. k_EMsgGCCStrike15_v2_MatchmakingMap_de_empire = 61,
  311. k_EMsgGCCStrike15_v2_MatchmakingMap_de_mikla = 62,
  312. k_EMsgGCCStrike15_v2_MatchmakingMap_de_royal = 63,
  313. k_EMsgGCCStrike15_v2_MatchmakingMap_de_santorini = 64,
  314. k_EMsgGCCStrike15_v2_MatchmakingMap_de_tulip = 65,
  315. k_EMsgGCCStrike15_v2_MatchmakingMap_gd_sugarcane = 66,
  316. k_EMsgGCCStrike15_v2_MatchmakingMap_coop_cementplant = 67,
  317. k_EMsgGCCStrike15_v2_MatchmakingMap_de_canals = 68,
  318. //
  319. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  320. //
  321. };
  322. //=============================================================================
  323. enum EMsgGCCStrike15_v2_SessionNeed_t
  324. {
  325. //
  326. // WARNING: These constants CANNOT be renumbered as they are used for client<>gc communication
  327. //
  328. // They represent client state to help GC better schedule logon surges
  329. //
  330. k_EMsgGCCStrike15_v2_SessionNeed_Default = 0,
  331. k_EMsgGCCStrike15_v2_SessionNeed_OnServer = 1,
  332. k_EMsgGCCStrike15_v2_SessionNeed_FindGame = 2,
  333. k_EMsgGCCStrike15_v2_SessionNeed_PartyLobby = 3,
  334. k_EMsgGCCStrike15_v2_SessionNeed_Overwatch = 4,
  335. //
  336. // WARNING: These constants CANNOT be renumbered as they are used for client<>gc communication
  337. //
  338. };
  339. //=============================================================================
  340. enum EMsgGCCStrike15_v2_AccountActivity_t
  341. {
  342. //
  343. // WARNING: These constants CANNOT be renumbered as they are used for client<>gc communication
  344. //
  345. // (0-0xF for compact GC representation)
  346. //
  347. k_EMsgGCCStrike15_v2_AccountActivity_None = 0,
  348. k_EMsgGCCStrike15_v2_AccountActivity_Playing = 1,
  349. k_EMsgGCCStrike15_v2_AccountActivity_SpecConnected = 2,
  350. k_EMsgGCCStrike15_v2_AccountActivity_SpecGOTV = 3,
  351. k_EMsgGCCStrike15_v2_AccountActivity_SpecOverwatch = 4,
  352. k_EMsgGCCStrike15_v2_AccountActivity_SpecTwitch = 5,
  353. k_EMsgGCCStrike15_v2_AccountActivity_count = 6,
  354. //
  355. // WARNING: These constants CANNOT be renumbered as they are used for client<>gc communication
  356. //
  357. k_EMsgGCCStrike15_v2_AccountActivity_RatelimitSeconds = 180, // activity messages are ratelimited
  358. };
  359. //=============================================================================
  360. enum EMsgGCCStrike15_v2_MatchmakingKickBanReason_t
  361. {
  362. //
  363. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  364. //
  365. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_VotedOff = 1,
  366. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_TKLimit = 2,
  367. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_TKSpawn = 3,
  368. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_DisconnectedTooLong = 4,
  369. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_Abandoned = 5,
  370. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_THLimit = 6,
  371. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_THSpawn = 7,
  372. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_OfficialBan = 8,
  373. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_KickedTooMuch = 9,
  374. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ConvictedForCheating = 10,
  375. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ConvictedForBehavior = 11,
  376. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_Abandoned_Grace = 12,
  377. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_DisconnectedTooLong_Grace = 13,
  378. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ChallengeNotification = 14,
  379. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_NoUserSession = 15,
  380. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_FailedToConnect = 16,
  381. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_KickAbuse = 17,
  382. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_SkillGroupCalibration = 18,
  383. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_GsltViolation = 19,
  384. k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_GsltViolation_Repeated = 20,
  385. //
  386. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  387. //
  388. };
  389. inline bool EMsgGCCStrike15_v2_MatchmakingKickBanReason_IsGlobal( uint32 eReason )
  390. {
  391. switch ( eReason )
  392. {
  393. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_OfficialBan:
  394. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ConvictedForCheating:
  395. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ConvictedForBehavior:
  396. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ChallengeNotification:
  397. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_GsltViolation:
  398. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_GsltViolation_Repeated:
  399. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_NoUserSession:
  400. return true;
  401. default:
  402. return false;
  403. }
  404. }
  405. inline bool EMsgGCCStrike15_v2_MatchmakingKickBanReason_IsPermanent( uint32 eReason )
  406. {
  407. switch ( eReason )
  408. {
  409. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_OfficialBan:
  410. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ConvictedForCheating:
  411. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_ChallengeNotification:
  412. return true;
  413. default:
  414. return false;
  415. }
  416. }
  417. inline bool EMsgGCCStrike15_v2_MatchmakingKickBanReason_IsGreen( uint32 eReason )
  418. {
  419. switch ( eReason )
  420. {
  421. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_Abandoned_Grace:
  422. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_DisconnectedTooLong_Grace:
  423. case k_EMsgGCCStrike15_v2_MatchmakingKickBanReason_SkillGroupCalibration:
  424. return true;
  425. default:
  426. return false;
  427. }
  428. }
  429. //=============================================================================
  430. enum EMMV2OverwatchCasesVerdict_t
  431. {
  432. // CSGO V2 Overwatch case verdict field, stored in SQL
  433. k_EMMV2OverwatchCasesVerdict_Pending = 0,
  434. k_EMMV2OverwatchCasesVerdict_Dismissed = 1,
  435. k_EMMV2OverwatchCasesVerdict_ConvictedForCheating = 2,
  436. k_EMMV2OverwatchCasesVerdict_ConvictedForBehavior = 3,
  437. };
  438. enum EMMV2OverwatchCasesUpdateReason_t
  439. {
  440. // CSGO V2 Overwatch case update request reason, used for communication between client and GC
  441. k_EMMV2OverwatchCasesUpdateReason_Poll = 0, // Client is polling for an overwatch case
  442. k_EMMV2OverwatchCasesUpdateReason_Assign = 1, // Client is eager to get a case assigned and work on it
  443. k_EMMV2OverwatchCasesUpdateReason_Downloading = 2, // Client is downloading the case files
  444. k_EMMV2OverwatchCasesUpdateReason_Verdict = 3, // Client is willing to cast a verdict on a previously assigned case
  445. };
  446. enum EMMV2OverwatchCasesStatus_t
  447. {
  448. // CSGO V2 Overwatch case status field, stored in SQL
  449. k_EMMV2OverwatchCasesStatus_Default = 0,
  450. k_EMMV2OverwatchCasesStatus_Ready = 1,
  451. k_EMMV2OverwatchCasesStatus_ErrorDownloading = 2,
  452. k_EMMV2OverwatchCasesStatus_ErrorExtracting = 3,
  453. };
  454. enum EMMV2OverwatchCasesType_t
  455. {
  456. // CSGO V2 Overwatch case type field, stored in SQL
  457. k_EMMV2OverwatchCasesType_Reports = 0,
  458. k_EMMV2OverwatchCasesType_Placebo = 1,
  459. k_EMMV2OverwatchCasesType_VACSuspicion = 2,
  460. k_EMMV2OverwatchCasesType_Manual = 3,
  461. k_EMMV2OverwatchCasesType_MLSuspicion = 4,
  462. k_EMMV2OverwatchCasesType_Max = 5,
  463. };
  464. //=============================================================================
  465. inline uint32 MatchmakingGameTypeCompose( EMsgGCCStrike15_v2_MatchmakingGame_t eGame, EMsgGCCStrike15_v2_MatchmakingMapGroup_t eMapGroup )
  466. {
  467. return ( ( uint32( eGame ) & 0xF ) << 0 ) | ( ( uint32( eMapGroup ) & 0xFFFFFF ) << 8 );
  468. }
  469. inline EMsgGCCStrike15_v2_MatchmakingGame_t MatchmakingGameTypeToGame( uint32 uiGameType )
  470. {
  471. return ( EMsgGCCStrike15_v2_MatchmakingGame_t ) ( ( uiGameType >> 0 ) & 0xF );
  472. }
  473. inline EMsgGCCStrike15_v2_MatchmakingMapGroup_t MatchmakingGameTypeToMapGroup( uint32 uiGameType )
  474. {
  475. return ( EMsgGCCStrike15_v2_MatchmakingMapGroup_t ) ( ( uiGameType >> 8 ) & 0xFFFFFF );
  476. }
  477. inline EPlayerRankPipsTypeID_t MatchmakingGameTypeToPipsTypeID( uint32 uiGameType )
  478. {
  479. switch ( MatchmakingGameTypeToGame( uiGameType ) )
  480. {
  481. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp2v2:
  482. return k_EPlayerRankPipsTypeID_ScrimComp2v2_2017;
  483. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp5v5:
  484. return k_EPlayerRankPipsTypeID_ScrimComp5v5_2017;
  485. default:
  486. return k_EPlayerRankPipsTypeID_Undefined;
  487. }
  488. }
  489. inline bool MatchmakingGameTypeGameIsQueued( EMsgGCCStrike15_v2_MatchmakingGame_t eGame )
  490. {
  491. switch ( eGame )
  492. {
  493. case k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCompetitive:
  494. case k_EMsgGCCStrike15_v2_MatchmakingGame_Cooperative:
  495. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp2v2:
  496. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp5v5:
  497. return true;
  498. default:
  499. return false;
  500. }
  501. }
  502. inline bool MatchmakingGameTypeGameIsQueuedWithMostStats( EMsgGCCStrike15_v2_MatchmakingGame_t eGame )
  503. {
  504. switch ( eGame )
  505. {
  506. case k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCompetitive:
  507. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp2v2:
  508. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp5v5:
  509. return true;
  510. default:
  511. return false;
  512. }
  513. }
  514. inline bool MatchmakingGameTypeGameIsQueuedWithFullMatchStats( EMsgGCCStrike15_v2_MatchmakingGame_t eGame )
  515. {
  516. switch ( eGame )
  517. {
  518. case k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCompetitive:
  519. return true;
  520. default:
  521. return false;
  522. }
  523. }
  524. inline bool MatchmakingGameTypeGameIsSingleMapGroup( EMsgGCCStrike15_v2_MatchmakingGame_t eGame )
  525. {
  526. switch ( eGame )
  527. {
  528. case k_EMsgGCCStrike15_v2_MatchmakingGame_Cooperative:
  529. case k_EMsgGCCStrike15_v2_MatchmakingGame_Skirmish:
  530. return true;
  531. default:
  532. return false;
  533. }
  534. }
  535. inline EMsgGCCStrike15_v2_MatchmakingMapGroup_t MatchmakingGameTypeMapGroupExtendToLargeGroup( EMsgGCCStrike15_v2_MatchmakingGame_t eGame, EMsgGCCStrike15_v2_MatchmakingMapGroup_t eGroup )
  536. {
  537. switch ( eGame )
  538. {
  539. case k_EMsgGCCStrike15_v2_MatchmakingGame_ArmsRace:
  540. return k_EMsgGCCStrike15_v2_MatchmakingMapGroup_AR;
  541. case k_EMsgGCCStrike15_v2_MatchmakingGame_Demolition:
  542. return k_EMsgGCCStrike15_v2_MatchmakingMapGroup_DEMO;
  543. case k_EMsgGCCStrike15_v2_MatchmakingGame_Deathmatch:
  544. case k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCasual:
  545. #define MAPGROUPENUM( mgname ) if ( k_EMsgGCCStrike15_v2_MatchmakingMapGroup_##mgname & eGroup ) return k_EMsgGCCStrike15_v2_MatchmakingMapGroup_##mgname;
  546. /** Removed for partner depot **/
  547. #undef MAPGROUPENUM
  548. return eGroup;
  549. default:
  550. return eGroup;
  551. }
  552. }
  553. inline uint32 MatchmakingGameTypeGameMaxPlayers( EMsgGCCStrike15_v2_MatchmakingGame_t eGame )
  554. {
  555. switch ( eGame )
  556. {
  557. case k_EMsgGCCStrike15_v2_MatchmakingGame_ArmsRace: return 10;
  558. case k_EMsgGCCStrike15_v2_MatchmakingGame_Demolition: return 10;
  559. case k_EMsgGCCStrike15_v2_MatchmakingGame_Deathmatch: return 16;
  560. case k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCasual: return 20;
  561. case k_EMsgGCCStrike15_v2_MatchmakingGame_ClassicCompetitive: return 10;
  562. case k_EMsgGCCStrike15_v2_MatchmakingGame_Cooperative: return 2;
  563. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp2v2: return 4;
  564. case k_EMsgGCCStrike15_v2_MatchmakingGame_ScrimComp5v5: return 10;
  565. case k_EMsgGCCStrike15_v2_MatchmakingGame_Skirmish: return 16; // $$$REI TODO Decide # of players in skirmish. Right now using DM as base.
  566. default: return 10;
  567. }
  568. }
  569. inline char const * MatchmakingGameTypeMapToString( EMsgGCCStrike15_v2_MatchmakingMapGroup_t eMapGroup, uint64 uiMatchID )
  570. {
  571. char const *szMap = NULL;
  572. /** Removed for partner depot **/
  573. return szMap;
  574. }
  575. //=============================================================================
  576. enum EMsgGCCStrike15_v2_WatchInfoConstants_t
  577. {
  578. k_EMsgGCCStrike15_v2_WatchInfoConstants_MaxAccountsBatchSize = 50, // How many accounts can be requested in a batch
  579. k_EMsgGCCStrike15_v2_WatchInfoConstants_MaxAccountsBatchRate = 5, // 5 requests per minute are allowed
  580. };
  581. //=============================================================================
  582. enum EMsgGCCStrike15_v2_GC2ClientMsgType
  583. {
  584. k_EMsgGCCStrike15_v2_GC2ClientMsgType_Unconnected = 0, // Client is Unconnected
  585. k_EMsgGCCStrike15_v2_GC2ClientMsgType_Unauthorized = 1, // Client is Unauthorized
  586. k_EMsgGCCStrike15_v2_GC2ClientMsgType_Unrecognized = 2, // Unrecognized request
  587. k_EMsgGCCStrike15_v2_GC2ClientMsgType_BadPayload = 3, // Request was recognized, but payload was bad
  588. k_EMsgGCCStrike15_v2_GC2ClientMsgType_ExecutionError = 4, // Request was not executed
  589. k_EMsgGCCStrike15_v2_GC2ClientMsgType_PrintTextWarning = 5, // Response is warning text to be displayed to client
  590. k_EMsgGCCStrike15_v2_GC2ClientMsgType_PrintTextInfo = 6, // Response is informational text to be displayed to client
  591. k_EMsgGCCStrike15_v2_GC2ClientMsgType_WriteFile = 7, // Response is potentially binary payload to be written to response file
  592. };
  593. //=============================================================================
  594. enum EMsgGCCStrike15_v2_GC2ClientNoteType
  595. {
  596. k_EMsgGCCStrike15_v2_GC2ClientNoteType_None = 0, // Nothing
  597. k_EMsgGCCStrike15_v2_GC2ClientNoteType_ClusterLoadHigh = 1, // Datacenter has high load
  598. k_EMsgGCCStrike15_v2_GC2ClientNoteType_ClusterOffline = 2, // Datacenter is offline
  599. };
  600. //=============================================================================
  601. //=============================================================================
  602. enum EMsgGCAccountPrivacySettingsType_t
  603. {
  604. //
  605. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  606. //
  607. k_EMsgGCAccountPrivacySettingsType_PlayerProfile = 1, // Player profile including competitive information and commendations
  608. //
  609. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  610. //
  611. };
  612. enum EMsgGCAccountPrivacySettingsValue_t
  613. {
  614. //
  615. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  616. //
  617. k_EMsgGCAccountPrivacySettingsValue_Default = 1, // Setting should be reset to default for the player
  618. k_EMsgGCAccountPrivacySettingsValue_Disabled = 2, // Setting should be disabled
  619. k_EMsgGCAccountPrivacySettingsValue_Enabled = 3, // Setting should be enabled
  620. //
  621. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  622. //
  623. };
  624. inline bool EMsgGCAccountPrivacySettingsType_IsExposedToClient( EMsgGCAccountPrivacySettingsType_t val )
  625. {
  626. return ( val == k_EMsgGCAccountPrivacySettingsType_PlayerProfile );
  627. }
  628. //=============================================================================
  629. enum EMsgGCAccountPrivacyRequestLevel_t
  630. {
  631. //
  632. // WARNING: These constants are used in protobuf communication and cannot renumber if used in same proto field!
  633. //
  634. k_EMsgGCAccountPrivacySettingsValue_Public_All = 0, // Requesting data that is already easily available to everybody (e.g. persona name)
  635. k_EMsgGCAccountPrivacySettingsValue_Public_Shared = 0x10, // Setting can be shared with public
  636. k_EMsgGCAccountPrivacySettingsValue_Friends_Only = 0x20, // Setting shared with friends
  637. k_EMsgGCAccountPrivacySettingsValue_Private_All = 0x80, // All information that should already be available to the owner
  638. //
  639. // WARNING: These constants are used in protobuf communication and cannot renumber if used in same proto field!
  640. //
  641. };
  642. //=============================================================================
  643. enum EMsgGCVarValueNotificationInfoType_t
  644. {
  645. //
  646. // WARNING: These constants are used in protobuf communication and cannot renumber if used in same proto field!
  647. //
  648. k_EMsgGCVarValueNotificationInfoType_Cmd = 0, // Data from user cmd
  649. k_EMsgGCVarValueNotificationInfoType_Divergence = 1, // Divergence of viewangles
  650. k_EMsgGCVarValueNotificationInfoType_Inventory = 2, // Community server misrepresenting inventory or rank
  651. //
  652. // WARNING: These constants are used in protobuf communication and cannot renumber if used in same proto field!
  653. //
  654. };
  655. //=============================================================================
  656. enum EMsgGCCStrike15_v2_NqmmRating_t
  657. {
  658. k_EMsgGCCStrike15_v2_NqmmRating_Version_Current = 1, // Current version of nqmm rating serialization
  659. };
  660. //=============================================================================
  661. enum EScoreLeaderboardDataEntryTag_t
  662. {
  663. //
  664. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  665. //
  666. k_EScoreLeaderboardDataEntryTag_undefined = 0,
  667. k_EScoreLeaderboardDataEntryTag_Kills = 1,
  668. k_EScoreLeaderboardDataEntryTag_Assists = 2,
  669. k_EScoreLeaderboardDataEntryTag_Deaths = 3,
  670. k_EScoreLeaderboardDataEntryTag_Points = 4,
  671. k_EScoreLeaderboardDataEntryTag_Headshots = 5,
  672. k_EScoreLeaderboardDataEntryTag_ShotsFired = 6,
  673. k_EScoreLeaderboardDataEntryTag_ShotsOnTarget = 7,
  674. k_EScoreLeaderboardDataEntryTag_HpDmgInflicted = 8,
  675. k_EScoreLeaderboardDataEntryTag_HpDmgSuffered = 9,
  676. k_EScoreLeaderboardDataEntryTag_TimeElapsed = 10,
  677. k_EScoreLeaderboardDataEntryTag_TimeRemaining = 11,
  678. k_EScoreLeaderboardDataEntryTag_RoundsPlayed = 12,
  679. k_EScoreLeaderboardDataEntryTag_BonusPistolOnly = 13,
  680. k_EScoreLeaderboardDataEntryTag_BonusHardMode = 14,
  681. k_EScoreLeaderboardDataEntryTag_BonusChallenge = 15,
  682. //
  683. // WARNING: These constants CANNOT be renumbered as they are stored in SQL!
  684. //
  685. };
  686. //=============================================================================
  687. #endif //CSTRIKE15_GCCONSTANTS_H