#pragma once #include #include #include "../../4J.Common/4J_Compat.h" // XUI forward declarations typedef struct _XUIOBJ* HXUIOBJ; typedef struct _XUICLASS* HXUICLASS; typedef struct _XUIBRUSH* HXUIBRUSH; typedef struct _XUIDC* HXUIDC; bool IsEqualXUID(PlayerUID a, PlayerUID b); // Gamepad virtual key constants #define VK_PAD_A 0x5800 #define VK_PAD_B 0x5801 #define VK_PAD_X 0x5802 #define VK_PAD_Y 0x5803 #define VK_PAD_RSHOULDER 0x5804 #define VK_PAD_LSHOULDER 0x5805 #define VK_PAD_LTRIGGER 0x5806 #define VK_PAD_RTRIGGER 0x5807 #define VK_PAD_DPAD_UP 0x5810 #define VK_PAD_DPAD_DOWN 0x5811 #define VK_PAD_DPAD_LEFT 0x5812 #define VK_PAD_DPAD_RIGHT 0x5813 #define VK_PAD_START 0x5814 #define VK_PAD_BACK 0x5815 #define VK_PAD_LTHUMB_PRESS 0x5816 #define VK_PAD_RTHUMB_PRESS 0x5817 #define VK_PAD_LTHUMB_UP 0x5820 #define VK_PAD_LTHUMB_DOWN 0x5821 #define VK_PAD_LTHUMB_RIGHT 0x5822 #define VK_PAD_LTHUMB_LEFT 0x5823 #define VK_PAD_LTHUMB_UPLEFT 0x5824 #define VK_PAD_LTHUMB_UPRIGHT 0x5825 #define VK_PAD_LTHUMB_DOWNRIGHT 0x5826 #define VK_PAD_LTHUMB_DOWNLEFT 0x5827 #define VK_PAD_RTHUMB_UP 0x5830 #define VK_PAD_RTHUMB_DOWN 0x5831 #define VK_PAD_RTHUMB_RIGHT 0x5832 #define VK_PAD_RTHUMB_LEFT 0x5833 #define VK_PAD_RTHUMB_UPLEFT 0x5834 #define VK_PAD_RTHUMB_UPRIGHT 0x5835 #define VK_PAD_RTHUMB_DOWNRIGHT 0x5836 #define VK_PAD_RTHUMB_DOWNLEFT 0x5837 // D3D stubs inline constexpr int D3DBLEND_CONSTANTALPHA = 0; inline constexpr int D3DBLEND_INVCONSTANTALPHA = 0; inline constexpr int D3DPT_QUADLIST = 0; // XUI string table class CXuiStringTable { public: const wchar_t* Lookup(const wchar_t* szId); const wchar_t* Lookup(uint32_t nIndex); void Clear(); int32_t Load(const wchar_t* szId); }; // Compression context stubs typedef void* XMEMDECOMPRESSION_CONTEXT; typedef void* XMEMCOMPRESSION_CONTEXT; enum XMEMCODEC_TYPE { XMEMCODEC_DEFAULT = 0, XMEMCODEC_LZX = 1 }; int32_t XMemDecompress(XMEMDECOMPRESSION_CONTEXT Context, void* pDestination, size_t* pDestSize, void* pSource, size_t SrcSize); int32_t XMemCompress(XMEMCOMPRESSION_CONTEXT Context, void* pDestination, size_t* pDestSize, void* pSource, size_t SrcSize); int32_t XMemCreateCompressionContext(XMEMCODEC_TYPE CodecType, const void* pCodecParams, uint32_t Flags, XMEMCOMPRESSION_CONTEXT* pContext); int32_t XMemCreateDecompressionContext(XMEMCODEC_TYPE CodecType, const void* pCodecParams, uint32_t Flags, XMEMDECOMPRESSION_CONTEXT* pContext); void XMemDestroyCompressionContext(XMEMCOMPRESSION_CONTEXT Context); void XMemDestroyDecompressionContext(XMEMDECOMPRESSION_CONTEXT Context); struct XMEMCODEC_PARAMETERS_LZX { uint32_t Flags; uint32_t WindowSize; uint32_t CompressionPartitionSize; }; // User sign-in struct XUSER_SIGNIN_INFO { PlayerUID xuid; uint32_t dwGuestNumber; }; using PXUSER_SIGNIN_INFO = XUSER_SIGNIN_INFO*; #define XUSER_GET_SIGNIN_INFO_ONLINE_XUID_ONLY 0x00000001 #define XUSER_GET_SIGNIN_INFO_OFFLINE_XUID_ONLY 0x00000002 uint32_t XUserGetSigninInfo(uint32_t dwUserIndex, uint32_t dwFlags, PXUSER_SIGNIN_INFO pSigninInfo); // Locale/language constants inline constexpr int XC_LANGUAGE_ENGLISH = 0x01; inline constexpr int XC_LANGUAGE_JAPANESE = 0x02; inline constexpr int XC_LANGUAGE_GERMAN = 0x03; inline constexpr int XC_LANGUAGE_FRENCH = 0x04; inline constexpr int XC_LANGUAGE_SPANISH = 0x05; inline constexpr int XC_LANGUAGE_ITALIAN = 0x06; inline constexpr int XC_LANGUAGE_KOREAN = 0x07; inline constexpr int XC_LANGUAGE_TCHINESE = 0x08; inline constexpr int XC_LANGUAGE_PORTUGUESE = 0x09; inline constexpr int XC_LANGUAGE_POLISH = 0x0B; inline constexpr int XC_LANGUAGE_RUSSIAN = 0x0C; inline constexpr int XC_LANGUAGE_SWEDISH = 0x0D; inline constexpr int XC_LANGUAGE_TURKISH = 0x0E; inline constexpr int XC_LANGUAGE_BNORWEGIAN = 0x0F; inline constexpr int XC_LANGUAGE_DUTCH = 0x10; inline constexpr int XC_LANGUAGE_SCHINESE = 0x11; inline constexpr int XC_LANGUAGE_LATINAMERICANSPANISH = 0xF0; inline constexpr int XC_LANGUAGE_FINISH = 0xF1; inline constexpr int XC_LANGUAGE_GREEK = 0xF2; inline constexpr int XC_LANGUAGE_DANISH = 0xF3; inline constexpr int XC_LANGUAGE_CZECH = 0xF4; inline constexpr int XC_LANGUAGE_SLOVAK = 0xF5; inline constexpr int XC_LOCALE_AUSTRALIA = 1; inline constexpr int XC_LOCALE_AUSTRIA = 2; inline constexpr int XC_LOCALE_BELGIUM = 3; inline constexpr int XC_LOCALE_BRAZIL = 4; inline constexpr int XC_LOCALE_CANADA = 5; inline constexpr int XC_LOCALE_CHILE = 6; inline constexpr int XC_LOCALE_CHINA = 7; inline constexpr int XC_LOCALE_COLOMBIA = 8; inline constexpr int XC_LOCALE_CZECH_REPUBLIC = 9; inline constexpr int XC_LOCALE_DENMARK = 10; inline constexpr int XC_LOCALE_FINLAND = 11; inline constexpr int XC_LOCALE_FRANCE = 12; inline constexpr int XC_LOCALE_GERMANY = 13; inline constexpr int XC_LOCALE_GREECE = 14; inline constexpr int XC_LOCALE_HONG_KONG = 15; inline constexpr int XC_LOCALE_HUNGARY = 16; inline constexpr int XC_LOCALE_INDIA = 17; inline constexpr int XC_LOCALE_IRELAND = 18; inline constexpr int XC_LOCALE_ITALY = 19; inline constexpr int XC_LOCALE_JAPAN = 20; inline constexpr int XC_LOCALE_KOREA = 21; inline constexpr int XC_LOCALE_MEXICO = 22; inline constexpr int XC_LOCALE_NETHERLANDS = 23; inline constexpr int XC_LOCALE_NEW_ZEALAND = 24; inline constexpr int XC_LOCALE_NORWAY = 25; inline constexpr int XC_LOCALE_POLAND = 26; inline constexpr int XC_LOCALE_PORTUGAL = 27; inline constexpr int XC_LOCALE_SINGAPORE = 28; inline constexpr int XC_LOCALE_SLOVAK_REPUBLIC = 29; inline constexpr int XC_LOCALE_SOUTH_AFRICA = 30; inline constexpr int XC_LOCALE_SPAIN = 31; inline constexpr int XC_LOCALE_SWEDEN = 32; inline constexpr int XC_LOCALE_SWITZERLAND = 33; inline constexpr int XC_LOCALE_TAIWAN = 34; inline constexpr int XC_LOCALE_GREAT_BRITAIN = 35; inline constexpr int XC_LOCALE_UNITED_STATES = 36; inline constexpr int XC_LOCALE_RUSSIAN_FEDERATION = 37; inline constexpr int XC_LOCALE_WORLD_WIDE = 38; inline constexpr int XC_LOCALE_TURKEY = 39; inline constexpr int XC_LOCALE_ARGENTINA = 40; inline constexpr int XC_LOCALE_SAUDI_ARABIA = 41; inline constexpr int XC_LOCALE_ISRAEL = 42; inline constexpr int XC_LOCALE_UNITED_ARAB_EMIRATES = 43; inline constexpr int XC_LOCALE_LATIN_AMERICA = 240; uint32_t XGetLanguage(); uint32_t XGetLocale(); uint32_t XEnableGuestSignin(bool fEnable); inline constexpr int XN_SYS_SIGNINCHANGED = 0; inline constexpr int XN_SYS_INPUTDEVICESCHANGED = 1; inline constexpr int XN_LIVE_CONTENT_INSTALLED = 2; inline constexpr int XN_SYS_STORAGEDEVICESCHANGED = 3; inline constexpr int XZP_ICON_SHANK_01 = 1; inline constexpr int XZP_ICON_SHANK_02 = 2; inline constexpr int XZP_ICON_SHANK_03 = 3;