Franklin Wei | 5d05b9d | 2018-02-11 15:34:30 -0500 | [diff] [blame] | 1 | /* |
| 2 | Copyright (C) 1996-1997 Id Software, Inc. |
| 3 | |
| 4 | This program is free software; you can redistribute it and/or |
| 5 | modify it under the terms of the GNU General Public License |
| 6 | as published by the Free Software Foundation; either version 2 |
| 7 | of the License, or (at your option) any later version. |
| 8 | |
| 9 | This program is distributed in the hope that it will be useful, |
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| 12 | |
| 13 | See the GNU General Public License for more details. |
| 14 | |
| 15 | You should have received a copy of the GNU General Public License |
| 16 | along with this program; if not, write to the Free Software |
| 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| 18 | |
| 19 | */ |
| 20 | // winquake.h: Win32-specific Quake header file |
| 21 | |
| 22 | #pragma warning( disable : 4229 ) // mgraph gets this |
| 23 | |
| 24 | #include <windows.h> |
| 25 | #define WM_MOUSEWHEEL 0x020A |
| 26 | |
| 27 | #ifndef SERVERONLY |
| 28 | #include <ddraw.h> |
| 29 | #include <dsound.h> |
| 30 | #ifndef GLQUAKE |
| 31 | #include <mgraph.h> |
| 32 | #endif |
| 33 | #endif |
| 34 | |
| 35 | extern HINSTANCE global_hInstance; |
| 36 | extern int global_nCmdShow; |
| 37 | |
| 38 | #ifndef SERVERONLY |
| 39 | |
| 40 | extern LPDIRECTDRAW lpDD; |
| 41 | extern qboolean DDActive; |
| 42 | extern LPDIRECTDRAWSURFACE lpPrimary; |
| 43 | extern LPDIRECTDRAWSURFACE lpFrontBuffer; |
| 44 | extern LPDIRECTDRAWSURFACE lpBackBuffer; |
| 45 | extern LPDIRECTDRAWPALETTE lpDDPal; |
| 46 | extern LPDIRECTSOUND pDS; |
| 47 | extern LPDIRECTSOUNDBUFFER pDSBuf; |
| 48 | |
| 49 | extern DWORD gSndBufSize; |
| 50 | //#define SNDBUFSIZE 65536 |
| 51 | |
| 52 | void VID_LockBuffer (void); |
| 53 | void VID_UnlockBuffer (void); |
| 54 | |
| 55 | #endif |
| 56 | |
| 57 | typedef int modestate_t; |
| 58 | enum {MS_WINDOWED, MS_FULLSCREEN, MS_FULLDIB, MS_UNINIT}; |
| 59 | |
| 60 | extern modestate_t modestate; |
| 61 | |
| 62 | extern HWND mainwindow; |
| 63 | extern qboolean ActiveApp, Minimized; |
| 64 | |
| 65 | extern qboolean WinNT; |
| 66 | |
| 67 | int VID_ForceUnlockedAndReturnState (void); |
| 68 | void VID_ForceLockState (int lk); |
| 69 | |
| 70 | void IN_ShowMouse (void); |
| 71 | void IN_DeactivateMouse (void); |
| 72 | void IN_HideMouse (void); |
| 73 | void IN_ActivateMouse (void); |
| 74 | void IN_RestoreOriginalMouseState (void); |
| 75 | void IN_SetQuakeMouseState (void); |
| 76 | void IN_MouseEvent (int mstate); |
| 77 | |
| 78 | extern qboolean winsock_lib_initialized; |
| 79 | |
| 80 | extern cvar_t _windowed_mouse; |
| 81 | |
| 82 | extern int window_center_x, window_center_y; |
| 83 | extern RECT window_rect; |
| 84 | |
| 85 | extern qboolean mouseinitialized; |
| 86 | extern HWND hwnd_dialog; |
| 87 | |
| 88 | extern HANDLE hinput, houtput; |
| 89 | |
| 90 | void IN_UpdateClipCursor (void); |
| 91 | void CenterWindow(HWND hWndCenter, int width, int height, BOOL lefttopjustify); |
| 92 | |
| 93 | void S_BlockSound (void); |
| 94 | void S_UnblockSound (void); |
| 95 | |
| 96 | void VID_SetDefaultMode (void); |
| 97 | |
| 98 | int (PASCAL FAR *pWSAStartup)(WORD wVersionRequired, LPWSADATA lpWSAData); |
| 99 | int (PASCAL FAR *pWSACleanup)(void); |
| 100 | int (PASCAL FAR *pWSAGetLastError)(void); |
| 101 | SOCKET (PASCAL FAR *psocket)(int af, int type, int protocol); |
| 102 | int (PASCAL FAR *pioctlsocket)(SOCKET s, long cmd, u_long FAR *argp); |
| 103 | int (PASCAL FAR *psetsockopt)(SOCKET s, int level, int optname, |
| 104 | const char FAR * optval, int optlen); |
| 105 | int (PASCAL FAR *precvfrom)(SOCKET s, char FAR * buf, int len, int flags, |
| 106 | struct sockaddr FAR *from, int FAR * fromlen); |
| 107 | int (PASCAL FAR *psendto)(SOCKET s, const char FAR * buf, int len, int flags, |
| 108 | const struct sockaddr FAR *to, int tolen); |
| 109 | int (PASCAL FAR *pclosesocket)(SOCKET s); |
| 110 | int (PASCAL FAR *pgethostname)(char FAR * name, int namelen); |
| 111 | struct hostent FAR * (PASCAL FAR *pgethostbyname)(const char FAR * name); |
| 112 | struct hostent FAR * (PASCAL FAR *pgethostbyaddr)(const char FAR * addr, |
| 113 | int len, int type); |
| 114 | int (PASCAL FAR *pgetsockname)(SOCKET s, struct sockaddr FAR *name, |
| 115 | int FAR * namelen); |