Counter Strike : Global Offensive Source Code
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

//========= 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