mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-27 04:41:23 +00:00
Merge remote-tracking branch 'upstream/master' into defaultsoundvol
This commit is contained in:
commit
44144e379e
11 changed files with 92 additions and 49 deletions
|
@ -2244,7 +2244,7 @@ static void Command_connect(void)
|
|||
// Assume we connect directly.
|
||||
boolean viams = false;
|
||||
|
||||
if (COM_Argc() < 2)
|
||||
if (COM_Argc() < 2 || *COM_Argv(1) == 0)
|
||||
{
|
||||
CONS_Printf(M_GetText(
|
||||
"Connect <serveraddress> (port): connect to a server\n"
|
||||
|
|
22
src/d_main.c
22
src/d_main.c
|
@ -730,11 +730,6 @@ void D_StartTitle(void)
|
|||
CON_ToggleOff();
|
||||
|
||||
// Reset the palette
|
||||
#ifdef HWRENDER
|
||||
if (rendermode == render_opengl)
|
||||
HWR_SetPaletteColor(0);
|
||||
else
|
||||
#endif
|
||||
if (rendermode != render_none)
|
||||
V_SetPaletteLump("PLAYPAL");
|
||||
}
|
||||
|
@ -1068,7 +1063,7 @@ void D_SRB2Main(void)
|
|||
|
||||
// add any files specified on the command line with -file wadfile
|
||||
// to the wad list
|
||||
if (!(M_CheckParm("-connect")))
|
||||
if (!(M_CheckParm("-connect") && !M_CheckParm("-server")))
|
||||
{
|
||||
if (M_CheckParm("-file"))
|
||||
{
|
||||
|
@ -1224,7 +1219,15 @@ void D_SRB2Main(void)
|
|||
R_Init();
|
||||
|
||||
// setting up sound
|
||||
CONS_Printf("S_Init(): Setting up sound.\n");
|
||||
if (dedicated)
|
||||
{
|
||||
nosound = true;
|
||||
nomidimusic = nodigimusic = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
CONS_Printf("S_Init(): Setting up sound.\n");
|
||||
}
|
||||
if (M_CheckParm("-nosound"))
|
||||
nosound = true;
|
||||
if (M_CheckParm("-nomusic")) // combines -nomidimusic and -nodigmusic
|
||||
|
@ -1323,7 +1326,7 @@ void D_SRB2Main(void)
|
|||
ultimatemode = true;
|
||||
}
|
||||
|
||||
if (autostart || netgame || M_CheckParm("+connect") || M_CheckParm("-connect"))
|
||||
if (autostart || netgame)
|
||||
{
|
||||
gameaction = ga_nothing;
|
||||
|
||||
|
@ -1361,8 +1364,7 @@ void D_SRB2Main(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (server && !M_CheckParm("+map") && !M_CheckParm("+connect")
|
||||
&& !M_CheckParm("-connect"))
|
||||
if (server && !M_CheckParm("+map"))
|
||||
{
|
||||
// Prevent warping to nonexistent levels
|
||||
if (W_CheckNumForName(G_BuildMapName(pstartmap)) == LUMPERROR)
|
||||
|
|
|
@ -990,19 +990,41 @@ filestatus_t checkfilemd5(char *filename, const UINT8 *wantedmd5sum)
|
|||
return FS_FOUND; // will never happen, but makes the compiler shut up
|
||||
}
|
||||
|
||||
// Rewritten by Monster Iestyn to be less stupid
|
||||
// Note: if completepath is true, "filename" is modified, but only if FS_FOUND is going to be returned
|
||||
// (Don't worry about WinCE's version of filesearch, nobody cares about that OS anymore)
|
||||
filestatus_t findfile(char *filename, const UINT8 *wantedmd5sum, boolean completepath)
|
||||
{
|
||||
filestatus_t homecheck = filesearch(filename, srb2home, wantedmd5sum, false, 10);
|
||||
if (homecheck == FS_FOUND)
|
||||
return filesearch(filename, srb2home, wantedmd5sum, completepath, 10);
|
||||
filestatus_t homecheck; // store result of last file search
|
||||
boolean badmd5 = false; // store whether md5 was bad from either of the first two searches (if nothing was found in the third)
|
||||
|
||||
homecheck = filesearch(filename, srb2path, wantedmd5sum, false, 10);
|
||||
if (homecheck == FS_FOUND)
|
||||
return filesearch(filename, srb2path, wantedmd5sum, completepath, 10);
|
||||
// first, check SRB2's "home" directory
|
||||
homecheck = filesearch(filename, srb2home, wantedmd5sum, completepath, 10);
|
||||
|
||||
if (homecheck == FS_FOUND) // we found the file, so return that we have :)
|
||||
return FS_FOUND;
|
||||
else if (homecheck == FS_MD5SUMBAD) // file has a bad md5; move on and look for a file with the right md5
|
||||
badmd5 = true;
|
||||
// if not found at all, just move on without doing anything
|
||||
|
||||
// next, check SRB2's "path" directory
|
||||
homecheck = filesearch(filename, srb2path, wantedmd5sum, completepath, 10);
|
||||
|
||||
if (homecheck == FS_FOUND) // we found the file, so return that we have :)
|
||||
return FS_FOUND;
|
||||
else if (homecheck == FS_MD5SUMBAD) // file has a bad md5; move on and look for a file with the right md5
|
||||
badmd5 = true;
|
||||
// if not found at all, just move on without doing anything
|
||||
|
||||
// finally check "." directory
|
||||
#ifdef _arch_dreamcast
|
||||
return filesearch(filename, "/cd", wantedmd5sum, completepath, 10);
|
||||
homecheck = filesearch(filename, "/cd", wantedmd5sum, completepath, 10);
|
||||
#else
|
||||
return filesearch(filename, ".", wantedmd5sum, completepath, 10);
|
||||
homecheck = filesearch(filename, ".", wantedmd5sum, completepath, 10);
|
||||
#endif
|
||||
|
||||
if (homecheck != FS_NOTFOUND) // if not found this time, fall back on the below return statement
|
||||
return homecheck; // otherwise return the result we got
|
||||
|
||||
return (badmd5 ? FS_MD5SUMBAD : FS_NOTFOUND); // md5 sum bad or file not found
|
||||
}
|
||||
|
|
|
@ -3588,7 +3588,8 @@ void G_InitNew(UINT8 pultmode, const char *mapname, boolean resetplayer, boolean
|
|||
unlocktriggers = 0;
|
||||
|
||||
// clear itemfinder, just in case
|
||||
CV_StealthSetValue(&cv_itemfinder, 0);
|
||||
if (!dedicated) // except in dedicated servers, where it is not registered and can actually I_Error debug builds
|
||||
CV_StealthSetValue(&cv_itemfinder, 0);
|
||||
}
|
||||
|
||||
// internal game map
|
||||
|
|
|
@ -2901,8 +2901,8 @@ static boolean HWR_CheckBBox(fixed_t *bspcoord)
|
|||
py2 = bspcoord[checkcoord[boxpos][3]];
|
||||
|
||||
// check clip list for an open space
|
||||
angle1 = R_PointToAngle(px1, py1) - dup_viewangle;
|
||||
angle2 = R_PointToAngle(px2, py2) - dup_viewangle;
|
||||
angle1 = R_PointToAngle2(dup_viewx>>1, dup_viewy>>1, px1>>1, py1>>1) - dup_viewangle;
|
||||
angle2 = R_PointToAngle2(dup_viewx>>1, dup_viewy>>1, px2>>1, py2>>1) - dup_viewangle;
|
||||
|
||||
span = angle1 - angle2;
|
||||
|
||||
|
@ -4228,6 +4228,9 @@ static void HWR_SplitSprite(gr_vissprite_t *spr)
|
|||
i = 0;
|
||||
temp = FLOAT_TO_FIXED(realtop);
|
||||
|
||||
if (spr->mobj->frame & FF_FULLBRIGHT)
|
||||
lightlevel = 255;
|
||||
|
||||
#ifdef ESLOPE
|
||||
for (i = 1; i < sector->numlights; i++)
|
||||
{
|
||||
|
@ -4235,14 +4238,16 @@ static void HWR_SplitSprite(gr_vissprite_t *spr)
|
|||
: sector->lightlist[i].height;
|
||||
if (h <= temp)
|
||||
{
|
||||
lightlevel = *list[i-1].lightlevel;
|
||||
if (!(spr->mobj->frame & FF_FULLBRIGHT))
|
||||
lightlevel = *list[i-1].lightlevel;
|
||||
colormap = list[i-1].extra_colormap;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
i = R_GetPlaneLight(sector, temp, false);
|
||||
lightlevel = *list[i].lightlevel;
|
||||
if (!(spr->mobj->frame & FF_FULLBRIGHT))
|
||||
lightlevel = *list[i].lightlevel;
|
||||
colormap = list[i].extra_colormap;
|
||||
#endif
|
||||
|
||||
|
@ -4257,7 +4262,8 @@ static void HWR_SplitSprite(gr_vissprite_t *spr)
|
|||
// even if we aren't changing colormap or lightlevel, we still need to continue drawing down the sprite
|
||||
if (!(list[i].flags & FF_NOSHADE) && (list[i].flags & FF_CUTSPRITES))
|
||||
{
|
||||
lightlevel = *list[i].lightlevel;
|
||||
if (!(spr->mobj->frame & FF_FULLBRIGHT))
|
||||
lightlevel = *list[i].lightlevel;
|
||||
colormap = list[i].extra_colormap;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,9 @@
|
|||
*/
|
||||
fixed_t FixedMul(fixed_t a, fixed_t b)
|
||||
{
|
||||
return (fixed_t)((((INT64)a * b) ) / FRACUNIT);
|
||||
// Need to cast to unsigned before shifting to avoid undefined behaviour
|
||||
// for negative integers
|
||||
return (fixed_t)(((UINT64)((INT64)a * b)) >> FRACBITS);
|
||||
}
|
||||
|
||||
#endif //__USE_C_FIXEDMUL__
|
||||
|
|
|
@ -6295,6 +6295,13 @@ static void M_DrawConnectIPMenu(void)
|
|||
static void M_ConnectIP(INT32 choice)
|
||||
{
|
||||
(void)choice;
|
||||
|
||||
if (*setupm_ip == 0)
|
||||
{
|
||||
M_StartMessage("You must specify an IP address.\n", NULL, MM_NOTHING);
|
||||
return;
|
||||
}
|
||||
|
||||
COM_BufAddText(va("connect \"%s\"\n", setupm_ip));
|
||||
|
||||
// A little "please wait" message.
|
||||
|
@ -6536,7 +6543,7 @@ static void M_HandleSetupMultiPlayer(INT32 choice)
|
|||
if (choice < 32 || choice > 127 || itemOn != 0)
|
||||
break;
|
||||
l = strlen(setupm_name);
|
||||
if (l < MAXPLAYERNAME-1)
|
||||
if (l < MAXPLAYERNAME)
|
||||
{
|
||||
S_StartSound(NULL,sfx_menu1); // Tails
|
||||
setupm_name[l] =(char)choice;
|
||||
|
|
|
@ -2503,11 +2503,6 @@ boolean P_SetupLevel(boolean skipprecip)
|
|||
|
||||
|
||||
// Reset the palette
|
||||
#ifdef HWRENDER
|
||||
if (rendermode == render_opengl)
|
||||
HWR_SetPaletteColor(0);
|
||||
else
|
||||
#endif
|
||||
if (rendermode != render_none)
|
||||
V_SetPaletteLump("PLAYPAL");
|
||||
|
||||
|
@ -2565,6 +2560,7 @@ boolean P_SetupLevel(boolean skipprecip)
|
|||
{
|
||||
tic_t starttime = I_GetTime();
|
||||
tic_t endtime = starttime + (3*TICRATE)/2;
|
||||
tic_t nowtime;
|
||||
|
||||
S_StartSound(NULL, sfx_s3kaf);
|
||||
|
||||
|
@ -2574,9 +2570,17 @@ boolean P_SetupLevel(boolean skipprecip)
|
|||
F_WipeEndScreen();
|
||||
F_RunWipe(wipedefs[wipe_speclevel_towhite], false);
|
||||
|
||||
nowtime = lastwipetic;
|
||||
// Hold on white for extra effect.
|
||||
while (I_GetTime() < endtime)
|
||||
I_Sleep();
|
||||
while (nowtime < endtime)
|
||||
{
|
||||
// wait loop
|
||||
while (!((nowtime = I_GetTime()) - lastwipetic))
|
||||
I_Sleep();
|
||||
lastwipetic = nowtime;
|
||||
if (moviemode) // make sure we save frames for the white hold too
|
||||
M_SaveFrame();
|
||||
}
|
||||
|
||||
ranspecialwipe = 1;
|
||||
}
|
||||
|
@ -2994,7 +2998,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname)
|
|||
|
||||
if ((numlumps = W_LoadWadFile(wadfilename)) == INT16_MAX)
|
||||
{
|
||||
CONS_Printf(M_GetText("Errors occured while loading %s; not added.\n"), wadfilename);
|
||||
CONS_Printf(M_GetText("Errors occurred while loading %s; not added.\n"), wadfilename);
|
||||
return false;
|
||||
}
|
||||
else wadnum = (UINT16)(numwadfiles-1);
|
||||
|
|
|
@ -658,6 +658,14 @@ static void Impl_HandleMouseButtonEvent(SDL_MouseButtonEvent evt, Uint32 type)
|
|||
|
||||
SDL_memset(&event, 0, sizeof(event_t));
|
||||
|
||||
// Ignore the event if the mouse is not actually focused on the window.
|
||||
// This can happen if you used the mouse to restore keyboard focus;
|
||||
// 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.
|
||||
// -- Monster Iestyn (28/05/18)
|
||||
if (SDL_GetMouseFocus() != window)
|
||||
return;
|
||||
|
||||
/// \todo inputEvent.button.which
|
||||
if (USE_MOUSEINPUT)
|
||||
{
|
||||
|
|
|
@ -1180,12 +1180,6 @@ void I_StartupSound(void)
|
|||
audio.callback = I_UpdateStream;
|
||||
audio.userdata = &localdata;
|
||||
|
||||
if (dedicated)
|
||||
{
|
||||
nosound = nomidimusic = nodigimusic = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Configure sound device
|
||||
CONS_Printf("I_StartupSound:\n");
|
||||
|
||||
|
@ -1481,9 +1475,6 @@ void I_InitMusic(void)
|
|||
I_AddExitFunc(I_ShutdownGMEMusic);
|
||||
#endif
|
||||
|
||||
if ((nomidimusic && nodigimusic) || dedicated)
|
||||
return;
|
||||
|
||||
#ifdef HAVE_MIXER
|
||||
MIX_VERSION(&MIXcompiled)
|
||||
MIXlinked = Mix_Linked_Version();
|
||||
|
|
|
@ -210,17 +210,17 @@ void ST_doPaletteStuff(void)
|
|||
else
|
||||
palette = 0;
|
||||
|
||||
#ifdef HWRENDER
|
||||
if (rendermode == render_opengl)
|
||||
palette = 0; // No flashpals here in OpenGL
|
||||
#endif
|
||||
|
||||
palette = min(max(palette, 0), 13);
|
||||
|
||||
if (palette != st_palette)
|
||||
{
|
||||
st_palette = palette;
|
||||
|
||||
#ifdef HWRENDER
|
||||
if (rendermode == render_opengl)
|
||||
HWR_SetPaletteColor(0);
|
||||
else
|
||||
#endif
|
||||
if (rendermode != render_none)
|
||||
{
|
||||
V_SetPaletteLump(GetPalette()); // Reset the palette
|
||||
|
|
Loading…
Reference in a new issue