diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index 8be35e4a..385b1fce 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -2026,9 +2026,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform) pglLoadIdentity(); if (stransform->splitscreen == 1 && stransform->fovxangle == 90.0f); special_splitscreen = stransform->splitscreen; - if (special_splitscreen > 1) - GLPerspective(53.13l, ASPECT_RATIO); - else if (special_splitscreen == 1) + if (special_splitscreen == 1) GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5) else GLPerspective(stransform->fovxangle, ASPECT_RATIO); @@ -2043,7 +2041,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform) pglMatrixMode(GL_PROJECTION); pglLoadIdentity(); - if (special_splitscreen) + if (special_splitscreen == 1) GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5) else //Hurdler: is "fov" correct? diff --git a/src/p_user.c b/src/p_user.c index f8649a10..926be4cc 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -8506,18 +8506,24 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall { dist = camdist; - if (splitscreen || splitscreen3 || splitscreen4) // x1.5 dist for splitscreen + // in splitscreen, mess with the camera distances to make it feel proportional to how it feels normally + if (splitscreen) // widescreen splits should get farther distance { dist = FixedMul(dist, 3*FRACUNIT/2); height = FixedMul(height, 3*FRACUNIT/2); } + else if (splitscreen3 || splitscreen4) // small screen splits should get a shorter distance (yes, oddly enough that feels better) + { + dist = FixedMul(dist, 7*FRACUNIT/8); + height = FixedMul(height, 7*FRACUNIT/8); + } // x1.2 dist for analog - if (P_AnalogMove(player)) + /*if (P_AnalogMove(player)) { dist = FixedMul(dist, 6*FRACUNIT/5); height = FixedMul(height, 6*FRACUNIT/5); - } + }*/ if (player->climbing || player->exiting || player->playerstate == PST_DEAD || (player->pflags & (PF_MACESPIN|PF_ITEMHANG|PF_ROPEHANG))) dist <<= 1;