From 31f01d076e92afb27ef1ed62476c64d68b239c60 Mon Sep 17 00:00:00 2001 From: Marisa Heit Date: Sat, 22 Oct 2016 20:27:02 -0500 Subject: [PATCH 1/2] Fixed: Decals calculated "lighting" wrong - Instead of calculating lighting based from the left edge of the wall segment the decal was on, it was calculated from the left edge of the wall instead. --- src/r_segs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/r_segs.cpp b/src/r_segs.cpp index d1ec04f6d..48d8f1651 100644 --- a/src/r_segs.cpp +++ b/src/r_segs.cpp @@ -3186,7 +3186,7 @@ static void R_RenderDecal (side_t *wall, DBaseDecal *decal, drawseg_t *clipper, rereadcolormap = false; } - rw_light = rw_lightleft + (x1 - WallC.sx1) * rw_lightstep; + rw_light = rw_lightleft + (x1 - savecoord.sx1) * rw_lightstep; if (fixedlightlev >= 0) dc_colormap = (r_fullbrightignoresectorcolor) ? (FullNormalLight.Maps + fixedlightlev) : (usecolormap->Maps + fixedlightlev); else if (fixedcolormap != NULL) From 5ba5da0dcc3deb9fbce0da00e9a7d804aeb5aea7 Mon Sep 17 00:00:00 2001 From: Marisa Heit Date: Sat, 22 Oct 2016 20:56:31 -0500 Subject: [PATCH 2/2] Fixed: Loading a savegame momentarily left players with undefined pitch limits - This was only visible when using a screen wipe because the initial frame wiped to would clamp the pitch to whatever undefined pitch range the player had before the proper range was received. --- src/p_saveg.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp index 46cdd767b..c2f79a5c6 100644 --- a/src/p_saveg.cpp +++ b/src/p_saveg.cpp @@ -638,6 +638,12 @@ static void ReadOnePlayer(FSerializer &arc, bool skipload) playerTemp.Serialize(arc); if (!skipload) { + // This temp player has undefined pitch limits, so set them to something + // that should leave the pitch stored in the savegame intact when + // rendering. The real pitch limits will be set by P_SerializePlayers() + // via a net command, but that won't be processed in time for a screen + // wipe, so we need something here. + playerTemp.MaxPitch = playerTemp.MinPitch = playerTemp.mo->Angles.Pitch; CopyPlayer(&players[i], &playerTemp, name); } else