diff --git a/engine/client/r_2d.c b/engine/client/r_2d.c index 57c5765cc..61978cd7a 100644 --- a/engine/client/r_2d.c +++ b/engine/client/r_2d.c @@ -902,7 +902,7 @@ void QDECL R2D_Conback_Callback(struct cvar_s *var, char *oldvalue) } } -#if defined(_WIN32) && !defined(FTE_SDL) && !defined(WINRT) +#if defined(_WIN32) && !defined(FTE_SDL) && !defined(WINRT) && !defined(_XBOX) qboolean R2D_Font_WasAdded(char *buffer, char *fontfilename) { char *match; @@ -986,7 +986,7 @@ void R2D_Font_Changed(void) if (qrenderer == QR_NONE) return; -#if defined(_WIN32) && !defined(FTE_SDL) && !defined(WINRT) +#if defined(_WIN32) && !defined(FTE_SDL) && !defined(WINRT) && !defined(_XBOX) if (!strcmp(gl_font.string, "?")) { BOOL (APIENTRY *pChooseFontW)(LPCHOOSEFONTW) = NULL; diff --git a/engine/client/sys_xdk.c b/engine/client/sys_xdk.c index 8d72a7845..fb0e54438 100644 --- a/engine/client/sys_xdk.c +++ b/engine/client/sys_xdk.c @@ -1,6 +1,8 @@ #include "quakedef.h" #include +#define MAXPRINTMSG 1024 // Yes +qboolean isDedicated = false; /*Timers, supposedly xbox supports QueryPerformanceCounter stuff*/ double Sys_DoubleTime (void) @@ -69,7 +71,7 @@ void VARGS Sys_Printf (char *fmt, ...) char msg[MAXPRINTMSG]; va_start (argptr,fmt); - _vsnprintf (msg,sizeof(msg)-1, fmt,argptr); + Q_snprintfz (msg,sizeof(msg)-1, fmt,argptr); msg[sizeof(msg)-1] = 0; //_vsnprintf sucks. va_end (argptr); @@ -107,6 +109,10 @@ void Sys_ServerActivity(void) { //player joined the server or said something. would normally flash the app in the system tray. } +void Sys_RecentServer(char *command, char *target, char *title, char *desc) { + +} + /*check any system message queues here*/ void Sys_SendKeyEvents(void) { @@ -195,9 +201,6 @@ void main( int argc, char **argv) } - - - /*input stubs in_generic.c should make these kinda useless, but sometimes you need more than the following three functions: void IN_JoystickAxisEvent(unsigned int devid, int axis, float value); @@ -237,4 +240,11 @@ void INS_EnumerateDevices(void *ctx, void(*callback)(void *ctx, const char *type #endif } +void INS_SetupControllerAudioDevices (void) // Not used +{ +} + +void INS_UpdateGrabs (void) // Not used +{ +} diff --git a/engine/client/wastes.ico b/engine/client/wastes.ico index deb28b14a..be60711a9 100644 Binary files a/engine/client/wastes.ico and b/engine/client/wastes.ico differ diff --git a/engine/common/bothdefs.h b/engine/common/bothdefs.h index 67e3cf411..7a526157f 100644 --- a/engine/common/bothdefs.h +++ b/engine/common/bothdefs.h @@ -48,6 +48,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define NO_OGG #define NO_ZLIB #define NOMEDIA + #define NO_FREETYPE + #define HAVE_PACKET #endif #ifdef NACL @@ -400,6 +402,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #if defined(_XBOX) + #define D3DQUAKE + #define D3D8QUAKE #undef HAVE_TCP //FIXME #undef HAVE_PACKET //FIXME #undef SUPPORT_ICE //screw that @@ -410,9 +414,31 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #undef TEXTEDITOR //its hard to edit text when you have just a controller (and no onscreen keyboard) #undef RAGDOLL //needs a proper physics engine #undef AVAIL_MP3_ACM //api not supported + #undef AVAIL_OPENAL #undef HAVE_SPEECHTOTEXT //api not supported #undef MULTITHREAD //no CreateThread stuff. #undef SUBSERVERS //single-process. + #undef VOICECHAT + #undef TERRAIN + #undef Q2CLIENT + #undef Q2SERVER + #undef Q3CLIENT + #undef Q3SERVER + #undef HLCLIENT + #undef HLSERVER + #undef VM_Q1 + #undef VM_LUA + #undef HALFLIFEMODELS + #undef RUNTIMELIGHTING + #undef HEXEN2 + #undef DOOMWADS + #undef MAP_PROC + #undef Q1BSPS + #undef Q2BSPS + #undef Q3BSPS + #undef RFBSPS + #undef WEBSERVER //http/ftp servers + #undef WEBCLIENT //http/ftp clients. #endif #ifdef FTE_TARGET_WEB diff --git a/engine/common/config_wastes.h b/engine/common/config_wastes.h index c9ecb8796..64b752ad9 100644 --- a/engine/common/config_wastes.h +++ b/engine/common/config_wastes.h @@ -24,6 +24,7 @@ //#define D3D9QUAKE //#define GLQUAKE #undef D3D11QUAKE +#define D3D8QUAKE #undef VKQUAKE #undef HEADLESSQUAKE diff --git a/engine/common/fs_stdio.c b/engine/common/fs_stdio.c index 97b932dca..ec9b19c96 100644 --- a/engine/common/fs_stdio.c +++ b/engine/common/fs_stdio.c @@ -8,7 +8,7 @@ #define Z_Free free #define Z_Malloc malloc #else -#if !defined(_WIN32) || defined(FTE_SDL) || defined(WINRT) +#if !defined(_WIN32) || defined(FTE_SDL) || defined(WINRT) || defined(_XBOX) #define FSSTDIO_OpenPath VFSOS_OpenPath #endif #define FSSTDIO_OpenTemp FS_OpenTemp @@ -196,7 +196,7 @@ vfsfile_t *VFSSTDIO_Open(const char *osname, const char *mode, qboolean *needsfl } #ifndef WEBSVONLY -#if !defined(_WIN32) || defined(FTE_SDL) || defined(WINRT) +#if !defined(_WIN32) || defined(FTE_SDL) || defined(WINRT) || defined(_XBOX) vfsfile_t *VFSOS_Open(const char *osname, const char *mode) { vfsfile_t *f; diff --git a/engine/common/net_wins.c b/engine/common/net_wins.c index e7f92da47..5f73ea658 100644 --- a/engine/common/net_wins.c +++ b/engine/common/net_wins.c @@ -23,6 +23,19 @@ struct sockaddr; #include "quakedef.h" #include "netinc.h" +// Eww, eww. This is hacky but so is netinc.h, so bite me +#ifdef _XBOX + struct sockaddr + { + short sa_family; + }; + + #define ntohs BigShort + #define htons BigShort + #define htonl BigLong + #define ntohl BigLong +#endif + #if defined(_WIN32) || defined(__linux__) && !defined(ANDROID) #define USE_GETHOSTNAME_LOCALLISTING #endif @@ -82,11 +95,6 @@ cvar_t net_enabled = CVARD("net_enabled", "1", "If 0, disables all network acce extern cvar_t sv_public, sv_listen_qw, sv_listen_nq, sv_listen_dp, sv_listen_q3; - - - - - #define MAX_LOOPBACK 64 typedef struct { @@ -6617,4 +6625,3 @@ vfsfile_t *FS_OpenTCP(const char *name, int defaultport) return NULL; } #endif - diff --git a/engine/common/netinc.h b/engine/common/netinc.h index 9c5afdfca..e4d28efdb 100644 --- a/engine/common/netinc.h +++ b/engine/common/netinc.h @@ -4,10 +4,17 @@ #ifndef HAVE_PACKET +#ifndef _XBOX struct sockaddr { short sa_family; }; + + #define ntohs BigShort + #define htons BigShort + #define htonl BigLong + #define ntohl BigLong +#endif /* struct sockaddr_in { short sin_family; @@ -27,10 +34,7 @@ char url[64]; }; - #define ntohs BigShort - #define htons BigShort - #define htonl BigLong - #define ntohl BigLong + #elif defined(_WIN32) #ifdef _XBOX diff --git a/engine/d3d/d3d8_backend.c b/engine/d3d/d3d8_backend.c index 808a09e50..f2d2d0d0b 100644 --- a/engine/d3d/d3d8_backend.c +++ b/engine/d3d/d3d8_backend.c @@ -8,6 +8,12 @@ #define HMONITOR_DECLARED DECLARE_HANDLE(HMONITOR); #endif + +#ifdef _XBOX + #include + #define D3DLOCK_DISCARD 0 +#endif + #include /* @@ -3200,12 +3206,16 @@ static void R_DrawPortal(batch_t *batch, batch_t **blist) glplane[1] = plane.normal[1]; glplane[2] = plane.normal[2]; glplane[3] = -plane.dist; +#ifndef _XBOX IDirect3DDevice8_SetClipPlane(pD3DDev8, 0, glplane); IDirect3DDevice8_SetRenderState(pD3DDev8, D3DRS_CLIPPLANEENABLE, D3DCLIPPLANE0); +#endif Surf_SetupFrame(); R_RenderScene(); - IDirect3DDevice8_SetRenderState(pD3DDev8, D3DRS_CLIPPLANEENABLE, 0); +#ifndef _XBOX + IDirect3DDevice8_SetRenderState(pD3DDev8, D3DRS_CLIPPLANEENABLE, 0); +#endif for (sort = 0; sort < SHADER_SORT_COUNT; sort++) for (batch = blist[sort]; batch; batch = batch->next) { diff --git a/engine/d3d/d3d8_image.c b/engine/d3d/d3d8_image.c index 9f63bd38b..80e8e2770 100644 --- a/engine/d3d/d3d8_image.c +++ b/engine/d3d/d3d8_image.c @@ -5,6 +5,13 @@ #define HMONITOR_DECLARED DECLARE_HANDLE(HMONITOR); #endif + +#ifdef _XBOX + #include + #define D3DLOCK_NOSYSLOCK 0 + #define D3DLOCK_DISCARD 0 +#endif + #include extern LPDIRECT3DDEVICE8 pD3DDev8; diff --git a/engine/d3d/vid_d3d8.c b/engine/d3d/vid_d3d8.c index cd5ee188d..aaa42bea3 100644 --- a/engine/d3d/vid_d3d8.c +++ b/engine/d3d/vid_d3d8.c @@ -9,6 +9,10 @@ //#define FIXME #include "winquake.h" +#ifdef _XBOX + #include +#endif + #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500) #define HMONITOR_DECLARED DECLARE_HANDLE(HMONITOR); @@ -154,6 +158,7 @@ static modestate_t modestate; static void D3DVID_UpdateWindowStatus (HWND hWnd) { +#ifndef _XBOX POINT p; RECT nr; int window_width, window_height; @@ -183,6 +188,7 @@ static void D3DVID_UpdateWindowStatus (HWND hWnd) window_center_y = (window_rect.top + window_rect.bottom) / 2; INS_UpdateClipCursor (); +#endif } static qboolean D3D8AppActivate(BOOL fActive, BOOL minimize) @@ -231,10 +237,7 @@ static qboolean D3D8AppActivate(BOOL fActive, BOOL minimize) return true; } - - - - +#ifndef _XBOX static LRESULT WINAPI D3D8_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { LONG lRet = 1; @@ -428,6 +431,7 @@ static LRESULT WINAPI D3D8_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA /* return 1 if handled message, 0 if not */ return lRet; } +#endif static void D3D8_VID_SwapBuffers(void) { @@ -580,7 +584,9 @@ static qboolean initD3D8Device(HWND hWnd, rendererstate_t *info, unsigned int de break; } +#ifndef _XBOX cflags = D3DCREATE_FPU_PRESERVE; +#endif if ((caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) && (caps.DevCaps & D3DDEVCAPS_PUREDEVICE)) cflags |= D3DCREATE_HARDWARE_VERTEXPROCESSING; else @@ -599,6 +605,7 @@ static qboolean initD3D8Device(HWND hWnd, rendererstate_t *info, unsigned int de if (pD3DDev8) { +#ifndef _XBOX HMONITOR hm; MONITORINFO mi; char *s; @@ -632,6 +639,7 @@ static qboolean initD3D8Device(HWND hWnd, rendererstate_t *info, unsigned int de AdjustWindowRectEx(&rect, WS_OVERLAPPEDWINDOW, FALSE, 0); MoveWindow(d3dpp.hDeviceWindow, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, false); } +#endif D3D8Shader_Init(); return true; //successful } @@ -653,6 +661,10 @@ static qboolean initD3D8Device(HWND hWnd, rendererstate_t *info, unsigned int de static void initD3D8(HWND hWnd, rendererstate_t *info) { +#ifdef _XBOX + LPDIRECT3D8 pDirect3DCreate8 = NULL; + pDirect3DCreate8 = Direct3DCreate8( D3D_SDK_VERSION ); +#else int i; int numadaptors; D3DADAPTER_IDENTIFIER8 inf; @@ -660,6 +672,7 @@ static void initD3D8(HWND hWnd, rendererstate_t *info) static HMODULE d3d8dll; LPDIRECT3D8 (WINAPI *pDirect3DCreate8) (int version); + if (!d3d8dll) d3d8dll = LoadLibrary("d3d8.dll"); if (!d3d8dll) @@ -702,10 +715,22 @@ static void initD3D8(HWND hWnd, rendererstate_t *info) if (initD3D8Device(hWnd, info, i, D3DDEVTYPE_REF)) return; } +#endif } static qboolean D3D8_VID_Init(rendererstate_t *info, unsigned char *palette) { +#ifdef _XBOX + vid.pixelwidth = 640; + vid.pixelheight = 480; + + vid.width = 640; + vid.height = 480; + + vid_initializing = false; + + IDirect3DDevice8_SetRenderState(pD3DDev8, D3DRS_LIGHTING, FALSE); +#else DWORD width = info->width; DWORD height = info->height; //DWORD bpp = info->bpp; @@ -808,10 +833,12 @@ static qboolean D3D8_VID_Init(rendererstate_t *info, unsigned char *palette) rf->VID_SetCursor = WIN_SetCursor; return true; +#endif } static void (D3D8_VID_DeInit) (void) { +#ifndef _XBOX Image_Shutdown(); /*final shutdown, kill the video stuff*/ @@ -840,6 +867,7 @@ static void (D3D8_VID_DeInit) (void) // Cvar_Unhook(&v_gamma); // Cvar_Unhook(&v_contrast); // Cvar_Unhook(&v_brightness); +#endif } qboolean D3D8_VID_ApplyGammaRamps (unsigned int gammarampsize, unsigned short *ramps) @@ -915,7 +943,9 @@ static char *(D3D8_VID_GetRGBInfo) (int *truevidwidth, int *truevidheight, enu } static void (D3D8_VID_SetWindowCaption) (const char *msg) { +#ifndef _XBOX SetWindowText(mainwindow, msg); +#endif } void D3D8_Set2D (void) @@ -997,6 +1027,7 @@ static qboolean (D3D8_SCR_UpdateScreen) (void) Cvar_ForceCallback(&vid_conwidth); } +#ifndef _XBOX switch (IDirect3DDevice8_TestCooperativeLevel(pD3DDev8)) { case D3DERR_DEVICELOST: @@ -1018,6 +1049,7 @@ static qboolean (D3D8_SCR_UpdateScreen) (void) default: break; } +#endif D3D8BE_Reset(false); diff --git a/engine/droid/res/drawable-ldpi/icon.png b/engine/droid/res/drawable-ldpi/icon.png index 1fa6d3c6f..bd8a778bd 100644 Binary files a/engine/droid/res/drawable-ldpi/icon.png and b/engine/droid/res/drawable-ldpi/icon.png differ diff --git a/engine/gl/gl_font.c b/engine/gl/gl_font.c index bf6b744a9..5c577e99b 100644 --- a/engine/gl/gl_font.c +++ b/engine/gl/gl_font.c @@ -5,7 +5,11 @@ #include "gl_draw.h" #ifdef _WIN32 -#include + #ifdef _XBOX + #include + #else + #include + #endif #endif #include diff --git a/engine/qclib/qccmain.c b/engine/qclib/qccmain.c index f3fd4fba0..58e30aebb 100644 --- a/engine/qclib/qccmain.c +++ b/engine/qclib/qccmain.c @@ -494,7 +494,7 @@ int QCC_CopyString (char *str) old = strofs; len = strlen(str)+1; - if (strofs + len > MAX_STRINGS) + if ( (strofs + len) > MAX_STRINGS) QCC_Error(ERR_INTERNAL, "QCC_CopyString: stringtable size limit exceeded\n"); memcpy (strings+strofs, str, len); strofs += len; @@ -511,7 +511,7 @@ int QCC_CopyStringLength (char *str, size_t length) return !flag_nullemptystr; old = strofs; - if (strofs + length > MAX_STRINGS) + if ( (strofs + length) > MAX_STRINGS) QCC_Error(ERR_INTERNAL, "QCC_CopyString: stringtable size limit exceeded\n"); memcpy (strings+strofs, str, length); strofs += length; @@ -530,7 +530,7 @@ int QCC_CopyDupBackString (char *str) old = strofs; length = strlen(str)+1; - if (strofs + length > MAX_STRINGS) + if ( (strofs + length) > MAX_STRINGS) QCC_Error(ERR_INTERNAL, "QCC_CopyString: stringtable size limit exceeded\n"); strcpy (strings+strofs, str); strofs += length; diff --git a/engine/qclib/qcd_main.c b/engine/qclib/qcd_main.c index bd309db8c..addb448f3 100644 --- a/engine/qclib/qcd_main.c +++ b/engine/qclib/qcd_main.c @@ -1,7 +1,7 @@ #include "progsint.h" #include "qcc.h" -#if !defined(NO_ZLIB) && !defined(FTE_TARGET_WEB) && !defined(NACL) +#if !defined(NO_ZLIB) && !defined(FTE_TARGET_WEB) && !defined(NACL) && !defined(_XBOX) #define AVAIL_ZLIB #endif diff --git a/engine/xdk/FTEQW_XDK.suo b/engine/xdk/FTEQW_XDK.suo index 3beb5f3aa..d8991cdaa 100644 Binary files a/engine/xdk/FTEQW_XDK.suo and b/engine/xdk/FTEQW_XDK.suo differ diff --git a/engine/xdk/FTEQW_XDK.vcproj b/engine/xdk/FTEQW_XDK.vcproj index b7f5f3e7e..6774dd141 100644 --- a/engine/xdk/FTEQW_XDK.vcproj +++ b/engine/xdk/FTEQW_XDK.vcproj @@ -316,9 +316,15 @@ + + + + @@ -397,6 +403,9 @@ + + @@ -559,6 +568,9 @@ + +