Team Fortress 2 Source Code as on 22/4/2020
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.

611 lines
26 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================
  7. #ifndef CLIENTENUMS_H
  8. #define CLIENTENUMS_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. enum ELogonState
  13. {
  14. k_ELogonStateNotLoggedOn = 0,
  15. k_ELogonStateLoggingOn = 1,
  16. k_ELogonStateLoggingOff = 2,
  17. k_ELogonStateLoggedOn = 3
  18. };
  19. // Enums for all personal questions supported by the system.
  20. enum EPersonalQuestion
  21. {
  22. // Never ever change these after initial release.
  23. k_EPSMsgNameOfSchool = 0, // Question: What is the name of your school?
  24. k_EPSMsgFavoriteTeam = 1, // Question: What is your favorite team?
  25. k_EPSMsgMothersName = 2, // Question: What is your mother's maiden name?
  26. k_EPSMsgNameOfPet = 3, // Question: What is the name of your pet?
  27. k_EPSMsgChildhoodHero = 4, // Question: Who was your childhood hero?
  28. k_EPSMsgCityBornIn = 5, // Question: What city were you born in?
  29. k_EPSMaxPersonalQuestion
  30. };
  31. // account flags (stored in DB)
  32. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASEd
  33. enum EAccountFlags
  34. {
  35. m_EAccountFlagNormalUser = 0, // Standard user level (yes, this is meant to be zero)
  36. k_EAccountFlagPersonaNameSet = ( 1 << 0 ), // true if the user has set the persona name they really want, instead of the auto-generated one
  37. k_EAccountFlagUnbannable = ( 1 << 1 ), // whatever happens, this account can't be banned
  38. k_EAccountFlagPasswordSet = ( 1 << 2 ), // we've set the password at least once on this account
  39. k_EAccountFlagSupport = ( 1 << 3 ), // Enables use of web support tool
  40. k_EAccountFlagAdmin = ( 1 << 4 ), // The name says it all, can do everything
  41. k_EAccountFlagSupervisor = ( 1 << 5 ), // support supervisory role
  42. k_EAccountFlagAppEditor = ( 1 << 6 ), // Can edit app info
  43. k_EAccountFlagHWIDSet = ( 1 << 7 ), // Set HWID once
  44. k_EAccountFlagPersonalQASet = ( 1 << 8 ), // user has personal Question & anser set
  45. k_EAccountFlagVacBeta = ( 1 << 9 ), // user participates in VAC beta tests
  46. k_EAccountFlagDebug = ( 1 << 10 ), // user is in debug mode, eg VAC doesn't kick etc
  47. k_EAccountFlagDisabled = ( 1 << 11 ), // account is disabled.
  48. k_EAccountFlagLimitedUser = ( 1 << 12 ), // account is limited user account because it doesnt own anything
  49. k_EAccountFlagLimitedUserForce = ( 1 << 13 ), // account is limited user account because we forced it to be
  50. k_EAccountFlagEmailValidated = ( 1 << 14 ), // user has verified email address via WG
  51. k_EAccountFlagMarketingTreatment = ( 1 << 15), // account is flagged as being in a treatment for marketing/sales experiments
  52. };
  53. // profile state (stored in DB)
  54. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  55. enum ECommunityProfileState
  56. {
  57. k_ECommunityProfileNotCreated = 0, // user hasn't setup community account yet
  58. k_ECommunityProfileActive = 1, // user joined community, site is public
  59. k_ECommunityProfilePrivate = 2, // user joined community, site is private
  60. k_ECommunityProfileLocked = 3, // user got locked, content can't be changed but is still accessible
  61. k_ECommunityProfileDisabled = 4, // user got disabled, site not accessible anymore
  62. };
  63. // profile privacy option setting (stored in DB)
  64. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  65. enum ECommunityPrivacyState
  66. {
  67. k_ECommunityPrivacyInvalid = 0,
  68. k_ECommunityPrivacyPrivate = 1, // ain't nobody can see it
  69. k_ECommunityPrivacyFriendsOnly = 2, // only your friends can see it
  70. k_ECommunityPrivacyPublic = 3, // anybody could see it
  71. };
  72. enum ECommunityVisibilityState
  73. {
  74. k_ECommunityVisibilityPrivate = 1, // private, requester see only public fields
  75. k_ECommunityVisibilityFriendsOnly = 2, // friends only, requester sees only public fields
  76. k_ECommunityVisibilityOpen = 3, // it is visible to requester; they are owner or friend or public
  77. k_ECommunityVisibilitySupportPrivate = 4, // was private, but it's a support account asking
  78. k_ECommunityVisibilitySupportFriendsOnly = 5,// was friends only, but it's a support account asking
  79. };
  80. enum ECommentPermission
  81. {
  82. k_ECommentPermissionFriendsOnly = 0, // only friends can leave a comment
  83. k_ECommentPermissionAnyone = 1, // anybody can leave a comment
  84. k_ECommentPermissionSelfOnly = 2, // only the account owner can leave a comment
  85. };
  86. // Payment methods for purchases - BIT FLAGS so can be used to indicate
  87. // acceptable payment methods for packages
  88. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  89. enum EPaymentMethod
  90. {
  91. k_EPaymentMethodNone = 0x000, // user got the license for free
  92. k_EPaymentMethodActivationCode = 0x001, // user paid by entering unused CD-Key or other activation code
  93. k_EPaymentMethodCreditCard = 0x002, // user paid with credit card
  94. k_EPaymentMethodPayPal = 0x004, // user paid with via paypal
  95. k_EPaymentMethodGuestPass = 0x008, // user paid by redeeming a guest pass
  96. k_EPaymentMethodHardwarePromo = 0x010, // user presented machine credentials
  97. k_EPaymentMethodClickAndBuy = 0x020, // ClickandBuy
  98. k_EPaymentMethodAutoGrant = 0x040, // server side purchased package, things like German specific TF2 free weekend
  99. k_EPaymentMethodWallet = 0x080, // user paid with wallet
  100. k_EPaymentMethodOEMTicket = 0x100, // user paid by redeeming a OEM license ticket
  101. k_EPaymentMethodSplit = 0x200, // user paid with wallet AND a provider
  102. };
  103. // Sources for WalletTxn records
  104. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  105. enum EWalletSource
  106. {
  107. k_EWalletSourceInvalid = 0,
  108. k_EWalletSourcePurchase = 1, // Created from a purchase, refund, chargeback, or reverse chargeback (PurchaseRefGID -> TransID)
  109. k_EWalletSourceGuestPass = 2, // Created from a guest pass (PurchaseRefGID -> GuestPassID)
  110. k_EWalletSourceConversion = 3, // Created from a wallet conversion (PurchaseRefGID -> GID shared between debit & credit records)
  111. k_EWalletSourceRebate = 4, // Created from a rebate (PurchaseRefGID -> TransID)
  112. };
  113. // License types
  114. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  115. enum ELicenseType
  116. {
  117. k_ENoLicense = 0, // for shipped goods
  118. k_ESinglePurchase = 1, // single purchase
  119. k_ESinglePurchaseLimitedUse = 2, // single purchase w/ expiration
  120. k_ERecurringCharge = 3, // recurring subscription
  121. k_ERecurringChargeLimitedUse = 4, // recurring subscription w/ limited minutes per period
  122. k_ERecurringChargeLimitedUseWithOverages = 5, // like above but w/ soft limit and overage charges
  123. };
  124. // Flags for licenses - BITS
  125. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  126. enum ELicenseFlags
  127. {
  128. k_ELicenseFlagNone = 0x00, // just a place holder
  129. k_ELicenseFlagRenew = 0x01, // Renew this license next period
  130. k_ELicenseFlagRenewalFailed = 0x02, // Auto-renew failed
  131. k_ELicenseFlagPending = 0x04, // Purchase or renewal is pending
  132. k_ELicenseFlagExpired = 0x08, // Set if no longer active (whatever the reason)
  133. k_ELicenseFlagCancelledByUser = 0x10, // Cancelled by the user
  134. k_ELicenseFlagCancelledByAdmin = 0x20, // Cancelled by customer support
  135. k_ELicenseFlagLowViolenceContent = 0x40,// license is for low violence content
  136. };
  137. // Status of a package
  138. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  139. enum EPackageStatus
  140. {
  141. k_EPackageAvailable = 0, // Available for purchase and use
  142. k_EPackagePreorder = 1, // Available for purchase, as a pre-order
  143. k_EPackageUnavailable = 2, // Not available for new purchases, may still be owned
  144. k_EPackageInvalid = 3, // Either an unknown package or a deleted one that nobody should own
  145. };
  146. // Purchase status
  147. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  148. enum EPurchaseStatus
  149. {
  150. k_EPurchasePending = 0, // purchase is pending, valid but pending subscription
  151. k_EPurchaseSucceeded = 1, // purchase successful, valid subscription
  152. k_EPurchaseFailed = 2, // purchase failed, no subscription
  153. k_EPurchaseRefunded = 3, // we refunded the purchase and removed subscription
  154. k_EPurchaseInit = 4, // user started purchase
  155. k_EPurchaseChargedback = 5, // the user issued a chargeback, we removed subscription
  156. k_EPurchaseRevoked = 6, // we revoked the purchase and removed subscription. Usually stolen CD-Keys
  157. k_EPurchaseInDispute = 7, // the purchase is being disputed by the user, preliminary to a chargeback
  158. };
  159. // LineItemTypes
  160. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASEd
  161. enum ELineItemType
  162. {
  163. k_ELineItemTypeInvalid = 0, // Unknown - load all purchase line items
  164. k_ELineItemTypeMicroTxn = ( 1 << 0 ), // Transaction has data in MicroTxnLineItem table
  165. k_ELineItemTypeWallet = ( 1 << 1 ), // Transaction has data in WalletLineItem table
  166. k_ELineItemTypePkg = ( 1 << 2 ), // Transaction has data in PurchaseLineItem table
  167. };
  168. // Enum for the types of news push items you can get
  169. enum ENewsUpdateType
  170. {
  171. k_EAppNews = 0, // news about a particular app
  172. k_ESteamAds = 1, // Marketing messages
  173. k_ESteamNews = 2, // EJ's corner and the like
  174. k_ECDDBUpdate = 3, // backend has a new CDDB for you to load
  175. k_EClientUpdate = 4, // new version of the steam client is available
  176. };
  177. // Detailed purchase result codes for the client
  178. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  179. enum EPurchaseResultDetail
  180. {
  181. k_EPurchaseResultNoDetail = 0,
  182. k_EPurchaseResultAVSFailure = 1,
  183. k_EPurchaseResultInsufficientFunds = 2,
  184. k_EPurchaseResultContactSupport = 3,
  185. k_EPurchaseResultTimeout = 4,
  186. k_EPurchaseResultInvalidPackage = 5,
  187. k_EPurchaseResultInvalidPaymentMethod = 6,
  188. k_EPurchaseResultInvalidData = 7,
  189. k_EPurchaseResultOthersInProgress = 8,
  190. k_EPurchaseResultAlreadyPurchased = 9,
  191. k_EPurchaseResultWrongPrice = 10,
  192. k_EPurchaseResultFraudCheckFailed = 11,
  193. k_EPurchaseResultCancelledByUser = 12,
  194. k_EPurchaseResultRestrictedCountry = 13,
  195. k_EPurchaseResultBadActivationCode = 14, // this code gives no receipt
  196. k_EPurchaseResultDuplicateActivationCode = 15,
  197. k_EPurchaseResultUseOtherPaymentMethod = 16, // User should try a different payment method
  198. k_EPurchaseResultUseOtherFundingSource = 17, // Select a different funding source (paypal)
  199. k_EPurchaseResultInvalidShippingAddress = 18, // Shipping address is invalid (paypal)
  200. k_EPurchaseResultRegionNotSupported = 19, // This region is not supported with this payment type
  201. k_EPurchaseResultAcctIsBlocked = 20, // Acct has been blocked by provider - user should contact provider to resolve
  202. k_EPurchaseResultAcctNotVerified = 21, // Provider indicated account needs to be verified for transaction to complete
  203. k_EPurchaseResultInvalidAccount = 22, // Provider indicated the account is invalid or no longer usable
  204. k_EPurchaseResultStoreBillingCountryMismatch = 23, // store country code & billing country code do not match
  205. k_EPurchaseResultDoesNotOwnRequiredApp = 24, // user does not own one of the apps required for purchase
  206. k_EPurchaseResultCanceledByNewTransaction = 25, // user made a new transaction which canceled an old, pending transaction
  207. k_EPurchaseResultForceCanceledPending = 26, // A pending transaction was force canceled (no response from provider)
  208. k_EPurchaseResultFailCurrencyTransProvider = 27, // selected transaction provider does not support calculated currency
  209. k_EPurchaseResultFailedCyberCafe = 28, // cybercafe account tried to purchase or use an activation code
  210. k_EPurchaseResultNeedsPreApproval = 29, // Transaction needs approval from support
  211. k_EPurchaseResultPreApprovalDenied = 30, // Transaction was denied by support
  212. k_EPurchaseResultWalletCurrencyMismatch = 31, // Currency of purchase does not match currency of wallet
  213. };
  214. // Type of system IM. The client can use this to do special UI handling in specific circumstances
  215. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  216. enum ESystemIMType
  217. {
  218. k_ESystemIMRawText = 0,
  219. k_ESystemIMInvalidCard = 1,
  220. k_ESystemIMRecurringPurchaseFailed = 2,
  221. k_ESystemIMCardWillExpire = 3,
  222. k_ESystemIMSubscriptionExpired = 4,
  223. k_ESystemIMGuestPassReceived = 5, // User has received a guest pass from a friend
  224. k_ESystemIMGuestPassGranted = 6, // System has granted a user a guest pass to give out
  225. k_ESystemIMGiftRevoked = 7, // We revoked a gift due to chargeback, etc
  226. //
  227. k_ESystemIMTypeMax
  228. };
  229. // Ways an external cd key can be munged onto a users PC
  230. enum ELegacyKeyRegistrationMethod
  231. {
  232. eLegacyKeyRegistrationMethodNone = 0, // doesn't support legacy cd keys
  233. eLegacyKeyRegistrationMethodRegistry, // just place it into the registry
  234. eLegacyKeyRegistrationMethodDisk, // put it in a file on disk
  235. };
  236. // Support events, generated by system or support input
  237. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  238. enum ESupportEvent
  239. {
  240. // support activity
  241. eSupportNote = 0, // a generic support note
  242. eSupportLogin = 1, // support account logged in out, data: IP:Port
  243. eSupportLogoff = 2, // support account logged out, text: IP:Port
  244. eSupportTicketCreated = 3, // a support ticket was created
  245. eSupportTicketClosed = 4, // problem was solved, ticket closed
  246. // account changes
  247. eSupportEnableAccount = 5, // support enabled account, text: reason
  248. eSupportDisableAccount = 6, // support disabled account, text: reason
  249. eSupportChangeAccountPassword = 7, // support or user changed password, data: DONT include old password
  250. eSupportChangeAccountEmail = 8, // support or user changed email, data: old email
  251. eSupportChangeAccountName = 9, // support or user changed name, data: old name
  252. eSupportChangeAccountPlayer = 10, // support or user changed player name, data: old name
  253. eSupportPurchaseChargedback = 11, // a charge back was issued
  254. eSupportPurchaseRefunded = 12, // a refund was issued
  255. eSupportPurchaseForcedCompletion = 13, // support forced a pending purchase to complete
  256. // license handling
  257. eSupportLicenseAdded = 14, // support added a license, text: reason
  258. eSupportLicenseCanceled = 15, // support or user cancel a license
  259. eSupportLicenseChanged = 16, // support removed a license, text: reason
  260. eSupportBannedGame = 17, // support banned game for an account
  261. eSupportUnbannedGame = 18, // support unbanned game for an account
  262. // purchase activity
  263. eSupportRunPurchase = 19,
  264. eSupportChangedCreditCard = 20, // support updated a credit card
  265. eSupportSetNoFraudCheckFlag = 21, // support disabled fraud check, data: reason
  266. // banning
  267. eSupportBannedCreditCard = 22, // support banned a credit card
  268. eSupportBannedIP = 23, // support banned an IP
  269. eSupportBannedCDKey = 24, // support banned an CDKey
  270. eSupportBannedCountry = 25, // support banned a country
  271. eSupportBannedPayPalAccount = 26,
  272. eSupportPurchaseCanceled = 27, // support forced a pending purchase to cancel
  273. eSupportChangeAvatar = 28,
  274. eSupportChangeProfileURL = 29,
  275. eSupportRegisterCDKey = 30, // support added a CD key to this account
  276. eSupportGrantGuestPass = 31, // support granted a guest pass to this account
  277. eSupportResubmitTransaction = 32, // support resubmitted a transaction
  278. eSupportResetContent = 33, // reset user content based on abuse reports
  279. eSupportLockProfile = 34, // temp block a user from modifying community content
  280. eSupportSetCommunityState = 35, // perm lock a user profile, can't be modified
  281. eSupportDeleteAbuseReports = 36, // deleted abuse reports for the SteamID
  282. eSupportSetAccountFlags = 37, // changed account flags
  283. eSupportChargebackStatusUpdate = 38, // support updated the pending chargeback status
  284. eSupportRefundForcedCompletion = 39, // support forced a pending refund to complete
  285. eSupportRefundCanceled = 40, // support forced a pending refund to cancel
  286. eSupportRevokeActivationKey = 41, // support revoked and unlocked activation key
  287. eSupportReverseChargeback = 42, // a charge back was reversed
  288. eSupportRejectedActivationKey = 43, // activation key was rejected (invalid or already used)
  289. eSupportPurchaseError = 44, // Purchase error
  290. eSupportAudited = 45,
  291. // items
  292. eSupportBanItems = 46, // support banned a user's items
  293. eSupportRestoreBannedItems = 47, // support restored banned items
  294. eSupportRestoreDeletedItems = 48, // support restored deleted items
  295. // comments
  296. eSupportDeleteComments = 49, // cleared comments on this account (not written by this account)
  297. eSupportDeleteItems = 50, // support deleted a user's items
  298. eSupportDeleteCachedCard = 51, // support deleted a user's cached credit card
  299. eSupportConvertedWallet = 52, // user's wallet was converted
  300. eSupportTxnApproved = 53, // PreApproval granted
  301. eSupportTxnDenied = 54, // PreApproval denied
  302. eSupportGCAction = 55, // used for all support actions from the GC
  303. };
  304. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  305. enum ESupportTicket
  306. {
  307. // all kinds of problems tickets that have to be handled by support
  308. k_ETicketUnknown = 0, // an unknown problem. yay.
  309. k_ETicketManual = 1, // a problem manually entered by support.
  310. k_ETicketFraudRedFlag = 2, // fraud detection marked this account
  311. k_ETicketPurchaseError = 3, // a purchase error happened
  312. k_ETicketChargeback = 4, // a chargeback needs attention
  313. };
  314. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  315. enum ESupportTicketState
  316. {
  317. // all kinds of problems tickets that have to be handled by support
  318. k_ETicketStateUnknown = 0, // support issue state is unknown
  319. k_ETicketStateUnassigned = 1, // support issue is 'open' but not assigned yet
  320. k_ETicketStateInProcess = 2, // support issue is assigned to an support actor
  321. k_ETicketStateResolved = 3, // support issue is fixed and closed
  322. k_ETicketStateUnresolved = 4, // support issue couldn't be fixed. closed anyway
  323. k_ETicketStateAutoClosed = 5, // System closed the ticket automatically
  324. };
  325. //-----------------------------------------------------------------------------
  326. // types of content that can be reported as abused
  327. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  328. //-----------------------------------------------------------------------------
  329. enum ECommunityContentType
  330. {
  331. k_EContentUnspecified = 0,
  332. k_EContentAll = 1, // reset all community content
  333. k_EContentAvatarImage = 2, // clear avatar image
  334. k_EContentProfileText = 3, // reset profile text
  335. k_EContentWebLinks = 4, // delete web links
  336. k_EContentAnnouncement = 5,
  337. k_EContentEventText = 6,
  338. k_EContentCustomCSS = 7,
  339. k_EContentProfileURL = 8, // delete community URL ID
  340. k_EContentComments = 9, // just comments this guy has written
  341. };
  342. //-----------------------------------------------------------------------------
  343. // types of reasons why a violation report was issued
  344. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  345. //-----------------------------------------------------------------------------
  346. enum EAbuseReportType
  347. {
  348. k_EAbuseUnspecified = 0,
  349. k_EAbuseInappropriate = 1, // just not ok to post
  350. k_EAbuseProhibited = 2, // prohibited by EULA or general law
  351. k_EAbuseSpamming = 3, // excessive spamming
  352. k_EAbuseAdvertisement = 4, // unwanted advertisement
  353. k_EAbuseExploit = 5, // content data attempts to exploit code issue
  354. k_EAbuseSpoofing = 6, // user/group is impersonating an official contact
  355. k_EAbuseLanguage = 7, // bad language
  356. k_EAbuseAdultContent = 8, // any kind of adult material, references etc
  357. k_EAbuseHarassment = 9, // harassment, discrimination, racism etc
  358. };
  359. //-----------------------------------------------------------------------------
  360. // actions for a user within a clan for logging in the ClanHistory table
  361. //-----------------------------------------------------------------------------
  362. enum EClanAction
  363. {
  364. k_EJoined = 1, // joined the clan
  365. k_ELeft = 2, // left the clan
  366. k_EPromoted = 3, // promoted to officer
  367. k_EDemoted = 4, // demoted from officer
  368. k_EKicked = 5, // kicked off the clan
  369. k_ECreated = 6, // clan was created
  370. k_EInvited = 7, // invited someone
  371. k_EEventCreated = 8, // clan event created
  372. k_EEventUpdated = 9, // clan event updated
  373. k_EEventDeleted = 10, // clan event deleted
  374. k_EPermissionsChanged = 11, // clan permissions were changed
  375. k_EAnnouncementCreated = 12, // clan announcement created
  376. k_EAnnouncementUpdated = 13, // clan announcement updated
  377. k_EAnnouncementDeleted = 14, // clan announcement deleted
  378. k_EPOTWChanged = 15, // changed the POTW
  379. k_ELinksChanged = 16, // links changed
  380. k_EDetailsChanged = 17, // details changed
  381. k_ESupportResetContent = 18, // support reset some or all of the clan content
  382. k_ESupportLockedGroup = 19, // support locked this clan, it can't be modified anymore
  383. k_ESupportUnlockedGroup = 20, // support unlocked this clan
  384. k_ESupportChangedOwner = 21, // support transfered ownership
  385. k_EMadePublic = 22, // made from private into public
  386. k_EMadePrivate = 23, // made from public into private
  387. k_ESupportDisabledGroup = 24, // support disabled this group, nobody can see it anymore
  388. k_EKickedChat = 25, // kicked from chat
  389. k_EBannedChat = 26, // banned from chat
  390. k_EUnBannedChat = 27, // un-banned from chat
  391. k_EHighestValidAction // keep me updated, please!
  392. };
  393. //-----------------------------------------------------------------------------
  394. // types of events for use in the Clan Event Type table
  395. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  396. //-----------------------------------------------------------------------------
  397. enum EClanEventType
  398. {
  399. k_EOtherEvent = 1,
  400. k_EGameEvent = 2,
  401. k_EPartyEvent = 3,
  402. k_EMeetingEvent = 4,
  403. k_ESpecialCauseEvent = 5,
  404. k_EMusicAndArtsEvent = 6,
  405. k_ESportsEvent = 7,
  406. k_ETripEvent = 8,
  407. k_EChatEvent = 9,
  408. k_EGameReleaseEvent = 10,
  409. };
  410. //-----------------------------------------------------------------------------
  411. // types of marketing messages displayed to users
  412. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  413. //-----------------------------------------------------------------------------
  414. enum EMarketingMessageType
  415. {
  416. k_EMarketingMessageNowAvailable = 1,
  417. k_EMarketingMessageWeekendDeal = 2,
  418. k_EMarketingMessagePrePurchase = 3,
  419. k_EMarketingMessagePlayNow = 4,
  420. k_EMarketingMessagePreloadNow = 5,
  421. k_EMarketingMessageGeneral = 6,
  422. k_EMarketingMessageDemoQuit = 7,
  423. k_EMarketingMessageGifting = 8,
  424. k_EMarketingMessageEJsKorner = 9,
  425. };
  426. //-----------------------------------------------------------------------------
  427. // types of associations a marketing message may have
  428. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  429. //-----------------------------------------------------------------------------
  430. enum EMarketingMessageAssociationType
  431. {
  432. k_EMarketingMessageNoAssociation = 0,
  433. k_EMarketingMessageAppAssociation = 1,
  434. k_EMarketingMessageSubscriptionAssociation = 2,
  435. k_EMarketingMessagePublisherAssociation = 3,
  436. k_EMarketingMessageGenreAssociation = 4,
  437. };
  438. //-----------------------------------------------------------------------------
  439. // Marketing message visibility
  440. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  441. //-----------------------------------------------------------------------------
  442. enum EMarketingMessageVisibility
  443. {
  444. k_EMarketingMessageVisibleBeta = 1,
  445. k_EMarketingMessageVisiblePublic = 2,
  446. };
  447. //-----------------------------------------------------------------------------
  448. // Structures used in multiple messages
  449. //-----------------------------------------------------------------------------
  450. // Purchase message constants
  451. // WARNING: Do not change these if an instance of this record may exist in a database!!!
  452. // BUGBUG derrick - Since these also define schema, they should be moved into steamschema.h
  453. const int k_cchCCNumMax = 16 + 1;
  454. const int k_cchHolderNameMax = 100 + 1;
  455. const int k_cchExpYearMax = 4 + 1;
  456. const int k_cchExpMonthMax = 2 + 1;
  457. const int k_cchCVV2Max = 4 + 1;
  458. const int k_cchAddressMax = 128 + 1;
  459. const int k_cchAddress2Max = k_cchAddressMax;
  460. const int k_cchCityMax = 50 + 1;
  461. const int k_cchPostcodeMax = 16 + 1;
  462. const int k_cchStateMax = 32 + 1;
  463. const int k_cchPhoneMax = 20 + 1;
  464. const int k_cchEmailMax = 100 + 1;
  465. const int k_cchCountryCodeMax = 2 + 1;
  466. const int k_cchPayPalCheckoutTokenMax = 20 + 1;
  467. const int k_cchStateCodeMax = 3 + 1;
  468. const int k_cchCurrencyCodeMax = 3 + 1;
  469. const int k_cubMaxDfsURL = 128; // Max size for URL descriptors on DFS
  470. // License information
  471. struct LicenseInfo_t
  472. {
  473. PackageId_t m_unPackageID;
  474. RTime32 m_RTime32Created;
  475. RTime32 m_RTime32NextProcess;
  476. int32 m_nMinuteLimit;
  477. int32 m_nMinutesUsed;
  478. EPaymentMethod m_ePaymentMethod;
  479. uint32 m_nFlags;
  480. char m_rgchPurchaseCountryCode[k_cchCountryCodeMax];
  481. int32 m_nTerritoryCode;
  482. };
  483. // Supported Currency Codes
  484. // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
  485. enum ECurrencyCode
  486. {
  487. k_ECurrencyCodeInvalid = 0,
  488. k_ECurrencyCodeUSD = 1,
  489. k_ECurrencyCodeGBP = 2,
  490. k_ECurrencyCodeEUR = 3,
  491. k_ECurrencyCodeMax = 4
  492. };
  493. enum ETaxType
  494. {
  495. k_ETaxTypeInvalid = 0,
  496. k_ETaxTypeUSState = 1,
  497. k_ETaxTypeVAT = 2
  498. };
  499. // client stat list
  500. // needs to be kept in the same order, since it's part of the protocol
  501. enum EClientStat
  502. {
  503. k_EClientStatP2PConnectionsUDP = 0,
  504. k_EClientStatP2PConnectionsRelay = 1,
  505. k_EClientStatP2PGameConnections = 2,
  506. k_EClientStatP2PVoiceConnections = 3,
  507. k_EClientStatBytesDownloaded = 4,
  508. k_EClientStatMax, // must be last, used as array's of data
  509. };
  510. enum EP2PState
  511. {
  512. k_EP2PStateNotConnected,
  513. k_EP2PStateUDP,
  514. k_EP2PStateRelay,
  515. };
  516. // User response for authentication request
  517. enum EMicroTxnAuthResponse
  518. {
  519. k_EMicroTxnAuthResponseInvalid = 0, // Invalid value
  520. k_EMicroTxnAuthResponseAuthorize = 1, // user accepted microtransaction
  521. k_EMicroTxnAuthResponseDeny = 2, // user denied microtransaction
  522. k_EMicroTxnAuthResponseAutoDeny = 3, // client automatically denied microtransaction (user wasn't in game, etc.)
  523. };
  524. // Result of authorization request, returned to client
  525. enum EMicroTxnAuthResult
  526. {
  527. k_EMicroTxnAuthResultInvalid = 0, // Invalid value
  528. k_EMicroTxnAuthResultOK = 1, // Successfully authorized
  529. k_EMicroTxnAuthResultFail = 2, // An error occurred
  530. k_EMicroTxnAuthResultInsufficientFunds = 3, // User has insufficient funds to complete microtransaction
  531. };
  532. #endif