summaryrefslogtreecommitdiff
path: root/gcsdk/steamextra/clientenums.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcsdk/steamextra/clientenums.h')
-rw-r--r--gcsdk/steamextra/clientenums.h611
1 files changed, 611 insertions, 0 deletions
diff --git a/gcsdk/steamextra/clientenums.h b/gcsdk/steamextra/clientenums.h
new file mode 100644
index 0000000..a2888d8
--- /dev/null
+++ b/gcsdk/steamextra/clientenums.h
@@ -0,0 +1,611 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef CLIENTENUMS_H
+#define CLIENTENUMS_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+enum ELogonState
+{
+ k_ELogonStateNotLoggedOn = 0,
+ k_ELogonStateLoggingOn = 1,
+ k_ELogonStateLoggingOff = 2,
+ k_ELogonStateLoggedOn = 3
+};
+
+
+// Enums for all personal questions supported by the system.
+enum EPersonalQuestion
+{
+ // Never ever change these after initial release.
+ k_EPSMsgNameOfSchool = 0, // Question: What is the name of your school?
+ k_EPSMsgFavoriteTeam = 1, // Question: What is your favorite team?
+ k_EPSMsgMothersName = 2, // Question: What is your mother's maiden name?
+ k_EPSMsgNameOfPet = 3, // Question: What is the name of your pet?
+ k_EPSMsgChildhoodHero = 4, // Question: Who was your childhood hero?
+ k_EPSMsgCityBornIn = 5, // Question: What city were you born in?
+
+ k_EPSMaxPersonalQuestion
+};
+
+
+// account flags (stored in DB)
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASEd
+enum EAccountFlags
+{
+ m_EAccountFlagNormalUser = 0, // Standard user level (yes, this is meant to be zero)
+ k_EAccountFlagPersonaNameSet = ( 1 << 0 ), // true if the user has set the persona name they really want, instead of the auto-generated one
+ k_EAccountFlagUnbannable = ( 1 << 1 ), // whatever happens, this account can't be banned
+ k_EAccountFlagPasswordSet = ( 1 << 2 ), // we've set the password at least once on this account
+ k_EAccountFlagSupport = ( 1 << 3 ), // Enables use of web support tool
+ k_EAccountFlagAdmin = ( 1 << 4 ), // The name says it all, can do everything
+ k_EAccountFlagSupervisor = ( 1 << 5 ), // support supervisory role
+ k_EAccountFlagAppEditor = ( 1 << 6 ), // Can edit app info
+ k_EAccountFlagHWIDSet = ( 1 << 7 ), // Set HWID once
+ k_EAccountFlagPersonalQASet = ( 1 << 8 ), // user has personal Question & anser set
+ k_EAccountFlagVacBeta = ( 1 << 9 ), // user participates in VAC beta tests
+ k_EAccountFlagDebug = ( 1 << 10 ), // user is in debug mode, eg VAC doesn't kick etc
+ k_EAccountFlagDisabled = ( 1 << 11 ), // account is disabled.
+ k_EAccountFlagLimitedUser = ( 1 << 12 ), // account is limited user account because it doesnt own anything
+ k_EAccountFlagLimitedUserForce = ( 1 << 13 ), // account is limited user account because we forced it to be
+ k_EAccountFlagEmailValidated = ( 1 << 14 ), // user has verified email address via WG
+ k_EAccountFlagMarketingTreatment = ( 1 << 15), // account is flagged as being in a treatment for marketing/sales experiments
+};
+
+// profile state (stored in DB)
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ECommunityProfileState
+{
+ k_ECommunityProfileNotCreated = 0, // user hasn't setup community account yet
+ k_ECommunityProfileActive = 1, // user joined community, site is public
+ k_ECommunityProfilePrivate = 2, // user joined community, site is private
+ k_ECommunityProfileLocked = 3, // user got locked, content can't be changed but is still accessible
+ k_ECommunityProfileDisabled = 4, // user got disabled, site not accessible anymore
+};
+
+
+// profile privacy option setting (stored in DB)
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ECommunityPrivacyState
+{
+ k_ECommunityPrivacyInvalid = 0,
+ k_ECommunityPrivacyPrivate = 1, // ain't nobody can see it
+ k_ECommunityPrivacyFriendsOnly = 2, // only your friends can see it
+ k_ECommunityPrivacyPublic = 3, // anybody could see it
+};
+
+enum ECommunityVisibilityState
+{
+ k_ECommunityVisibilityPrivate = 1, // private, requester see only public fields
+ k_ECommunityVisibilityFriendsOnly = 2, // friends only, requester sees only public fields
+ k_ECommunityVisibilityOpen = 3, // it is visible to requester; they are owner or friend or public
+ k_ECommunityVisibilitySupportPrivate = 4, // was private, but it's a support account asking
+ k_ECommunityVisibilitySupportFriendsOnly = 5,// was friends only, but it's a support account asking
+};
+
+enum ECommentPermission
+{
+ k_ECommentPermissionFriendsOnly = 0, // only friends can leave a comment
+ k_ECommentPermissionAnyone = 1, // anybody can leave a comment
+ k_ECommentPermissionSelfOnly = 2, // only the account owner can leave a comment
+};
+
+// Payment methods for purchases - BIT FLAGS so can be used to indicate
+// acceptable payment methods for packages
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum EPaymentMethod
+{
+ k_EPaymentMethodNone = 0x000, // user got the license for free
+ k_EPaymentMethodActivationCode = 0x001, // user paid by entering unused CD-Key or other activation code
+ k_EPaymentMethodCreditCard = 0x002, // user paid with credit card
+ k_EPaymentMethodPayPal = 0x004, // user paid with via paypal
+ k_EPaymentMethodGuestPass = 0x008, // user paid by redeeming a guest pass
+ k_EPaymentMethodHardwarePromo = 0x010, // user presented machine credentials
+ k_EPaymentMethodClickAndBuy = 0x020, // ClickandBuy
+ k_EPaymentMethodAutoGrant = 0x040, // server side purchased package, things like German specific TF2 free weekend
+ k_EPaymentMethodWallet = 0x080, // user paid with wallet
+ k_EPaymentMethodOEMTicket = 0x100, // user paid by redeeming a OEM license ticket
+ k_EPaymentMethodSplit = 0x200, // user paid with wallet AND a provider
+};
+
+// Sources for WalletTxn records
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum EWalletSource
+{
+ k_EWalletSourceInvalid = 0,
+ k_EWalletSourcePurchase = 1, // Created from a purchase, refund, chargeback, or reverse chargeback (PurchaseRefGID -> TransID)
+ k_EWalletSourceGuestPass = 2, // Created from a guest pass (PurchaseRefGID -> GuestPassID)
+ k_EWalletSourceConversion = 3, // Created from a wallet conversion (PurchaseRefGID -> GID shared between debit & credit records)
+ k_EWalletSourceRebate = 4, // Created from a rebate (PurchaseRefGID -> TransID)
+};
+
+// License types
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ELicenseType
+{
+ k_ENoLicense = 0, // for shipped goods
+ k_ESinglePurchase = 1, // single purchase
+ k_ESinglePurchaseLimitedUse = 2, // single purchase w/ expiration
+ k_ERecurringCharge = 3, // recurring subscription
+ k_ERecurringChargeLimitedUse = 4, // recurring subscription w/ limited minutes per period
+ k_ERecurringChargeLimitedUseWithOverages = 5, // like above but w/ soft limit and overage charges
+};
+
+// Flags for licenses - BITS
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ELicenseFlags
+{
+ k_ELicenseFlagNone = 0x00, // just a place holder
+ k_ELicenseFlagRenew = 0x01, // Renew this license next period
+ k_ELicenseFlagRenewalFailed = 0x02, // Auto-renew failed
+ k_ELicenseFlagPending = 0x04, // Purchase or renewal is pending
+ k_ELicenseFlagExpired = 0x08, // Set if no longer active (whatever the reason)
+ k_ELicenseFlagCancelledByUser = 0x10, // Cancelled by the user
+ k_ELicenseFlagCancelledByAdmin = 0x20, // Cancelled by customer support
+ k_ELicenseFlagLowViolenceContent = 0x40,// license is for low violence content
+};
+
+// Status of a package
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum EPackageStatus
+{
+ k_EPackageAvailable = 0, // Available for purchase and use
+ k_EPackagePreorder = 1, // Available for purchase, as a pre-order
+ k_EPackageUnavailable = 2, // Not available for new purchases, may still be owned
+ k_EPackageInvalid = 3, // Either an unknown package or a deleted one that nobody should own
+};
+
+// Purchase status
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum EPurchaseStatus
+{
+ k_EPurchasePending = 0, // purchase is pending, valid but pending subscription
+ k_EPurchaseSucceeded = 1, // purchase successful, valid subscription
+ k_EPurchaseFailed = 2, // purchase failed, no subscription
+ k_EPurchaseRefunded = 3, // we refunded the purchase and removed subscription
+ k_EPurchaseInit = 4, // user started purchase
+ k_EPurchaseChargedback = 5, // the user issued a chargeback, we removed subscription
+ k_EPurchaseRevoked = 6, // we revoked the purchase and removed subscription. Usually stolen CD-Keys
+ k_EPurchaseInDispute = 7, // the purchase is being disputed by the user, preliminary to a chargeback
+};
+
+// LineItemTypes
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASEd
+enum ELineItemType
+{
+ k_ELineItemTypeInvalid = 0, // Unknown - load all purchase line items
+ k_ELineItemTypeMicroTxn = ( 1 << 0 ), // Transaction has data in MicroTxnLineItem table
+ k_ELineItemTypeWallet = ( 1 << 1 ), // Transaction has data in WalletLineItem table
+ k_ELineItemTypePkg = ( 1 << 2 ), // Transaction has data in PurchaseLineItem table
+};
+
+// Enum for the types of news push items you can get
+enum ENewsUpdateType
+{
+ k_EAppNews = 0, // news about a particular app
+ k_ESteamAds = 1, // Marketing messages
+ k_ESteamNews = 2, // EJ's corner and the like
+ k_ECDDBUpdate = 3, // backend has a new CDDB for you to load
+ k_EClientUpdate = 4, // new version of the steam client is available
+};
+
+// Detailed purchase result codes for the client
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum EPurchaseResultDetail
+{
+ k_EPurchaseResultNoDetail = 0,
+ k_EPurchaseResultAVSFailure = 1,
+ k_EPurchaseResultInsufficientFunds = 2,
+ k_EPurchaseResultContactSupport = 3,
+ k_EPurchaseResultTimeout = 4,
+
+ k_EPurchaseResultInvalidPackage = 5,
+ k_EPurchaseResultInvalidPaymentMethod = 6,
+ k_EPurchaseResultInvalidData = 7,
+ k_EPurchaseResultOthersInProgress = 8,
+ k_EPurchaseResultAlreadyPurchased = 9,
+ k_EPurchaseResultWrongPrice = 10,
+ k_EPurchaseResultFraudCheckFailed = 11,
+ k_EPurchaseResultCancelledByUser = 12,
+ k_EPurchaseResultRestrictedCountry = 13,
+ k_EPurchaseResultBadActivationCode = 14, // this code gives no receipt
+ k_EPurchaseResultDuplicateActivationCode = 15,
+
+ k_EPurchaseResultUseOtherPaymentMethod = 16, // User should try a different payment method
+ k_EPurchaseResultUseOtherFundingSource = 17, // Select a different funding source (paypal)
+ k_EPurchaseResultInvalidShippingAddress = 18, // Shipping address is invalid (paypal)
+ k_EPurchaseResultRegionNotSupported = 19, // This region is not supported with this payment type
+
+ k_EPurchaseResultAcctIsBlocked = 20, // Acct has been blocked by provider - user should contact provider to resolve
+ k_EPurchaseResultAcctNotVerified = 21, // Provider indicated account needs to be verified for transaction to complete
+
+ k_EPurchaseResultInvalidAccount = 22, // Provider indicated the account is invalid or no longer usable
+ k_EPurchaseResultStoreBillingCountryMismatch = 23, // store country code & billing country code do not match
+ k_EPurchaseResultDoesNotOwnRequiredApp = 24, // user does not own one of the apps required for purchase
+ k_EPurchaseResultCanceledByNewTransaction = 25, // user made a new transaction which canceled an old, pending transaction
+ k_EPurchaseResultForceCanceledPending = 26, // A pending transaction was force canceled (no response from provider)
+ k_EPurchaseResultFailCurrencyTransProvider = 27, // selected transaction provider does not support calculated currency
+ k_EPurchaseResultFailedCyberCafe = 28, // cybercafe account tried to purchase or use an activation code
+
+ k_EPurchaseResultNeedsPreApproval = 29, // Transaction needs approval from support
+ k_EPurchaseResultPreApprovalDenied = 30, // Transaction was denied by support
+ k_EPurchaseResultWalletCurrencyMismatch = 31, // Currency of purchase does not match currency of wallet
+};
+
+// Type of system IM. The client can use this to do special UI handling in specific circumstances
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ESystemIMType
+{
+ k_ESystemIMRawText = 0,
+ k_ESystemIMInvalidCard = 1,
+ k_ESystemIMRecurringPurchaseFailed = 2,
+ k_ESystemIMCardWillExpire = 3,
+ k_ESystemIMSubscriptionExpired = 4,
+ k_ESystemIMGuestPassReceived = 5, // User has received a guest pass from a friend
+ k_ESystemIMGuestPassGranted = 6, // System has granted a user a guest pass to give out
+ k_ESystemIMGiftRevoked = 7, // We revoked a gift due to chargeback, etc
+
+ //
+ k_ESystemIMTypeMax
+};
+
+// Ways an external cd key can be munged onto a users PC
+enum ELegacyKeyRegistrationMethod
+{
+ eLegacyKeyRegistrationMethodNone = 0, // doesn't support legacy cd keys
+ eLegacyKeyRegistrationMethodRegistry, // just place it into the registry
+ eLegacyKeyRegistrationMethodDisk, // put it in a file on disk
+};
+
+// Support events, generated by system or support input
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ESupportEvent
+{
+ // support activity
+ eSupportNote = 0, // a generic support note
+ eSupportLogin = 1, // support account logged in out, data: IP:Port
+ eSupportLogoff = 2, // support account logged out, text: IP:Port
+ eSupportTicketCreated = 3, // a support ticket was created
+ eSupportTicketClosed = 4, // problem was solved, ticket closed
+
+ // account changes
+ eSupportEnableAccount = 5, // support enabled account, text: reason
+ eSupportDisableAccount = 6, // support disabled account, text: reason
+ eSupportChangeAccountPassword = 7, // support or user changed password, data: DONT include old password
+ eSupportChangeAccountEmail = 8, // support or user changed email, data: old email
+ eSupportChangeAccountName = 9, // support or user changed name, data: old name
+ eSupportChangeAccountPlayer = 10, // support or user changed player name, data: old name
+
+ eSupportPurchaseChargedback = 11, // a charge back was issued
+ eSupportPurchaseRefunded = 12, // a refund was issued
+ eSupportPurchaseForcedCompletion = 13, // support forced a pending purchase to complete
+
+ // license handling
+ eSupportLicenseAdded = 14, // support added a license, text: reason
+ eSupportLicenseCanceled = 15, // support or user cancel a license
+ eSupportLicenseChanged = 16, // support removed a license, text: reason
+ eSupportBannedGame = 17, // support banned game for an account
+ eSupportUnbannedGame = 18, // support unbanned game for an account
+
+ // purchase activity
+ eSupportRunPurchase = 19,
+ eSupportChangedCreditCard = 20, // support updated a credit card
+ eSupportSetNoFraudCheckFlag = 21, // support disabled fraud check, data: reason
+
+ // banning
+ eSupportBannedCreditCard = 22, // support banned a credit card
+ eSupportBannedIP = 23, // support banned an IP
+ eSupportBannedCDKey = 24, // support banned an CDKey
+ eSupportBannedCountry = 25, // support banned a country
+ eSupportBannedPayPalAccount = 26,
+
+ eSupportPurchaseCanceled = 27, // support forced a pending purchase to cancel
+
+ eSupportChangeAvatar = 28,
+ eSupportChangeProfileURL = 29,
+
+ eSupportRegisterCDKey = 30, // support added a CD key to this account
+ eSupportGrantGuestPass = 31, // support granted a guest pass to this account
+ eSupportResubmitTransaction = 32, // support resubmitted a transaction
+
+ eSupportResetContent = 33, // reset user content based on abuse reports
+ eSupportLockProfile = 34, // temp block a user from modifying community content
+ eSupportSetCommunityState = 35, // perm lock a user profile, can't be modified
+ eSupportDeleteAbuseReports = 36, // deleted abuse reports for the SteamID
+ eSupportSetAccountFlags = 37, // changed account flags
+
+ eSupportChargebackStatusUpdate = 38, // support updated the pending chargeback status
+
+ eSupportRefundForcedCompletion = 39, // support forced a pending refund to complete
+ eSupportRefundCanceled = 40, // support forced a pending refund to cancel
+
+ eSupportRevokeActivationKey = 41, // support revoked and unlocked activation key
+ eSupportReverseChargeback = 42, // a charge back was reversed
+ eSupportRejectedActivationKey = 43, // activation key was rejected (invalid or already used)
+
+ eSupportPurchaseError = 44, // Purchase error
+ eSupportAudited = 45,
+
+ // items
+ eSupportBanItems = 46, // support banned a user's items
+ eSupportRestoreBannedItems = 47, // support restored banned items
+ eSupportRestoreDeletedItems = 48, // support restored deleted items
+
+ // comments
+ eSupportDeleteComments = 49, // cleared comments on this account (not written by this account)
+
+ eSupportDeleteItems = 50, // support deleted a user's items
+ eSupportDeleteCachedCard = 51, // support deleted a user's cached credit card
+
+ eSupportConvertedWallet = 52, // user's wallet was converted
+
+ eSupportTxnApproved = 53, // PreApproval granted
+ eSupportTxnDenied = 54, // PreApproval denied
+
+ eSupportGCAction = 55, // used for all support actions from the GC
+};
+
+
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ESupportTicket
+{
+ // all kinds of problems tickets that have to be handled by support
+ k_ETicketUnknown = 0, // an unknown problem. yay.
+ k_ETicketManual = 1, // a problem manually entered by support.
+ k_ETicketFraudRedFlag = 2, // fraud detection marked this account
+ k_ETicketPurchaseError = 3, // a purchase error happened
+ k_ETicketChargeback = 4, // a chargeback needs attention
+};
+
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ESupportTicketState
+{
+ // all kinds of problems tickets that have to be handled by support
+ k_ETicketStateUnknown = 0, // support issue state is unknown
+ k_ETicketStateUnassigned = 1, // support issue is 'open' but not assigned yet
+ k_ETicketStateInProcess = 2, // support issue is assigned to an support actor
+ k_ETicketStateResolved = 3, // support issue is fixed and closed
+ k_ETicketStateUnresolved = 4, // support issue couldn't be fixed. closed anyway
+ k_ETicketStateAutoClosed = 5, // System closed the ticket automatically
+};
+
+
+//-----------------------------------------------------------------------------
+// types of content that can be reported as abused
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+//-----------------------------------------------------------------------------
+enum ECommunityContentType
+{
+ k_EContentUnspecified = 0,
+ k_EContentAll = 1, // reset all community content
+ k_EContentAvatarImage = 2, // clear avatar image
+ k_EContentProfileText = 3, // reset profile text
+ k_EContentWebLinks = 4, // delete web links
+ k_EContentAnnouncement = 5,
+ k_EContentEventText = 6,
+ k_EContentCustomCSS = 7,
+ k_EContentProfileURL = 8, // delete community URL ID
+ k_EContentComments = 9, // just comments this guy has written
+};
+
+
+//-----------------------------------------------------------------------------
+// types of reasons why a violation report was issued
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+//-----------------------------------------------------------------------------
+enum EAbuseReportType
+{
+ k_EAbuseUnspecified = 0,
+ k_EAbuseInappropriate = 1, // just not ok to post
+ k_EAbuseProhibited = 2, // prohibited by EULA or general law
+ k_EAbuseSpamming = 3, // excessive spamming
+ k_EAbuseAdvertisement = 4, // unwanted advertisement
+ k_EAbuseExploit = 5, // content data attempts to exploit code issue
+ k_EAbuseSpoofing = 6, // user/group is impersonating an official contact
+ k_EAbuseLanguage = 7, // bad language
+ k_EAbuseAdultContent = 8, // any kind of adult material, references etc
+ k_EAbuseHarassment = 9, // harassment, discrimination, racism etc
+};
+
+//-----------------------------------------------------------------------------
+// actions for a user within a clan for logging in the ClanHistory table
+//-----------------------------------------------------------------------------
+
+enum EClanAction
+{
+ k_EJoined = 1, // joined the clan
+ k_ELeft = 2, // left the clan
+ k_EPromoted = 3, // promoted to officer
+ k_EDemoted = 4, // demoted from officer
+ k_EKicked = 5, // kicked off the clan
+ k_ECreated = 6, // clan was created
+ k_EInvited = 7, // invited someone
+ k_EEventCreated = 8, // clan event created
+ k_EEventUpdated = 9, // clan event updated
+ k_EEventDeleted = 10, // clan event deleted
+ k_EPermissionsChanged = 11, // clan permissions were changed
+ k_EAnnouncementCreated = 12, // clan announcement created
+ k_EAnnouncementUpdated = 13, // clan announcement updated
+ k_EAnnouncementDeleted = 14, // clan announcement deleted
+ k_EPOTWChanged = 15, // changed the POTW
+ k_ELinksChanged = 16, // links changed
+ k_EDetailsChanged = 17, // details changed
+ k_ESupportResetContent = 18, // support reset some or all of the clan content
+ k_ESupportLockedGroup = 19, // support locked this clan, it can't be modified anymore
+ k_ESupportUnlockedGroup = 20, // support unlocked this clan
+ k_ESupportChangedOwner = 21, // support transfered ownership
+ k_EMadePublic = 22, // made from private into public
+ k_EMadePrivate = 23, // made from public into private
+ k_ESupportDisabledGroup = 24, // support disabled this group, nobody can see it anymore
+ k_EKickedChat = 25, // kicked from chat
+ k_EBannedChat = 26, // banned from chat
+ k_EUnBannedChat = 27, // un-banned from chat
+
+ k_EHighestValidAction // keep me updated, please!
+};
+
+
+//-----------------------------------------------------------------------------
+// types of events for use in the Clan Event Type table
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+//-----------------------------------------------------------------------------
+enum EClanEventType
+{
+ k_EOtherEvent = 1,
+ k_EGameEvent = 2,
+ k_EPartyEvent = 3,
+ k_EMeetingEvent = 4,
+ k_ESpecialCauseEvent = 5,
+ k_EMusicAndArtsEvent = 6,
+ k_ESportsEvent = 7,
+ k_ETripEvent = 8,
+ k_EChatEvent = 9,
+ k_EGameReleaseEvent = 10,
+};
+
+//-----------------------------------------------------------------------------
+// types of marketing messages displayed to users
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+//-----------------------------------------------------------------------------
+enum EMarketingMessageType
+{
+ k_EMarketingMessageNowAvailable = 1,
+ k_EMarketingMessageWeekendDeal = 2,
+ k_EMarketingMessagePrePurchase = 3,
+ k_EMarketingMessagePlayNow = 4,
+ k_EMarketingMessagePreloadNow = 5,
+ k_EMarketingMessageGeneral = 6,
+ k_EMarketingMessageDemoQuit = 7,
+ k_EMarketingMessageGifting = 8,
+ k_EMarketingMessageEJsKorner = 9,
+};
+
+//-----------------------------------------------------------------------------
+// types of associations a marketing message may have
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+//-----------------------------------------------------------------------------
+enum EMarketingMessageAssociationType
+{
+ k_EMarketingMessageNoAssociation = 0,
+ k_EMarketingMessageAppAssociation = 1,
+ k_EMarketingMessageSubscriptionAssociation = 2,
+ k_EMarketingMessagePublisherAssociation = 3,
+ k_EMarketingMessageGenreAssociation = 4,
+};
+
+//-----------------------------------------------------------------------------
+// Marketing message visibility
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+//-----------------------------------------------------------------------------
+enum EMarketingMessageVisibility
+{
+ k_EMarketingMessageVisibleBeta = 1,
+ k_EMarketingMessageVisiblePublic = 2,
+};
+
+//-----------------------------------------------------------------------------
+// Structures used in multiple messages
+//-----------------------------------------------------------------------------
+// Purchase message constants
+// WARNING: Do not change these if an instance of this record may exist in a database!!!
+// BUGBUG derrick - Since these also define schema, they should be moved into steamschema.h
+const int k_cchCCNumMax = 16 + 1;
+const int k_cchHolderNameMax = 100 + 1;
+const int k_cchExpYearMax = 4 + 1;
+const int k_cchExpMonthMax = 2 + 1;
+const int k_cchCVV2Max = 4 + 1;
+const int k_cchAddressMax = 128 + 1;
+const int k_cchAddress2Max = k_cchAddressMax;
+const int k_cchCityMax = 50 + 1;
+const int k_cchPostcodeMax = 16 + 1;
+const int k_cchStateMax = 32 + 1;
+const int k_cchPhoneMax = 20 + 1;
+const int k_cchEmailMax = 100 + 1;
+const int k_cchCountryCodeMax = 2 + 1;
+const int k_cchPayPalCheckoutTokenMax = 20 + 1;
+const int k_cchStateCodeMax = 3 + 1;
+const int k_cchCurrencyCodeMax = 3 + 1;
+
+const int k_cubMaxDfsURL = 128; // Max size for URL descriptors on DFS
+
+
+// License information
+struct LicenseInfo_t
+{
+ PackageId_t m_unPackageID;
+ RTime32 m_RTime32Created;
+ RTime32 m_RTime32NextProcess;
+ int32 m_nMinuteLimit;
+ int32 m_nMinutesUsed;
+ EPaymentMethod m_ePaymentMethod;
+ uint32 m_nFlags;
+ char m_rgchPurchaseCountryCode[k_cchCountryCodeMax];
+ int32 m_nTerritoryCode;
+};
+
+// Supported Currency Codes
+// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
+enum ECurrencyCode
+{
+ k_ECurrencyCodeInvalid = 0,
+ k_ECurrencyCodeUSD = 1,
+ k_ECurrencyCodeGBP = 2,
+ k_ECurrencyCodeEUR = 3,
+
+ k_ECurrencyCodeMax = 4
+};
+
+enum ETaxType
+{
+ k_ETaxTypeInvalid = 0,
+ k_ETaxTypeUSState = 1,
+ k_ETaxTypeVAT = 2
+};
+
+// client stat list
+// needs to be kept in the same order, since it's part of the protocol
+enum EClientStat
+{
+ k_EClientStatP2PConnectionsUDP = 0,
+ k_EClientStatP2PConnectionsRelay = 1,
+ k_EClientStatP2PGameConnections = 2,
+ k_EClientStatP2PVoiceConnections = 3,
+
+ k_EClientStatBytesDownloaded = 4,
+
+ k_EClientStatMax, // must be last, used as array's of data
+};
+
+enum EP2PState
+{
+ k_EP2PStateNotConnected,
+ k_EP2PStateUDP,
+ k_EP2PStateRelay,
+};
+
+// User response for authentication request
+enum EMicroTxnAuthResponse
+{
+ k_EMicroTxnAuthResponseInvalid = 0, // Invalid value
+ k_EMicroTxnAuthResponseAuthorize = 1, // user accepted microtransaction
+ k_EMicroTxnAuthResponseDeny = 2, // user denied microtransaction
+ k_EMicroTxnAuthResponseAutoDeny = 3, // client automatically denied microtransaction (user wasn't in game, etc.)
+};
+
+// Result of authorization request, returned to client
+enum EMicroTxnAuthResult
+{
+ k_EMicroTxnAuthResultInvalid = 0, // Invalid value
+ k_EMicroTxnAuthResultOK = 1, // Successfully authorized
+ k_EMicroTxnAuthResultFail = 2, // An error occurred
+ k_EMicroTxnAuthResultInsufficientFunds = 3, // User has insufficient funds to complete microtransaction
+};
+
+#endif