1
0
Fork 0
forked from fte/fteqw
fteqw/engine/client/winquake.h
Spoike 9ae7e2621d SOFTWARE RENDERING IS BROKEN: DO NOT USE ASM VERSION.
Lots of changes.
CSQC should be functional, but is still tied to debug builds. It WILL have some bugs still, hopefully I'll be able to clean them up better if people test it a bit.
Precompiled headers are working properly now. Compile times are now much quicker in msvc. This takes most of the files this commit.
Restructured how client commands work. They're buffered outside the network message, some multithreaded code is in. It needs a bit of testing before it's active.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@885 fc73d0e0-1445-4013-8a0c-d673dee63da5
2005-02-28 07:16:19 +00:00

203 lines
No EOL
4.6 KiB
C

/*
Copyright (C) 1996-1997 Id Software, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// winquake.h: Win32-specific Quake header file
#ifndef WINQUAKE_H
#define WINQUAKE_H
#ifdef _WIN32
#if defined(_WIN32) && !defined(WIN32)
#define WIN32 _WIN32
#endif
#ifdef MSVCDISABLEWARNINGS
#pragma warning( disable : 4229 ) // mgraph gets this
#endif
#define WIN32_LEAN_AND_MEAN
#define byte winbyte
#include <windows.h>
#include <winsock2.h>
#include <mmsystem.h>
#define _LPCWAVEFORMATEX_DEFINED
#ifndef WM_MOUSEWHEEL
#define WM_MOUSEWHEEL 0x020A
#endif
#define WM_MWHOOK (WM_USER + 1)
#ifndef SERVERONLY
#ifndef NODIRECTX
#include <ddraw.h>
#include <dsound.h>
#endif
#ifdef SWQUAKE
#ifdef MGL
#include <mgraph.h>
#endif
#endif
#endif
#undef byte
extern HINSTANCE global_hInstance;
extern int global_nCmdShow;
#ifndef SERVERONLY
#ifdef _WIN32
LONG CDAudio_MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif
#ifndef NODIRECTX
extern qboolean DDActive;
extern LPDIRECTDRAW lpDD;
extern LPDIRECTDRAWSURFACE lpPrimary;
extern LPDIRECTDRAWSURFACE lpFrontBuffer;
extern LPDIRECTDRAWSURFACE lpBackBuffer;
extern LPDIRECTDRAWPALETTE lpDDPal;
#endif
struct soundcardinfo_s {
int snd_linear_count; //change in asm_i386.h. MUST be first
float pitch[MAXSOUNDCHANNELS];
float yaw[MAXSOUNDCHANNELS];
float dist[MAXSOUNDCHANNELS];
#ifndef NODIRECTX
LPDIRECTSOUND pDS;
LPDIRECTSOUNDBUFFER pDSBuf;
LPDIRECTSOUNDBUFFER pDSPBuf;
#endif
HWAVEOUT hWaveOut;
HANDLE hData;
HGLOBAL hWaveHdr;
HPSTR lpData;
LPWAVEHDR lpWaveHdr;
DWORD mmstarttime;
DWORD gSndBufSize;
qboolean selfpainting;
qboolean inactive_sound;
#ifndef NODIRECTX
qboolean snd_isdirect;
#endif
qboolean snd_iswave;
int paintedtime;
int oldpaintedtime;
int oldsamplepos;
int buffers;
#ifndef NODIRECTX
qboolean dsound_init;
#endif
qboolean wav_init;
dma_t sn;
char name[128];
int snd_sent;
int snd_completed;
channel_t channel[MAX_CHANNELS];
int total_chans;
#ifndef NODIRECTX
#ifdef _IKsPropertySet_
LPKSPROPERTYSET EaxKsPropertiesSet;
#endif
#endif
int rawstart;
int rawend;
struct soundcardinfo_s *next;
};
//void VID_LockBuffer (void);
//void VID_UnlockBuffer (void);
#endif
extern HWND mainwindow;
extern qboolean ActiveApp, Minimized;
extern qboolean WinNT;
void IN_ShowMouse (void);
void IN_DeactivateMouse (void);
void IN_HideMouse (void);
void IN_ActivateMouse (void);
void IN_RestoreOriginalMouseState (void);
void IN_SetQuakeMouseState (void);
void IN_MouseEvent (int mstate);
extern qboolean winsock_lib_initialized;
extern int window_center_x, window_center_y;
extern RECT window_rect;
extern qboolean mouseinitialized;
extern HWND hwnd_dialog;
//extern HANDLE hinput, houtput;
void IN_UpdateClipCursor (void);
void CenterWindow(HWND hWndCenter, int width, int height, BOOL lefttopjustify);
int MapKey (int key);
void MW_Hook_Message (long buttons);
void S_BlockSound (void);
void S_UnblockSound (void);
void VID_SetDefaultMode (void);
int (PASCAL FAR *pWSAStartup)(WORD wVersionRequired, LPWSADATA lpWSAData);
int (PASCAL FAR *pWSACleanup)(void);
int (PASCAL FAR *pWSAGetLastError)(void);
SOCKET (PASCAL FAR *psocket)(int af, int type, int protocol);
int (PASCAL FAR *pioctlsocket)(SOCKET s, long cmd, u_long FAR *argp);
int (PASCAL FAR *psetsockopt)(SOCKET s, int level, int optname,
const char FAR * optval, int optlen);
int (PASCAL FAR *precvfrom)(SOCKET s, char FAR * buf, int len, int flags,
struct sockaddr FAR *from, int FAR * fromlen);
int (PASCAL FAR *psendto)(SOCKET s, const char FAR * buf, int len, int flags,
const struct sockaddr FAR *to, int tolen);
int (PASCAL FAR *pclosesocket)(SOCKET s);
int (PASCAL FAR *pgethostname)(char FAR * name, int namelen);
struct hostent FAR * (PASCAL FAR *pgethostbyname)(const char FAR * name);
struct hostent FAR * (PASCAL FAR *pgethostbyaddr)(const char FAR * addr,
int len, int type);
int (PASCAL FAR *pgetsockname)(SOCKET s, struct sockaddr FAR *name,
int FAR * namelen);
#endif
#endif