Merge branch 'master' into next
# Conflicts: # src/g_game.c
This commit is contained in:
commit
ef53672deb
15
appveyor.yml
15
appveyor.yml
|
@ -83,7 +83,14 @@ before_build:
|
||||||
- ccache -V
|
- ccache -V
|
||||||
- ccache -s
|
- ccache -s
|
||||||
- if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" )
|
- if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" )
|
||||||
- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 NOOBJDUMP=1 %NOUPX%"
|
- if defined [%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%] ( set "COMMIT=%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%" ) else ( set "COMMIT=%APPVEYOR_REPO_COMMIT%" )
|
||||||
|
- cmd: git rev-parse --short %COMMIT%>%TMP%/gitshort.txt
|
||||||
|
- cmd: set /P GITSHORT=<%TMP%/gitshort.txt
|
||||||
|
# for pull requests, take the owner's name only, if this isn't the same repo of course
|
||||||
|
- set "REPO=%APPVEYOR_REPO_BRANCH%"
|
||||||
|
- if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [] ( if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [%APPVEYOR_REPO_NAME%] ( for /f "delims=/" %%a in ("%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%") do set "REPO=%%a-%APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH%" ) )
|
||||||
|
- set "EXENAME=EXENAME=srb2win-%REPO%-%GITSHORT%.exe"
|
||||||
|
- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 NOOBJDUMP=1 %NOUPX% %EXENAME%"
|
||||||
- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1 GCC81=1" ) else ( set "MINGW_FLAGS=MINGW=1 GCC91=1" )
|
- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1 GCC81=1" ) else ( set "MINGW_FLAGS=MINGW=1 GCC91=1" )
|
||||||
- set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1"
|
- set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1"
|
||||||
|
|
||||||
|
@ -99,10 +106,8 @@ after_build:
|
||||||
)
|
)
|
||||||
- if [%X86_64%] == [1] ( set "CONFIGURATION=%CONFIGURATION%64" )
|
- if [%X86_64%] == [1] ( set "CONFIGURATION=%CONFIGURATION%64" )
|
||||||
- ccache -s
|
- ccache -s
|
||||||
- cmd: git rev-parse --short %APPVEYOR_REPO_COMMIT%>%TMP%/gitshort.txt
|
- set BUILD_ARCHIVE=%REPO%-%GITSHORT%-%CONFIGURATION%.7z
|
||||||
- cmd: set /P GITSHORT=<%TMP%/gitshort.txt
|
- set BUILDSARCHIVE=%REPO%-%CONFIGURATION%.7z
|
||||||
- set BUILD_ARCHIVE=%APPVEYOR_REPO_BRANCH%-%GITSHORT%-%CONFIGURATION%.7z
|
|
||||||
- set BUILDSARCHIVE=%APPVEYOR_REPO_BRANCH%-%CONFIGURATION%.7z
|
|
||||||
- cmd: 7z a %BUILD_ARCHIVE% %BUILD_PATH% -xr!.gitignore
|
- cmd: 7z a %BUILD_ARCHIVE% %BUILD_PATH% -xr!.gitignore
|
||||||
- appveyor PushArtifact %BUILD_ARCHIVE%
|
- appveyor PushArtifact %BUILD_ARCHIVE%
|
||||||
- cmd: copy %BUILD_ARCHIVE% %BUILDSARCHIVE%
|
- cmd: copy %BUILD_ARCHIVE% %BUILDSARCHIVE%
|
||||||
|
|
|
@ -651,8 +651,14 @@ void D_SRB2Loop(void)
|
||||||
// hack to start on a nice clear console screen.
|
// hack to start on a nice clear console screen.
|
||||||
COM_ImmedExecute("cls;version");
|
COM_ImmedExecute("cls;version");
|
||||||
|
|
||||||
V_DrawScaledPatch(0, 0, 0, W_CachePatchNum(W_GetNumForName("CONSBACK"), PU_CACHE));
|
|
||||||
I_FinishUpdate(); // page flip or blit buffer
|
I_FinishUpdate(); // page flip or blit buffer
|
||||||
|
/*
|
||||||
|
LMFAO this was showing garbage under OpenGL
|
||||||
|
because I_FinishUpdate was called afterward
|
||||||
|
*/
|
||||||
|
/* Smells like a hack... Don't fade Sonic's ass into the title screen. */
|
||||||
|
if (gamestate != GS_TITLESCREEN)
|
||||||
|
V_DrawScaledPatch(0, 0, 0, W_CachePatchNum(W_GetNumForName("CONSBACK"), PU_CACHE));
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
|
|
@ -662,7 +662,13 @@ INT32 G_KeyStringtoNum(const char *keystr)
|
||||||
return keystr[0];
|
return keystr[0];
|
||||||
|
|
||||||
if (!strncmp(keystr, "KEY", 3) && keystr[3] >= '0' && keystr[3] <= '9')
|
if (!strncmp(keystr, "KEY", 3) && keystr[3] >= '0' && keystr[3] <= '9')
|
||||||
return atoi(&keystr[3]);
|
{
|
||||||
|
/* what if we out of range bruh? */
|
||||||
|
j = atoi(&keystr[3]);
|
||||||
|
if (j < NUMINPUTS)
|
||||||
|
return j;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
for (j = 0; j < NUMKEYNAMES; j++)
|
for (j = 0; j < NUMKEYNAMES; j++)
|
||||||
if (!stricmp(keynames[j].name, keystr))
|
if (!stricmp(keynames[j].name, keystr))
|
||||||
|
|
|
@ -3758,6 +3758,12 @@ void M_SetupNextMenu(menu_t *menudef)
|
||||||
hidetitlemap = false;
|
hidetitlemap = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Guess I'll put this here, idk
|
||||||
|
boolean M_MouseNeeded(void)
|
||||||
|
{
|
||||||
|
return (currentMenu == &MessageDef && currentMenu->prevMenu == &OP_ChangeControlsDef);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// M_Ticker
|
// M_Ticker
|
||||||
//
|
//
|
||||||
|
|
|
@ -322,6 +322,9 @@ typedef struct menu_s
|
||||||
void M_SetupNextMenu(menu_t *menudef);
|
void M_SetupNextMenu(menu_t *menudef);
|
||||||
void M_ClearMenus(boolean callexitmenufunc);
|
void M_ClearMenus(boolean callexitmenufunc);
|
||||||
|
|
||||||
|
// Maybe this goes here????? Who knows.
|
||||||
|
boolean M_MouseNeeded(void);
|
||||||
|
|
||||||
extern menu_t *currentMenu;
|
extern menu_t *currentMenu;
|
||||||
|
|
||||||
extern menu_t MainDef;
|
extern menu_t MainDef;
|
||||||
|
|
|
@ -411,7 +411,7 @@ levelflat refers to an array of level flats,
|
||||||
or NULL if we want to allocate it now.
|
or NULL if we want to allocate it now.
|
||||||
*/
|
*/
|
||||||
static INT32
|
static INT32
|
||||||
Ploadflat (levelflat_t *levelflat, const char *flatname)
|
Ploadflat (levelflat_t *levelflat, const char *flatname, boolean resize)
|
||||||
{
|
{
|
||||||
#ifndef NO_PNG_LUMPS
|
#ifndef NO_PNG_LUMPS
|
||||||
UINT8 buffer[8];
|
UINT8 buffer[8];
|
||||||
|
@ -422,31 +422,26 @@ Ploadflat (levelflat_t *levelflat, const char *flatname)
|
||||||
|
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
if (levelflat)
|
|
||||||
{
|
|
||||||
// Scan through the already found flats, return if it matches.
|
// Scan through the already found flats, return if it matches.
|
||||||
for (i = 0; i < numlevelflats; i++)
|
for (i = 0; i < numlevelflats; i++)
|
||||||
{
|
{
|
||||||
if (strnicmp(levelflat[i].name, flatname, 8) == 0)
|
if (strnicmp(levelflat[i].name, flatname, 8) == 0)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef ZDEBUG
|
if (resize)
|
||||||
CONS_Debug(DBG_SETUP, "flat #%03d: %s\n", atoi(sizeu1(numlevelflats)), levelflat->name);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (numlevelflats >= MAXLEVELFLATS)
|
|
||||||
I_Error("Too many flats in level\n");
|
|
||||||
|
|
||||||
if (levelflat)
|
|
||||||
levelflat += numlevelflats;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// allocate new flat memory
|
// allocate new flat memory
|
||||||
levelflats = Z_Realloc(levelflats, (numlevelflats + 1) * sizeof(*levelflats), PU_LEVEL, NULL);
|
levelflats = Z_Realloc(levelflats, (numlevelflats + 1) * sizeof(*levelflats), PU_LEVEL, NULL);
|
||||||
levelflat = levelflats + numlevelflats;
|
levelflat = levelflats + numlevelflats;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (numlevelflats >= MAXLEVELFLATS)
|
||||||
|
I_Error("Too many flats in level\n");
|
||||||
|
|
||||||
|
levelflat += numlevelflats;
|
||||||
|
}
|
||||||
|
|
||||||
// Store the name.
|
// Store the name.
|
||||||
strlcpy(levelflat->name, flatname, sizeof (levelflat->name));
|
strlcpy(levelflat->name, flatname, sizeof (levelflat->name));
|
||||||
|
@ -501,6 +496,10 @@ flatfound:
|
||||||
levelflat->u.flat.baselumpnum = LUMPERROR;
|
levelflat->u.flat.baselumpnum = LUMPERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef ZDEBUG
|
||||||
|
CONS_Debug(DBG_SETUP, "flat #%03d: %s\n", atoi(sizeu1(numlevelflats)), levelflat->name);
|
||||||
|
#endif
|
||||||
|
|
||||||
return ( numlevelflats++ );
|
return ( numlevelflats++ );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -508,7 +507,7 @@ flatfound:
|
||||||
// allocate an id for it, and set the levelflat (to speedup search)
|
// allocate an id for it, and set the levelflat (to speedup search)
|
||||||
INT32 P_AddLevelFlat(const char *flatname, levelflat_t *levelflat)
|
INT32 P_AddLevelFlat(const char *flatname, levelflat_t *levelflat)
|
||||||
{
|
{
|
||||||
return Ploadflat(levelflat, flatname);
|
return Ploadflat(levelflat, flatname, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// help function for Lua and $$$.sav reading
|
// help function for Lua and $$$.sav reading
|
||||||
|
@ -517,7 +516,7 @@ INT32 P_AddLevelFlat(const char *flatname, levelflat_t *levelflat)
|
||||||
//
|
//
|
||||||
INT32 P_AddLevelFlatRuntime(const char *flatname)
|
INT32 P_AddLevelFlatRuntime(const char *flatname)
|
||||||
{
|
{
|
||||||
return Ploadflat(levelflats, flatname);
|
return Ploadflat(levelflats, flatname, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// help function for $$$.sav checking
|
// help function for $$$.sav checking
|
||||||
|
|
|
@ -110,7 +110,6 @@ static SDL_bool disable_fullscreen = SDL_FALSE;
|
||||||
#define USE_FULLSCREEN (disable_fullscreen||!allow_fullscreen)?0:cv_fullscreen.value
|
#define USE_FULLSCREEN (disable_fullscreen||!allow_fullscreen)?0:cv_fullscreen.value
|
||||||
static SDL_bool disable_mouse = SDL_FALSE;
|
static SDL_bool disable_mouse = SDL_FALSE;
|
||||||
#define USE_MOUSEINPUT (!disable_mouse && cv_usemouse.value && havefocus)
|
#define USE_MOUSEINPUT (!disable_mouse && cv_usemouse.value && havefocus)
|
||||||
#define IGNORE_MOUSE (!cv_alwaysgrabmouse.value && (menuactive || paused || con_destlines || chat_on || gamestate != GS_LEVEL))
|
|
||||||
#define MOUSE_MENU false //(!disable_mouse && cv_usemouse.value && menuactive && !USE_FULLSCREEN)
|
#define MOUSE_MENU false //(!disable_mouse && cv_usemouse.value && menuactive && !USE_FULLSCREEN)
|
||||||
#define MOUSEBUTTONS_MAX MOUSEBUTTONS
|
#define MOUSEBUTTONS_MAX MOUSEBUTTONS
|
||||||
|
|
||||||
|
@ -362,6 +361,17 @@ static INT32 Impl_SDL_Scancode_To_Keycode(SDL_Scancode code)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean IgnoreMouse(void)
|
||||||
|
{
|
||||||
|
if (cv_alwaysgrabmouse.value)
|
||||||
|
return false;
|
||||||
|
if (menuactive)
|
||||||
|
return !M_MouseNeeded();
|
||||||
|
if (paused || con_destlines || chat_on || gamestate != GS_LEVEL)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static void SDLdoGrabMouse(void)
|
static void SDLdoGrabMouse(void)
|
||||||
{
|
{
|
||||||
SDL_ShowCursor(SDL_DISABLE);
|
SDL_ShowCursor(SDL_DISABLE);
|
||||||
|
@ -388,7 +398,7 @@ void I_UpdateMouseGrab(void)
|
||||||
{
|
{
|
||||||
if (SDL_WasInit(SDL_INIT_VIDEO) == SDL_INIT_VIDEO && window != NULL
|
if (SDL_WasInit(SDL_INIT_VIDEO) == SDL_INIT_VIDEO && window != NULL
|
||||||
&& SDL_GetMouseFocus() == window && SDL_GetKeyboardFocus() == window
|
&& SDL_GetMouseFocus() == window && SDL_GetKeyboardFocus() == window
|
||||||
&& USE_MOUSEINPUT && !IGNORE_MOUSE)
|
&& USE_MOUSEINPUT && !IgnoreMouse())
|
||||||
SDLdoGrabMouse();
|
SDLdoGrabMouse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -596,7 +606,7 @@ static void Impl_HandleWindowEvent(SDL_WindowEvent evt)
|
||||||
}
|
}
|
||||||
//else firsttimeonmouse = SDL_FALSE;
|
//else firsttimeonmouse = SDL_FALSE;
|
||||||
|
|
||||||
if (USE_MOUSEINPUT && !IGNORE_MOUSE)
|
if (USE_MOUSEINPUT && !IgnoreMouse())
|
||||||
SDLdoGrabMouse();
|
SDLdoGrabMouse();
|
||||||
}
|
}
|
||||||
else if (!mousefocus && !kbfocus)
|
else if (!mousefocus && !kbfocus)
|
||||||
|
@ -647,7 +657,7 @@ static void Impl_HandleMouseMotionEvent(SDL_MouseMotionEvent evt)
|
||||||
|
|
||||||
if (USE_MOUSEINPUT)
|
if (USE_MOUSEINPUT)
|
||||||
{
|
{
|
||||||
if ((SDL_GetMouseFocus() != window && SDL_GetKeyboardFocus() != window) || (IGNORE_MOUSE && !firstmove))
|
if ((SDL_GetMouseFocus() != window && SDL_GetKeyboardFocus() != window) || (IgnoreMouse() && !firstmove))
|
||||||
{
|
{
|
||||||
SDLdoUngrabMouse();
|
SDLdoUngrabMouse();
|
||||||
firstmove = false;
|
firstmove = false;
|
||||||
|
@ -700,7 +710,7 @@ static void Impl_HandleMouseButtonEvent(SDL_MouseButtonEvent evt, Uint32 type)
|
||||||
// this apparently makes a mouse button down event but not a mouse button up event,
|
// this apparently makes a mouse button down event but not a mouse button up event,
|
||||||
// resulting in whatever key was pressed down getting "stuck" if we don't ignore it.
|
// resulting in whatever key was pressed down getting "stuck" if we don't ignore it.
|
||||||
// -- Monster Iestyn (28/05/18)
|
// -- Monster Iestyn (28/05/18)
|
||||||
if (SDL_GetMouseFocus() != window || IGNORE_MOUSE)
|
if (SDL_GetMouseFocus() != window || IgnoreMouse())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/// \todo inputEvent.button.which
|
/// \todo inputEvent.button.which
|
||||||
|
@ -1082,7 +1092,7 @@ void I_StartupMouse(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
firsttimeonmouse = SDL_FALSE;
|
firsttimeonmouse = SDL_FALSE;
|
||||||
if (cv_usemouse.value && !IGNORE_MOUSE)
|
if (cv_usemouse.value && !IgnoreMouse())
|
||||||
SDLdoGrabMouse();
|
SDLdoGrabMouse();
|
||||||
else
|
else
|
||||||
SDLdoUngrabMouse();
|
SDLdoUngrabMouse();
|
||||||
|
|
Loading…
Reference in New Issue