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:
parent
1f958091df
commit
654e5e482b
|
@ -2026,9 +2026,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
|
||||||
pglLoadIdentity();
|
pglLoadIdentity();
|
||||||
if (stransform->splitscreen == 1 && stransform->fovxangle == 90.0f);
|
if (stransform->splitscreen == 1 && stransform->fovxangle == 90.0f);
|
||||||
special_splitscreen = stransform->splitscreen;
|
special_splitscreen = stransform->splitscreen;
|
||||||
if (special_splitscreen > 1)
|
if (special_splitscreen == 1)
|
||||||
GLPerspective(53.13l, ASPECT_RATIO);
|
|
||||||
else if (special_splitscreen == 1)
|
|
||||||
GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5)
|
GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5)
|
||||||
else
|
else
|
||||||
GLPerspective(stransform->fovxangle, ASPECT_RATIO);
|
GLPerspective(stransform->fovxangle, ASPECT_RATIO);
|
||||||
|
@ -2043,7 +2041,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
|
||||||
|
|
||||||
pglMatrixMode(GL_PROJECTION);
|
pglMatrixMode(GL_PROJECTION);
|
||||||
pglLoadIdentity();
|
pglLoadIdentity();
|
||||||
if (special_splitscreen)
|
if (special_splitscreen == 1)
|
||||||
GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5)
|
GLPerspective(53.13l, 2*ASPECT_RATIO); // 53.13 = 2*atan(0.5)
|
||||||
else
|
else
|
||||||
//Hurdler: is "fov" correct?
|
//Hurdler: is "fov" correct?
|
||||||
|
|
12
src/p_user.c
12
src/p_user.c
|
@ -8506,18 +8506,24 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
|
||||||
{
|
{
|
||||||
dist = camdist;
|
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);
|
dist = FixedMul(dist, 3*FRACUNIT/2);
|
||||||
height = FixedMul(height, 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
|
// x1.2 dist for analog
|
||||||
if (P_AnalogMove(player))
|
/*if (P_AnalogMove(player))
|
||||||
{
|
{
|
||||||
dist = FixedMul(dist, 6*FRACUNIT/5);
|
dist = FixedMul(dist, 6*FRACUNIT/5);
|
||||||
height = FixedMul(height, 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)))
|
if (player->climbing || player->exiting || player->playerstate == PST_DEAD || (player->pflags & (PF_MACESPIN|PF_ITEMHANG|PF_ROPEHANG)))
|
||||||
dist <<= 1;
|
dist <<= 1;
|
||||||
|
|
Loading…
Reference in a new issue