Mess with camera distance stuff

Also fixed a bug where I made all of the screens in 3p/4p mode in OpenGL
too zoomed in
This commit is contained in:
TehRealSalt 2017-12-17 17:01:19 -05:00
parent 1f958091df
commit 654e5e482b
2 changed files with 11 additions and 7 deletions

View File

@ -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?

View File

@ -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;