diff --git a/engine/Makefile b/engine/Makefile index 5991d316a..336d54d06 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -367,6 +367,15 @@ SV_CFLAGS=$(SERVER_ONLY_CFLAGS) #specific targets override those defaults as needed. ifeq ($(FTE_TARGET),win32) + + #cygwin's gcc requires an extra command to use mingw instead of cygwin (default paths, etc). + ifneq ($(shell $(CC) -v 2>&1 | grep cygwin),) + W32_CFLAGS=-mno-cygwin + endif + + SV_CFLAGS=$(SERVER_ONLY_CFLAGS) $(W32_CFLAGS) + + LIBS_DIR = $(BASE_DIR)/libs SV_EXE_NAME=../fteqwsv.exe SV_LDFLAGS=libs/zlib.lib -lwsock32 @@ -381,7 +390,7 @@ endif GL_EXE_NAME=../fteglqw.exe GLCL_EXE_NAME=../fteglqwcl.exe GL_LDFLAGS=$(GLLDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 - GL_CFLAGS=$(GLCFLAGS) + GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) GLB_DIR=gl_mgw GLCL_DIR=glcl_mgw @@ -393,7 +402,7 @@ endif SW_EXE_NAME=../fteswqw.exe SWCL_EXE_NAME=../fteswqwcl.exe SW_LDFLAGS=$(SWLDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 - SW_CFLAGS=$(SWCFLAGS) + SW_CFLAGS=$(SWCFLAGS) $(W32_CFLAGS) SWB_DIR=sw_mgw SWCL_DIR=swcl_mgw @@ -405,7 +414,7 @@ endif M_EXE_NAME=../fteqw.exe MCL_EXE_NAME=../fteqwcl.exe M_LDFLAGS=$(GLLDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 - M_CFLAGS=$(SWCFLAGS) $(GLCFLAGS) + M_CFLAGS=$(SWCFLAGS) $(GLCFLAGS) $(W32_CFLAGS) MB_DIR=m_mgw MCL_DIR=mcl_mgw diff --git a/engine/client/pr_menu.c b/engine/client/pr_menu.c index 46d992150..f66cbb974 100644 --- a/engine/client/pr_menu.c +++ b/engine/client/pr_menu.c @@ -1754,12 +1754,12 @@ int MP_TranslateDPtoFTECodes(int code) void MP_Keydown(int key) { + extern qboolean keydown[K_MAX]; if (setjmp(mp_abort)) return; if (key == 'c') { - extern int keydown[]; if (keydown[K_CTRL]) { MP_Shutdown(); @@ -1768,7 +1768,6 @@ void MP_Keydown(int key) } if (key == K_ESCAPE) { - extern qboolean keydown[K_MAX]; if (keydown[K_SHIFT]) { Con_ToggleConsole_f(); diff --git a/engine/client/quakedef.h b/engine/client/quakedef.h index e1744f912..96c2c84bf 100644 --- a/engine/client/quakedef.h +++ b/engine/client/quakedef.h @@ -199,9 +199,13 @@ int VARGS linuxlike_snprintf(char *buffer, int size, const char *format, ...); int VARGS linuxlike_vsnprintf(char *buffer, int size, const char *format, va_list argptr); #endif +#ifdef _MSC_VER +//these are provided so we don't use them +//but mingw has some defines elsewhere and makes gcc moan #define _vsnprintf unsafe_vsnprintf #define _snprintf unsafe_snprintf #endif +#endif //============================================================================= diff --git a/engine/client/snd_directx.c b/engine/client/snd_directx.c index 16765814d..1f47523ce 100644 --- a/engine/client/snd_directx.c +++ b/engine/client/snd_directx.c @@ -30,7 +30,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define iDirectSoundEnumerate(a,b,c) pDirectSoundEnumerate(a,b) HRESULT (WINAPI *pDirectSoundCreate)(GUID FAR *lpGUID, LPDIRECTSOUND FAR *lplpDS, IUnknown FAR *pUnkOuter); +#if defined(VOICECHAT) && !defined(__MINGW32__) HRESULT (WINAPI *pDirectSoundCaptureCreate)(GUID FAR *lpGUID, LPDIRECTSOUNDCAPTURE FAR *lplpDS, IUnknown FAR *pUnkOuter); +#endif HRESULT (WINAPI *pDirectSoundEnumerate)(LPDSENUMCALLBACKA lpCallback, LPVOID lpContext ); // 64K is > 1 second at 16-bit, 22050 Hz @@ -122,12 +124,12 @@ static void DSOUND_Shutdown (soundcardinfo_t *sc) if (!dh) return; sc->handle = NULL; - +#ifdef _IKsPropertySet_ if (dh->EaxKsPropertiesSet) { IKsPropertySet_Release(dh->EaxKsPropertiesSet); } - +#endif if (dh->pDSBuf) { dh->pDSBuf->lpVtbl->Stop(dh->pDSBuf); @@ -149,7 +151,9 @@ static void DSOUND_Shutdown (soundcardinfo_t *sc) dh->pDS = NULL; dh->pDSBuf = NULL; dh->pDSPBuf = NULL; +#ifdef _IKsPropertySet_ dh->EaxKsPropertiesSet = NULL; +#endif Z_Free(dh); } @@ -601,6 +605,7 @@ int DSOUND_InitCard (soundcardinfo_t *sc, int cardnum) dh = sc->handle; //EAX attempt #ifndef MINIMAL +#ifdef _IKsPropertySet_ dh->pDS = NULL; if (snd_eax.value) { @@ -612,6 +617,7 @@ int DSOUND_InitCard (soundcardinfo_t *sc, int cardnum) } if (!dh->pDS) +#endif #endif { while ((hresult = iDirectSoundCreate(dsndguid, &dh->pDS, NULL)) != DS_OK) @@ -667,11 +673,13 @@ int DSOUND_InitCard (soundcardinfo_t *sc, int cardnum) dsbuf.dwBufferBytes = 0; dsbuf.lpwfxFormat = NULL; +#ifdef DSBCAPS_GLOBALFOCUS if (snd_inactive.value) { dsbuf.dwFlags |= DSBCAPS_GLOBALFOCUS; sc->inactive_sound = true; } +#endif memset(&dsbcaps, 0, sizeof(dsbcaps)); dsbcaps.dwSize = sizeof(dsbcaps); @@ -704,11 +712,13 @@ int DSOUND_InitCard (soundcardinfo_t *sc, int cardnum) memset (&dsbuf, 0, sizeof(dsbuf)); dsbuf.dwSize = sizeof(DSBUFFERDESC); dsbuf.dwFlags = DSBCAPS_CTRLFREQUENCY|DSBCAPS_LOCSOFTWARE; //dmw 29 may, 2003 removed locsoftware +#ifdef DSBCAPS_GLOBALFOCUS if (snd_inactive.value) { dsbuf.dwFlags |= DSBCAPS_GLOBALFOCUS; sc->inactive_sound = true; } +#endif dsbuf.dwBufferBytes = sc->sn.samples / format.Format.nChannels; if (!dsbuf.dwBufferBytes) { @@ -867,7 +877,7 @@ int (*pDSOUND_InitCard) (soundcardinfo_t *sc, int cardnum) = &DSOUND_InitCard; -#if defined(VOICECHAT) && !defined(NODIRECTX) +#if defined(VOICECHAT) && !defined(NODIRECTX) && !defined(__MINGW32__) diff --git a/engine/common/fs.c b/engine/common/fs.c index 3902b28cc..0e0f0918c 100644 --- a/engine/common/fs.c +++ b/engine/common/fs.c @@ -1854,6 +1854,7 @@ qboolean Sys_PathProtection(char *pattern) return true; } +#ifdef AVAIL_ZLIB typedef struct { unsigned char ident1; unsigned char ident2; @@ -2003,6 +2004,7 @@ vfsfile_t *FS_DecompressGZip(vfsfile_t *infile, gzheader_t *header) return temp; } +#endif vfsfile_t *VFS_Filter(char *filename, vfsfile_t *handle) { @@ -2010,8 +2012,8 @@ vfsfile_t *VFS_Filter(char *filename, vfsfile_t *handle) if (!handle || handle->WriteBytes || handle->seekingisabadplan) //only on readonly files return handle; - // ext = COM_FileExtension (filename); +#ifdef AVAIL_ZLIB // if (!stricmp(ext, ".gz")) { gzheader_t gzh; @@ -2024,7 +2026,7 @@ vfsfile_t *VFS_Filter(char *filename, vfsfile_t *handle) } VFS_SEEK(handle, 0); } - +#endif return handle; }