diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/xbox/xbox_core.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/xbox/xbox_core.h')
| -rw-r--r-- | common/xbox/xbox_core.h | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/common/xbox/xbox_core.h b/common/xbox/xbox_core.h new file mode 100644 index 0000000..b109a19 --- /dev/null +++ b/common/xbox/xbox_core.h @@ -0,0 +1,183 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: XBox Core definitions +// +//============================================================================= +#pragma once + +#define XBOX_DONTCARE 0 // for functions with don't care params + +#define XBX_MAX_DPORTS 4 +#define XBX_MAX_BUTTONSAMPLE 32768 +#define XBX_MAX_ANALOGSAMPLE 255 +#define XBX_MAX_MESSAGE 2048 +#define XBX_MAX_PATH MAX_PATH +#define XBX_MAX_RCMDLENGTH 256 +#define XBX_MAX_RCMDNAMELEN 32 +#define XBX_HDD_CLUSTERSIZE 16384 + +// could be dvd or hdd, actual device depends on source of xex launch +#define XBX_DVD_DRIVE "D:\\" +#define XBX_BOOT_DRIVE "D:\\" + +#define XBX_IOTHREAD_STACKSIZE 32768 +#define XBX_IOTHREAD_PRIORITY THREAD_PRIORITY_HIGHEST + +// scale by screen dimension to get an inset +#define XBOX_MINBORDERSAFE 0.05f +#define XBOX_MAXBORDERSAFE 0.075f + +#define XBX_CALCSIG_TYPE XCALCSIG_FLAG_NON_ROAMABLE +#define XBX_INVALID_STORAGE_ID ((DWORD)-1) +#define XBX_STORAGE_DECLINED ((DWORD)-2) +#define XBX_INVALID_USER_ID ((DWORD)-1) + +#define XBX_USER_SETTINGS_CONTAINER_DRIVE "CFG" + +// Path to our running executable +#define XBX_XEX_BASE_FILENAME "default.xex" +#define XBX_XEX_PATH XBX_BOOT_DRIVE XBX_XEX_BASE_FILENAME + +#define XBX_CLR_DEFAULT 0xFF000000 +#define XBX_CLR_WARNING 0x0000FFFF +#define XBX_CLR_ERROR 0x000000FF + +// disk space requirements +#define XBX_SAVEGAME_BYTES ( 1024 * 1024 * 2 ) +#define XBX_CONFIGFILE_BYTES ( 1024 * 100 ) +#define XBX_USER_STATS_BYTES ( 1024 * 28 ) +#define XBX_USER_SETTINGS_BYTES ( XBX_CONFIGFILE_BYTES + XBX_USER_STATS_BYTES ) + +#define XBX_PERSISTENT_BYTES_NEEDED ( XBX_SAVEGAME_BYTES * 10 ) // 8 save games, 1 autosave, 1 autosavedangerous + +#define XMAKECOLOR( r, g, b ) ((unsigned int)(((unsigned char)(r)|((unsigned int)((unsigned char)(g))<<8))|(((unsigned int)(unsigned char)(b))<<16))) + +#define MAKE_NON_SRGB_FMT(x) ((D3DFORMAT)( ((unsigned int)(x)) & ~(D3DFORMAT_SIGNX_MASK | D3DFORMAT_SIGNY_MASK | D3DFORMAT_SIGNZ_MASK))) +#define IS_D3DFORMAT_SRGB( x ) ( MAKESRGBFMT(x) == (x) ) + +typedef enum +{ + XEV_NULL, + XEV_REMOTECMD, + XEV_QUIT, + XEV_LISTENER_NOTIFICATION, +} xevent_e; + +typedef struct xevent_s +{ + xevent_e event; + int arg1; + int arg2; + int arg3; +} xevent_t; + +typedef enum +{ + XK_NULL, + XK_BUTTON_UP, + XK_BUTTON_DOWN, + XK_BUTTON_LEFT, + XK_BUTTON_RIGHT, + XK_BUTTON_START, + XK_BUTTON_BACK, + XK_BUTTON_STICK1, + XK_BUTTON_STICK2, + XK_BUTTON_A, + XK_BUTTON_B, + XK_BUTTON_X, + XK_BUTTON_Y, + XK_BUTTON_LEFT_SHOULDER, + XK_BUTTON_RIGHT_SHOULDER, + XK_BUTTON_LTRIGGER, + XK_BUTTON_RTRIGGER, + XK_STICK1_UP, + XK_STICK1_DOWN, + XK_STICK1_LEFT, + XK_STICK1_RIGHT, + XK_STICK2_UP, + XK_STICK2_DOWN, + XK_STICK2_LEFT, + XK_STICK2_RIGHT, + XK_MAX_KEYS, +} xKey_t; + +typedef struct +{ + const char *pName; + const char *pGroupName; + const char *pFormatName; + int size; + int width; + int height; + int depth; + int numLevels; + int binds; + int refCount; + int sRGB; + int edram; + int procedural; + int fallback; + int final; + int failed; +} xTextureList_t; + +typedef struct +{ + const char *pName; + const char *pShaderName; + int refCount; +} xMaterialList_t; + +typedef struct +{ + char name[MAX_PATH]; + char formatName[32]; + int rate; + int bits; + int channels; + int looped; + int dataSize; + int numSamples; + int streamed; +} xSoundList_t; + +typedef struct +{ + float position[3]; + float angle[3]; + char mapPath[256]; + char savePath[256]; + int build; + int skill; +} xMapInfo_t; + +/****************************************************************************** + XBOX_SYSTEM.CPP +******************************************************************************/ +#if defined( PLATFORM_H ) + +// redirect debugging output through xbox debug channel +#define OutputDebugStringA XBX_OutputDebugStringA + +// Messages +PLATFORM_INTERFACE void XBX_Error( const char* format, ... ); +PLATFORM_INTERFACE void XBX_OutputDebugStringA( LPCSTR lpOutputString ); + +// Event handling +PLATFORM_INTERFACE bool XBX_NotifyCreateListener( ULONG64 categories ); +PLATFORM_INTERFACE void XBX_QueueEvent( xevent_e event, int arg1, int arg2, int arg3 ); +PLATFORM_INTERFACE void XBX_ProcessEvents( void ); + +// Accessors +PLATFORM_INTERFACE const char* XBX_GetLanguageString( void ); +PLATFORM_INTERFACE bool XBX_IsLocalized( void ); +PLATFORM_INTERFACE DWORD XBX_GetStorageDeviceId( void ); +PLATFORM_INTERFACE void XBX_SetStorageDeviceId( DWORD id ); +PLATFORM_INTERFACE DWORD XBX_GetPrimaryUserId( void ); +PLATFORM_INTERFACE void XBX_SetPrimaryUserId( DWORD id ); +PLATFORM_INTERFACE XNKID XBX_GetInviteSessionId( void ); +PLATFORM_INTERFACE void XBX_SetInviteSessionId( XNKID nSessionId ); +PLATFORM_INTERFACE DWORD XBX_GetInvitedUserId( void ); +PLATFORM_INTERFACE void XBX_SetInvitedUserId( DWORD nUserId ); + +#endif
\ No newline at end of file |