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.
296 lines
7.6 KiB
296 lines
7.6 KiB
//========= Copyright © 1996-2004, Valve LLC, 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"
|
|
#define XBX_USER_SAVES_CONTAINER_DRIVE "SAV"
|
|
|
|
// 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 struct xevent_SYS_SIGNINCHANGED_s
|
|
{
|
|
XUID xuid[ XUSER_MAX_COUNT ];
|
|
XUSER_SIGNIN_STATE state[ XUSER_MAX_COUNT ];
|
|
DWORD dwParam;
|
|
} xevent_SYS_SIGNINCHANGED_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_BUTTON_INACTIVE_START, // Special key that is passed through on disabled controllers
|
|
XK_BUTTON_FIREMODE_SELECTOR_1,
|
|
XK_BUTTON_FIREMODE_SELECTOR_2,
|
|
XK_BUTTON_FIREMODE_SELECTOR_3,
|
|
XK_BUTTON_RELOAD,
|
|
XK_BUTTON_TRIGGER,
|
|
XK_BUTTON_PUMP_ACTION,
|
|
XK_XBUTTON_ROLL_RIGHT,
|
|
XK_XBUTTON_ROLL_LEFT,
|
|
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 cacheableState;
|
|
int cacheableSize;
|
|
int final;
|
|
int failed;
|
|
int pwl;
|
|
int reduced;
|
|
} 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;
|
|
int quality;
|
|
} xSoundList_t;
|
|
|
|
typedef struct
|
|
{
|
|
float position[3];
|
|
float angle[3];
|
|
char mapPath[256];
|
|
char savePath[256];
|
|
int build;
|
|
int skill;
|
|
char details[1024];
|
|
} xMapInfo_t;
|
|
|
|
typedef struct
|
|
{
|
|
int BSPSize;
|
|
} xBudgetInfo_t;
|
|
|
|
struct xModelList_t
|
|
{
|
|
char name[MAX_PATH];
|
|
int dataSize;
|
|
int numVertices;
|
|
int triCount;
|
|
int dataSizeLod0;
|
|
int numVerticesLod0;
|
|
int triCountLod0;
|
|
int numBones;
|
|
int numParts;
|
|
int numLODs;
|
|
int numMeshes;
|
|
};
|
|
|
|
struct xDataCacheItem_t
|
|
{
|
|
char name[MAX_PATH];
|
|
char section[64];
|
|
int size;
|
|
int lockCount;
|
|
unsigned int clientId;
|
|
unsigned int itemData;
|
|
unsigned int handle;
|
|
};
|
|
|
|
struct xVProfNodeItem_t
|
|
{
|
|
const char *pName;
|
|
const char *pBudgetGroupName;
|
|
unsigned int budgetGroupColor;
|
|
unsigned int totalCalls;
|
|
double inclusiveTime;
|
|
double exclusiveTime;
|
|
};
|
|
|
|
/******************************************************************************
|
|
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 );
|
|
PLATFORM_INTERFACE void XBX_DispatchEventsQueue( void );
|
|
|
|
// Accessors
|
|
PLATFORM_INTERFACE const char* XBX_GetLanguageString( void );
|
|
PLATFORM_INTERFACE bool XBX_IsLocalized( void );
|
|
PLATFORM_INTERFACE bool XBX_IsAudioLocalized( void );
|
|
PLATFORM_INTERFACE const char *XBX_GetNextSupportedLanguage( const char *pLanguage, bool *pbHasAudio );
|
|
PLATFORM_INTERFACE bool XBX_IsRestrictiveLanguage( void );
|
|
|
|
//
|
|
// Storage devices management
|
|
//
|
|
PLATFORM_INTERFACE void XBX_ResetStorageDeviceInfo();
|
|
PLATFORM_INTERFACE DWORD XBX_DescribeStorageDevice( DWORD nStorageID );
|
|
PLATFORM_INTERFACE char const *XBX_MakeStorageContainerRoot( int iController, char const *szRootName, char *pBuffer, int numBufferBytes );
|
|
|
|
PLATFORM_INTERFACE DWORD XBX_GetStorageDeviceId( int iController );
|
|
PLATFORM_INTERFACE void XBX_SetStorageDeviceId( int iController, DWORD id );
|
|
|
|
//
|
|
// Information about game primary user
|
|
//
|
|
PLATFORM_INTERFACE DWORD XBX_GetPrimaryUserId( void );
|
|
PLATFORM_INTERFACE void XBX_SetPrimaryUserId( DWORD id );
|
|
|
|
PLATFORM_INTERFACE DWORD XBX_GetPrimaryUserIsGuest( void );
|
|
PLATFORM_INTERFACE void XBX_SetPrimaryUserIsGuest( DWORD bPrimaryUserIsGuest );
|
|
|
|
//
|
|
// Disabling and enabling input from controllers
|
|
//
|
|
PLATFORM_INTERFACE void XBX_ResetUserIdSlots();
|
|
PLATFORM_INTERFACE void XBX_ClearUserIdSlots();
|
|
|
|
//
|
|
// Mapping between game slots and controllers
|
|
//
|
|
PLATFORM_INTERFACE int XBX_GetUserId( int nSlot );
|
|
PLATFORM_INTERFACE int XBX_GetSlotByUserId( int idx );
|
|
PLATFORM_INTERFACE void XBX_SetUserId( int nSlot, int idx );
|
|
PLATFORM_INTERFACE void XBX_ClearSlot( int nSlot );
|
|
PLATFORM_INTERFACE void XBX_ClearUserId( int idx );
|
|
|
|
PLATFORM_INTERFACE DWORD XBX_GetUserIsGuest( int nSlot );
|
|
PLATFORM_INTERFACE void XBX_SetUserIsGuest( int nSlot, DWORD dwUserIsGuest );
|
|
|
|
//
|
|
// Number of game users
|
|
//
|
|
PLATFORM_INTERFACE DWORD XBX_GetNumGameUsers( void );
|
|
PLATFORM_INTERFACE void XBX_SetNumGameUsers( DWORD numGameUsers );
|
|
|
|
//
|
|
// Invite related functions
|
|
//
|
|
PLATFORM_INTERFACE XNKID XBX_GetInviteSessionId( void );
|
|
PLATFORM_INTERFACE void XBX_SetInviteSessionId( XNKID nSessionId );
|
|
PLATFORM_INTERFACE XUID XBX_GetInvitedUserXuid( void );
|
|
PLATFORM_INTERFACE void XBX_SetInvitedUserXuid( XUID xuid );
|
|
PLATFORM_INTERFACE DWORD XBX_GetInvitedUserId( void );
|
|
PLATFORM_INTERFACE void XBX_SetInvitedUserId( DWORD nUserId );
|
|
|
|
|
|
#endif
|