mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-13 21:31:32 +00:00
Merge remote-tracking branch 'refs/remotes/srb2public/master'
This commit is contained in:
commit
42ddd32406
12 changed files with 120 additions and 54 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -18,3 +18,4 @@ Win32_LIB_ASM_Release
|
|||
*.user
|
||||
*.db
|
||||
*.opendb
|
||||
/.vs
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<AssemblerOutput>All</AssemblerOutput>
|
||||
<SmallerTypeCheck>true</SmallerTypeCheck>
|
||||
<SmallerTypeCheck>false</SmallerTypeCheck>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "p_local.h"
|
||||
#include "p_setup.h"
|
||||
#include "s_sound.h"
|
||||
#include "i_sound.h"
|
||||
#include "m_misc.h"
|
||||
#include "am_map.h"
|
||||
#include "byteptr.h"
|
||||
|
@ -135,6 +136,7 @@ static void Command_Playintro_f(void);
|
|||
|
||||
static void Command_Displayplayer_f(void);
|
||||
static void Command_Tunes_f(void);
|
||||
static void Command_RestartAudio_f(void);
|
||||
|
||||
static void Command_ExitLevel_f(void);
|
||||
static void Command_Showmap_f(void);
|
||||
|
@ -757,6 +759,7 @@ void D_RegisterClientCommands(void)
|
|||
|
||||
COM_AddCommand("displayplayer", Command_Displayplayer_f);
|
||||
COM_AddCommand("tunes", Command_Tunes_f);
|
||||
COM_AddCommand("restartaudio", Command_RestartAudio_f);
|
||||
CV_RegisterVar(&cv_resetmusic);
|
||||
|
||||
// FIXME: not to be here.. but needs be done for config loading
|
||||
|
@ -3454,8 +3457,31 @@ static void Command_Addfile(void)
|
|||
if (*p == '\\' || *p == '/' || *p == ':')
|
||||
break;
|
||||
++p;
|
||||
// check total packet size and no of files currently loaded
|
||||
{
|
||||
size_t packetsize = 0;
|
||||
serverinfo_pak *dummycheck = NULL;
|
||||
|
||||
// Shut the compiler up.
|
||||
(void)dummycheck;
|
||||
|
||||
// See W_LoadWadFile in w_wad.c
|
||||
for (i = 0; i < numwadfiles; i++)
|
||||
packetsize += nameonlylength(wadfiles[i]->filename) + 22;
|
||||
|
||||
packetsize += nameonlylength(fn) + 22;
|
||||
|
||||
if ((numwadfiles >= MAX_WADFILES)
|
||||
|| (packetsize > sizeof(dummycheck->fileneeded)))
|
||||
{
|
||||
CONS_Alert(CONS_ERROR, M_GetText("Too many files loaded to add %s\n"), fn);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
WRITESTRINGN(buf_p,p,240);
|
||||
|
||||
// calculate and check md5
|
||||
{
|
||||
UINT8 md5sum[16];
|
||||
#ifdef NOMD5
|
||||
|
@ -3473,6 +3499,15 @@ static void Command_Addfile(void)
|
|||
}
|
||||
else // file not found
|
||||
return;
|
||||
|
||||
for (i = 0; i < numwadfiles; i++)
|
||||
{
|
||||
if (!memcmp(wadfiles[i]->md5sum, md5sum, 16))
|
||||
{
|
||||
CONS_Alert(CONS_ERROR, M_GetText("%s is already loaded\n"), fn);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
WRITEMEM(buf_p, md5sum, 16);
|
||||
}
|
||||
|
@ -4352,6 +4387,27 @@ static void Command_Tunes_f(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void Command_RestartAudio_f(void)
|
||||
{
|
||||
if (dedicated) // No point in doing anything if game is a dedicated server.
|
||||
return;
|
||||
|
||||
S_StopMusic();
|
||||
I_ShutdownMusic();
|
||||
I_ShutdownSound();
|
||||
I_StartupSound();
|
||||
I_InitMusic();
|
||||
|
||||
// These must be called or no sound and music until manually set.
|
||||
|
||||
I_SetSfxVolume(cv_soundvolume.value);
|
||||
I_SetDigMusicVolume(cv_digmusicvolume.value);
|
||||
I_SetMIDIMusicVolume(cv_midimusicvolume.value);
|
||||
if (Playing()) // Gotta make sure the player is in a level
|
||||
P_RestoreMusic(&players[consoleplayer]);
|
||||
|
||||
}
|
||||
|
||||
/** Quits a game and returns to the title screen.
|
||||
*
|
||||
*/
|
||||
|
|
|
@ -122,6 +122,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)r_opengl.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -166,6 +167,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)r_opengl.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -212,6 +214,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)r_opengl.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -258,6 +261,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)r_opengl.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)s_openal.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -170,6 +171,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)s_openal.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -216,6 +218,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)s_openal.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -262,6 +265,7 @@
|
|||
</DataExecutionPrevention>
|
||||
<ImportLibrary>$(IntDir)s_openal.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
|
21
src/i_tcp.c
21
src/i_tcp.c
|
@ -215,7 +215,6 @@ static UINT8 UPNP_support = TRUE;
|
|||
|
||||
#if defined (USE_WINSOCK) && !defined (NONET)
|
||||
typedef SOCKET SOCKET_TYPE;
|
||||
#define BADSOCKET INVALID_SOCKET
|
||||
#define ERRSOCKET (SOCKET_ERROR)
|
||||
#else
|
||||
#if (defined (__unix__) && !defined (MSDOS)) || defined (__APPLE__) || defined (__HAIKU__) || defined(_PS3)
|
||||
|
@ -223,7 +222,6 @@ typedef int SOCKET_TYPE;
|
|||
#else
|
||||
typedef unsigned long SOCKET_TYPE;
|
||||
#endif
|
||||
#define BADSOCKET (SOCKET_TYPE)(~0)
|
||||
#define ERRSOCKET (-1)
|
||||
#endif
|
||||
|
||||
|
@ -232,10 +230,10 @@ typedef int socklen_t;
|
|||
#endif
|
||||
|
||||
#ifndef NONET
|
||||
static SOCKET_TYPE mysockets[MAXNETNODES+1] = {BADSOCKET};
|
||||
static SOCKET_TYPE mysockets[MAXNETNODES+1] = {ERRSOCKET};
|
||||
static size_t mysocketses = 0;
|
||||
static int myfamily[MAXNETNODES+1] = {0};
|
||||
static SOCKET_TYPE nodesocket[MAXNETNODES+1] = {BADSOCKET};
|
||||
static SOCKET_TYPE nodesocket[MAXNETNODES+1] = {ERRSOCKET};
|
||||
static mysockaddr_t clientaddress[MAXNETNODES+1];
|
||||
static mysockaddr_t broadcastaddress[MAXNETNODES+1];
|
||||
static size_t broadcastaddresses = 0;
|
||||
|
@ -647,7 +645,7 @@ static boolean FD_CPY(fd_set *src, fd_set *dst, SOCKET_TYPE *fd, size_t len)
|
|||
FD_ZERO(dst);
|
||||
for (i = 0; i < len;i++)
|
||||
{
|
||||
if(fd[i] != BADSOCKET && fd[i] != (SOCKET_TYPE)ERRSOCKET &&
|
||||
if(fd[i] != (SOCKET_TYPE)ERRSOCKET &&
|
||||
FD_ISSET(fd[i], src) && !FD_ISSET(fd[i], dst)) // no checking for dups
|
||||
{
|
||||
FD_SET(fd[i], dst);
|
||||
|
@ -725,7 +723,7 @@ static void SOCK_Send(void)
|
|||
}
|
||||
return;
|
||||
}
|
||||
else if (nodesocket[doomcom->remotenode] == BADSOCKET)
|
||||
else if (nodesocket[doomcom->remotenode] == (SOCKET_TYPE)ERRSOCKET)
|
||||
{
|
||||
for (i = 0; i < mysocketses; i++)
|
||||
{
|
||||
|
@ -777,7 +775,7 @@ static void SOCK_FreeNodenum(INT32 numnode)
|
|||
DEBFILE(va("Free node %d (%s)\n", numnode, SOCK_GetNodeAddress(numnode)));
|
||||
|
||||
nodeconnected[numnode] = false;
|
||||
nodesocket[numnode] = BADSOCKET;
|
||||
nodesocket[numnode] = ERRSOCKET;
|
||||
|
||||
// put invalid address
|
||||
memset(&clientaddress[numnode], 0, sizeof (clientaddress[numnode]));
|
||||
|
@ -804,7 +802,7 @@ static SOCKET_TYPE UDP_Bind(int family, struct sockaddr *addr, socklen_t addrlen
|
|||
#endif
|
||||
mysockaddr_t straddr;
|
||||
|
||||
if (s == (SOCKET_TYPE)ERRSOCKET || s == BADSOCKET)
|
||||
if (s == (SOCKET_TYPE)ERRSOCKET)
|
||||
return (SOCKET_TYPE)ERRSOCKET;
|
||||
#ifdef USE_WINSOCK
|
||||
{ // Alam_GBC: disable the new UDP connection reset behavior for Win2k and up
|
||||
|
@ -911,9 +909,9 @@ static boolean UDP_Socket(void)
|
|||
|
||||
|
||||
for (s = 0; s < mysocketses; s++)
|
||||
mysockets[s] = BADSOCKET;
|
||||
mysockets[s] = ERRSOCKET;
|
||||
for (s = 0; s < MAXNETNODES+1; s++)
|
||||
nodesocket[s] = BADSOCKET;
|
||||
nodesocket[s] = ERRSOCKET;
|
||||
FD_ZERO(&masterset);
|
||||
s = 0;
|
||||
|
||||
|
@ -1250,7 +1248,6 @@ static void SOCK_CloseSocket(void)
|
|||
for (i=0; i < MAXNETNODES+1; i++)
|
||||
{
|
||||
if (mysockets[i] != (SOCKET_TYPE)ERRSOCKET
|
||||
&& mysockets[i] != BADSOCKET
|
||||
&& FD_ISSET(mysockets[i], &masterset))
|
||||
{
|
||||
#if !defined (__DJGPP__) || defined (WATTCP)
|
||||
|
@ -1258,7 +1255,7 @@ static void SOCK_CloseSocket(void)
|
|||
close(mysockets[i]);
|
||||
#endif
|
||||
}
|
||||
mysockets[i] = BADSOCKET;
|
||||
mysockets[i] = ERRSOCKET;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
64
src/mserv.c
64
src/mserv.c
|
@ -102,35 +102,35 @@
|
|||
#define PACKET_SIZE 1024
|
||||
|
||||
|
||||
#define MS_NO_ERROR 0
|
||||
#define MS_SOCKET_ERROR -201
|
||||
#define MS_CONNECT_ERROR -203
|
||||
#define MS_WRITE_ERROR -210
|
||||
#define MS_READ_ERROR -211
|
||||
#define MS_CLOSE_ERROR -212
|
||||
#define MS_GETHOSTBYNAME_ERROR -220
|
||||
#define MS_GETHOSTNAME_ERROR -221
|
||||
#define MS_TIMEOUT_ERROR -231
|
||||
#define MS_NO_ERROR 0
|
||||
#define MS_SOCKET_ERROR -201
|
||||
#define MS_CONNECT_ERROR -203
|
||||
#define MS_WRITE_ERROR -210
|
||||
#define MS_READ_ERROR -211
|
||||
#define MS_CLOSE_ERROR -212
|
||||
#define MS_GETHOSTBYNAME_ERROR -220
|
||||
#define MS_GETHOSTNAME_ERROR -221
|
||||
#define MS_TIMEOUT_ERROR -231
|
||||
|
||||
// see master server code for the values
|
||||
#define ADD_SERVER_MSG 101
|
||||
#define REMOVE_SERVER_MSG 103
|
||||
#define ADD_SERVERv2_MSG 104
|
||||
#define GET_SERVER_MSG 200
|
||||
#define GET_SHORT_SERVER_MSG 205
|
||||
#define ASK_SERVER_MSG 206
|
||||
#define ANSWER_ASK_SERVER_MSG 207
|
||||
#define ASK_SERVER_MSG 206
|
||||
#define ANSWER_ASK_SERVER_MSG 207
|
||||
#define GET_MOTD_MSG 208
|
||||
#define SEND_MOTD_MSG 209
|
||||
#define GET_ROOMS_MSG 210
|
||||
#define SEND_ROOMS_MSG 211
|
||||
#define GET_ROOMS_HOST_MSG 212
|
||||
#define GET_VERSION_MSG 213
|
||||
#define SEND_VERSION_MSG 214
|
||||
#define GET_BANNED_MSG 215 // Someone's been baaaaaad!
|
||||
#define PING_SERVER_MSG 216
|
||||
#define ADD_SERVER_MSG 101
|
||||
#define REMOVE_SERVER_MSG 103
|
||||
#define ADD_SERVERv2_MSG 104
|
||||
#define GET_SERVER_MSG 200
|
||||
#define GET_SHORT_SERVER_MSG 205
|
||||
#define ASK_SERVER_MSG 206
|
||||
#define ANSWER_ASK_SERVER_MSG 207
|
||||
#define ASK_SERVER_MSG 206
|
||||
#define ANSWER_ASK_SERVER_MSG 207
|
||||
#define GET_MOTD_MSG 208
|
||||
#define SEND_MOTD_MSG 209
|
||||
#define GET_ROOMS_MSG 210
|
||||
#define SEND_ROOMS_MSG 211
|
||||
#define GET_ROOMS_HOST_MSG 212
|
||||
#define GET_VERSION_MSG 213
|
||||
#define SEND_VERSION_MSG 214
|
||||
#define GET_BANNED_MSG 215 // Someone's been baaaaaad!
|
||||
#define PING_SERVER_MSG 216
|
||||
|
||||
#define HEADER_SIZE (sizeof (INT32)*4)
|
||||
|
||||
|
@ -217,7 +217,6 @@ UINT16 current_port = 0;
|
|||
|
||||
#if (defined (_WIN32) || defined (_WIN32_WCE) || defined (_WIN32)) && !defined (NONET)
|
||||
typedef SOCKET SOCKET_TYPE;
|
||||
#define BADSOCKET INVALID_SOCKET
|
||||
#define ERRSOCKET (SOCKET_ERROR)
|
||||
#else
|
||||
#if (defined (__unix__) && !defined (MSDOS)) || defined (__APPLE__) || defined (__HAIKU__) || defined (_PS3)
|
||||
|
@ -225,7 +224,6 @@ typedef int SOCKET_TYPE;
|
|||
#else
|
||||
typedef unsigned long SOCKET_TYPE;
|
||||
#endif
|
||||
#define BADSOCKET (SOCKET_TYPE)(~0)
|
||||
#define ERRSOCKET (-1)
|
||||
#endif
|
||||
|
||||
|
@ -234,7 +232,7 @@ typedef int socklen_t;
|
|||
#endif
|
||||
|
||||
#ifndef NONET
|
||||
static SOCKET_TYPE socket_fd = BADSOCKET; // WINSOCK socket
|
||||
static SOCKET_TYPE socket_fd = ERRSOCKET; // WINSOCK socket
|
||||
static struct timeval select_timeout;
|
||||
static fd_set wset;
|
||||
static size_t recvfull(SOCKET_TYPE s, char *buf, size_t len, int flags);
|
||||
|
@ -265,9 +263,9 @@ void AddMServCommands(void)
|
|||
static void CloseConnection(void)
|
||||
{
|
||||
#ifndef NONET
|
||||
if (socket_fd != (SOCKET_TYPE)ERRSOCKET && socket_fd != BADSOCKET)
|
||||
if (socket_fd != (SOCKET_TYPE)ERRSOCKET)
|
||||
close(socket_fd);
|
||||
socket_fd = BADSOCKET;
|
||||
socket_fd = ERRSOCKET;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -385,7 +383,7 @@ static INT32 MS_Connect(const char *ip_addr, const char *str_port, INT32 async)
|
|||
while (runp != NULL)
|
||||
{
|
||||
socket_fd = socket(runp->ai_family, runp->ai_socktype, runp->ai_protocol);
|
||||
if (socket_fd != BADSOCKET && socket_fd != (SOCKET_TYPE)ERRSOCKET)
|
||||
if (socket_fd != (SOCKET_TYPE)ERRSOCKET)
|
||||
{
|
||||
if (async) // do asynchronous connection
|
||||
{
|
||||
|
|
|
@ -148,7 +148,9 @@ int main(int argc, char **argv)
|
|||
LoadLibraryA("exchndl.dll");
|
||||
}
|
||||
}
|
||||
#ifndef __MINGW32__
|
||||
prevExceptionFilter = SetUnhandledExceptionFilter(RecordExceptionInfo);
|
||||
#endif
|
||||
MakeCodeWritable();
|
||||
#endif
|
||||
// startup SRB2
|
||||
|
|
|
@ -64,7 +64,7 @@ endif
|
|||
|
||||
ifdef SDL
|
||||
i_system_o+=$(OBJDIR)/SRB2.res
|
||||
i_main_o+=$(OBJDIR)/win_dbg.o
|
||||
#i_main_o+=$(OBJDIR)/win_dbg.o
|
||||
ifndef NOHW
|
||||
OPTS+=-DUSE_WGL_SWAP
|
||||
endif
|
||||
|
@ -81,7 +81,8 @@ endif
|
|||
i_net_o=$(OBJDIR)/win_net.o
|
||||
i_system_o=$(OBJDIR)/win_sys.o $(OBJDIR)/SRB2.res
|
||||
i_sound_o=$(OBJDIR)/win_snd.o
|
||||
i_main_o=$(OBJDIR)/win_dbg.o $(OBJDIR)/win_main.o
|
||||
i_main_o=$(OBJDIR)/win_main.o
|
||||
#i_main_o+=$(OBJDIR)/win_dbg.o
|
||||
OBJS=$(OBJDIR)/dx_error.o $(OBJDIR)/fabdxlib.o $(OBJDIR)/win_vid.o $(OBJDIR)/win_dll.o
|
||||
endif
|
||||
|
||||
|
|
|
@ -244,7 +244,7 @@ static LRESULT CALLBACK MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPAR
|
|||
D_PostEvent(&ev);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
break;
|
||||
case WM_XBUTTONDOWN:
|
||||
if (nodinput)
|
||||
{
|
||||
|
@ -253,7 +253,7 @@ static LRESULT CALLBACK MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPAR
|
|||
D_PostEvent(&ev);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
break;
|
||||
case WM_MOUSEWHEEL:
|
||||
//I_OutputMsg("MW_WHEEL dispatched.\n");
|
||||
ev.type = ev_keydown;
|
||||
|
@ -666,7 +666,9 @@ int WINAPI WinMain (HINSTANCE hInstance,
|
|||
#endif
|
||||
LoadLibraryA("exchndl.dll");
|
||||
|
||||
#ifndef __MINGW32__
|
||||
prevExceptionFilter = SetUnhandledExceptionFilter(RecordExceptionInfo);
|
||||
#endif
|
||||
|
||||
Result = HandledWinMain(hInstance);
|
||||
#ifdef BUGTRAP
|
||||
|
|
|
@ -2581,7 +2581,7 @@ acquire:
|
|||
UINT64 newbuttons = joybuttons ^ lastjoybuttons;
|
||||
lastjoybuttons = joybuttons;
|
||||
|
||||
for (i = 0; i < JOYBUTTONS && i < JOYBUTTONS_MAX; i++, j <<= 1)
|
||||
for (i = 0; i < JOYBUTTONS_MIN; i++, j <<= 1)
|
||||
{
|
||||
if (newbuttons & j) // button changed state?
|
||||
{
|
||||
|
@ -2601,7 +2601,7 @@ acquire:
|
|||
UINT64 newhats = joyhats ^ lastjoyhats;
|
||||
lastjoyhats = joyhats;
|
||||
|
||||
for (i = 0; i < JOYHATS*4 && i < JOYHATS_MAX*4; i++, j <<= 1)
|
||||
for (i = 0; i < JOYHATS_MIN*4; i++, j <<= 1)
|
||||
{
|
||||
if (newhats & j) // button changed state?
|
||||
{
|
||||
|
@ -2825,7 +2825,7 @@ acquire:
|
|||
UINT64 newbuttons = joybuttons ^ lastjoy2buttons;
|
||||
lastjoy2buttons = joybuttons;
|
||||
|
||||
for (i = 0; i < JOYBUTTONS && i < JOYBUTTONS_MAX; i++, j <<= 1)
|
||||
for (i = 0; i < JOYBUTTONS_MIN; i++, j <<= 1)
|
||||
{
|
||||
if (newbuttons & j) // button changed state?
|
||||
{
|
||||
|
@ -2845,7 +2845,7 @@ acquire:
|
|||
UINT64 newhats = joyhats ^ lastjoy2hats;
|
||||
lastjoy2hats = joyhats;
|
||||
|
||||
for (i = 0; i < JOYHATS*4 && i < JOYHATS_MAX*4; i++, j <<= 1)
|
||||
for (i = 0; i < JOYHATS_MIN*4; i++, j <<= 1)
|
||||
{
|
||||
if (newhats & j) // button changed state?
|
||||
{
|
||||
|
|
|
@ -322,6 +322,7 @@ static inline boolean I_SkipFrame(void)
|
|||
case GS_LEVEL:
|
||||
if (!paused)
|
||||
return false;
|
||||
/* FALLTHRU */
|
||||
case GS_TIMEATTACK:
|
||||
#ifndef CLIENT_LOADINGSCREEN
|
||||
case GS_WAITINGPLAYERS:
|
||||
|
|
Loading…
Reference in a new issue