[Core] Add XUID validation functions to xbox.h
This commit is contained in:
parent
fbad66e5bc
commit
a7a981105a
|
@ -547,6 +547,28 @@ enum class XDeploymentType : uint32_t {
|
|||
kUnknown = 0xFF,
|
||||
};
|
||||
|
||||
inline bool IsOfflineXUID(uint64_t xuid) { return ((xuid >> 60) & 0xF) == 0xE; }
|
||||
|
||||
inline bool IsOnlineXUID(uint64_t xuid) {
|
||||
return ((xuid >> 48) & 0xFFFF) == 0x9;
|
||||
}
|
||||
|
||||
inline bool IsGuestXUID(uint64_t xuid) {
|
||||
const uint32_t HighPart = xuid >> 48;
|
||||
return ((HighPart & 0x000F) == 0x9) && ((HighPart & 0x00C0) > 0);
|
||||
}
|
||||
|
||||
inline bool IsTeamXUID(uint64_t xuid) {
|
||||
return (xuid & 0xFF00000000000140) == 0xFE00000000000100;
|
||||
}
|
||||
|
||||
inline bool IsValidXUID(uint64_t xuid) {
|
||||
const bool valid = IsOfflineXUID(xuid) || IsOnlineXUID(xuid) ||
|
||||
IsTeamXUID(xuid) || IsGuestXUID(xuid);
|
||||
|
||||
return valid;
|
||||
}
|
||||
|
||||
#pragma pack(push, 4)
|
||||
struct X_XAMACCOUNTINFO {
|
||||
enum AccountReservedFlags {
|
||||
|
@ -598,13 +620,6 @@ struct X_XAMACCOUNTINFO {
|
|||
AccountReservedFlags::kLiveEnabled);
|
||||
}
|
||||
|
||||
bool IsXUIDOffline() { return ((xuid_online >> 60) & 0xF) == 0xE; }
|
||||
bool IsXUIDOnline() { return ((xuid_online >> 48) & 0xFFFF) == 0x9; }
|
||||
bool IsXUIDValid() { return IsXUIDOffline() != IsXUIDOnline(); }
|
||||
bool IsTeamXUID() {
|
||||
return (xuid_online & 0xFF00000000000140) == 0xFE00000000000100;
|
||||
}
|
||||
|
||||
uint32_t GetCountry() const {
|
||||
return (cached_user_flags & kCountryMask) >> 8;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue