Merge branch 'master' into neutral-explosion-hitlag

This commit is contained in:
Sally Coolatta 2022-12-22 02:45:08 -05:00
commit ae8df1b97b
3 changed files with 41 additions and 10 deletions

View file

@ -152,7 +152,11 @@ set(SRB2_CONFIG_USEASM OFF CACHE BOOL
set(SRB2_CONFIG_YASM OFF CACHE BOOL
"Use YASM in place of NASM.")
set(SRB2_CONFIG_DEV_BUILD OFF CACHE BOOL
"Compile a development build of SRB2Kart.")
"Compile a development build of Dr Robotnik's Ring Racers.")
set(SRB2_CONFIG_TESTERS OFF CACHE BOOL
"Compile a build for testers.")
set(SRB2_CONFIG_HOSTTESTERS OFF CACHE BOOL
"Compile a build to host netgames for testers builds.")
add_subdirectory(blua)
@ -236,7 +240,7 @@ if(${SRB2_CONFIG_HAVE_ZLIB})
set(SRB2_HAVE_ZLIB ON)
target_compile_definitions(SRB2SDL2 PRIVATE -DHAVE_ZLIB)
else()
message(WARNING "You have specified that ZLIB is available but it was not found. SRB2Kart may not compile correctly.")
message(WARNING "You have specified that ZLIB is available but it was not found. Dr Robotnik's Ring Racers may not compile correctly.")
endif()
endif()
@ -259,7 +263,7 @@ if(${SRB2_CONFIG_HAVE_PNG} AND ${SRB2_CONFIG_HAVE_ZLIB})
target_compile_definitions(SRB2SDL2 PRIVATE -D_LARGEFILE64_SOURCE)
target_sources(SRB2SDL2 PRIVATE apng.c)
else()
message(WARNING "You have specified that PNG is available but it was not found. SRB2Kart may not compile correctly.")
message(WARNING "You have specified that PNG is available but it was not found. Dr Robotnik's Ring Racers may not compile correctly.")
endif()
endif()
endif()
@ -485,6 +489,12 @@ target_compile_definitions(SRB2SDL2 PRIVATE -DCMAKECONFIG)
if(SRB2_CONFIG_DEBUGMODE)
target_compile_definitions(SRB2SDL2 PRIVATE -DZDEBUG -DPARANOIA -DRANGECHECK -DPACKETDROP)
endif()
if(SRB2_CONFIG_TESTERS)
target_compile_definitions(SRB2SDL2 PRIVATE -DTESTERS)
endif()
if(SRB2_CONFIG_HOSTTESTERS)
target_compile_definitions(SRB2SDL2 PRIVATE -DHOSTTESTERS)
endif()
if(SRB2_CONFIG_MOBJCONSISTANCY)
target_compile_definitions(SRB2SDL2 PRIVATE -DMOBJCONSISTANCY)
endif()

View file

@ -277,6 +277,12 @@ P_DoSpringEx
angle_t finalAngle,
UINT16 starcolor)
{
if (object->eflags & MFE_SPRUNG)
{
// Object was already sprung this tic
return;
}
if (horizspeed < 0)
{
horizspeed = -(horizspeed);
@ -402,7 +408,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
return false;
}
spring->flags &= ~(MF_SOLID|MF_SPECIAL); // De-solidify
spring->flags |= MF_NOCLIPTHING; // De-solidify
if (spring->eflags & MFE_VERTICALFLIP)
vertispeed *= -1;
@ -445,7 +451,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
spring->angle, starcolor);
// Re-solidify
spring->flags |= (spring->info->flags & (MF_SPRING|MF_SPECIAL));
spring->flags = (spring->flags & ~(MF_NOCLIPTHING)) | (spring->info->flags & (MF_NOCLIPTHING));
if (object->player)
{
@ -2131,9 +2137,6 @@ boolean P_CheckPosition(mobj_t *thing, fixed_t x, fixed_t y, TryMoveResult_t *re
// reset special lines
numspechit = 0U;
if (tm.flags & MF_NOCLIP)
return true;
// Check things first, possibly picking things up.
// MF_NOCLIPTHING: used by camera to not be blocked by things
@ -2160,6 +2163,15 @@ boolean P_CheckPosition(mobj_t *thing, fixed_t x, fixed_t y, TryMoveResult_t *re
}
}
if (tm.flags & MF_NOCLIP)
{
// Sal 12/19/2022 -- PIT_CheckThing code will still run
// with MF_NOCLIP enabled, but they won't be blocked
// regardless of the result. This allows for SPBs and
// the UFO to collide.
return true;
}
validcount++;
// check lines
@ -2628,7 +2640,10 @@ increment_move
radius = min(radius, 16*mapobjectscale);
do {
if (thing->flags & MF_NOCLIP)
// Sal 12/19/2022 -- PIT_CheckThing code now runs
// with MF_NOCLIP enabled, so we want step-by-step
// for anything that doesn't have both enabled.
if ((thing->flags & (MF_NOCLIP|MF_NOCLIPTHING)) == (MF_NOCLIP|MF_NOCLIPTHING))
{
tryx = x;
tryy = y;

View file

@ -525,7 +525,7 @@ static void P_NetUnArchivePlayers(void)
players[i].skincolor = READUINT8(save_p);
players[i].skin = READINT32(save_p);
for (j = 0; i < MAXAVAILABILITY; j++)
for (j = 0; j < MAXAVAILABILITY; j++)
{
players[i].availabilities[j] = READUINT8(save_p);
}
@ -4875,6 +4875,7 @@ static inline boolean P_NetUnArchiveMisc(boolean reloading)
{
size_t i, j;
size_t numTasks;
UINT8 *old_save_p;
if (READUINT32(save_p) != ARCHIVEBLOCK_MISC)
I_Error("Bad $$$.sav at archive block Misc");
@ -4917,12 +4918,17 @@ static inline boolean P_NetUnArchiveMisc(boolean reloading)
encoremode = (boolean)READUINT8(save_p);
// FIXME: save_p should not be global!!!
old_save_p = save_p;
if (!P_LoadLevel(true, reloading))
{
CONS_Alert(CONS_ERROR, M_GetText("Can't load the level!\n"));
return false;
}
save_p = old_save_p;
// get the time
leveltime = READUINT32(save_p);
lastmap = READINT16(save_p);