Merge remote-tracking branch 'public/master'

This commit is contained in:
Eidolon 2025-10-06 14:46:30 -05:00
commit cb9e074bda
3 changed files with 26 additions and 8 deletions

View file

@ -647,8 +647,6 @@ target_compile_options(SRB2SDL2 PRIVATE
-Wall -Wall
-Wno-c++11-compat -Wno-c++11-compat
-Wno-c++14-compat # No C++14 compat needed -Wno-c++14-compat # No C++14 compat needed
-Wc++20-extensions
-Wc++23-extensions # Disallow newer language features entirely
> >
# C++, Clang and Apple Clang # C++, Clang and Apple Clang

View file

@ -4202,6 +4202,7 @@ void G_GPCupIntoRoundQueue(cupheader_t *cup, UINT8 setgametype, boolean setencor
UINT8 i, levelindex = 0, bonusindex = 0; UINT8 i, levelindex = 0, bonusindex = 0;
UINT8 bonusmodulo = max(1, (cup->numlevels+1)/(cup->numbonus+1)); UINT8 bonusmodulo = max(1, (cup->numlevels+1)/(cup->numbonus+1));
UINT16 cupLevelNum; UINT16 cupLevelNum;
INT32 bonusgt;
// Levels are added to the queue in the following pattern. // Levels are added to the queue in the following pattern.
// For 5 Race rounds and 2 Bonus rounds, the most common case: // For 5 Race rounds and 2 Bonus rounds, the most common case:
@ -4243,9 +4244,17 @@ void G_GPCupIntoRoundQueue(cupheader_t *cup, UINT8 setgametype, boolean setencor
if (cupLevelNum < nummapheaders) if (cupLevelNum < nummapheaders)
{ {
// In the case of Bonus rounds, we simply skip invalid maps. // In the case of Bonus rounds, we simply skip invalid maps.
if ((mapheaderinfo[cupLevelNum]->typeoflevel & TOL_BATTLE) == TOL_BATTLE)
{
bonusgt = GT_BATTLE;
}
else
{
bonusgt = G_GuessGametypeByTOL(mapheaderinfo[cupLevelNum]->typeoflevel);
}
G_MapIntoRoundQueue( G_MapIntoRoundQueue(
cupLevelNum, cupLevelNum,
G_GuessGametypeByTOL(mapheaderinfo[cupLevelNum]->typeoflevel), bonusgt,
setencore, // if this isn't correct, Got_Mapcmd will fix it setencore, // if this isn't correct, Got_Mapcmd will fix it
false false
); );
@ -4313,9 +4322,22 @@ void G_GPCupIntoRoundQueue(cupheader_t *cup, UINT8 setgametype, boolean setencor
cupLevelNum = emeraldcup->cachedlevels[CUPCACHE_SPECIAL]; cupLevelNum = emeraldcup->cachedlevels[CUPCACHE_SPECIAL];
if (cupLevelNum < nummapheaders) if (cupLevelNum < nummapheaders)
{ {
// In case of multiple TOLs, prioritize Special, then Versus, then guess.
if ((mapheaderinfo[cupLevelNum]->typeoflevel & TOL_SPECIAL) == TOL_SPECIAL)
{
bonusgt = GT_SPECIAL;
}
else if ((mapheaderinfo[cupLevelNum]->typeoflevel & TOL_VERSUS) == TOL_VERSUS)
{
bonusgt = GT_VERSUS;
}
else
{
bonusgt = G_GuessGametypeByTOL(mapheaderinfo[cupLevelNum]->typeoflevel);
}
G_MapIntoRoundQueue( G_MapIntoRoundQueue(
cupLevelNum, cupLevelNum,
G_GuessGametypeByTOL(mapheaderinfo[cupLevelNum]->typeoflevel), bonusgt,
setencore, // if this isn't correct, Got_Mapcmd will fix it setencore, // if this isn't correct, Got_Mapcmd will fix it
true // Rank-restricted! true // Rank-restricted!
); );

View file

@ -477,10 +477,8 @@ void K_HandleFollower(player_t *player)
if (fl->mode == FOLLOWERMODE_GROUND) if (fl->mode == FOLLOWERMODE_GROUND)
{ {
sector_t *sec = R_PointInSubsector(sx, sy)->sector; fh = min(fh, P_FloorzAtPos(sx, sy, player->follower->z, ourheight));
ch = max(ch, P_CeilingzAtPos(sx, sy, player->follower->z, ourheight) - ourheight);
fh = min(fh, P_GetFloorZ(player->follower, sec, sx, sy, NULL));
ch = max(ch, P_GetCeilingZ(player->follower, sec, sx, sy, NULL) - ourheight);
if (P_IsObjectOnGround(player->mo) == false) if (P_IsObjectOnGround(player->mo) == false)
{ {