Merge branch 'ocarina_of_time' into 'next'

Fix even more z-target bugs

See merge request STJr/SRB2!2574
This commit is contained in:
candelavla 2025-03-20 13:01:28 +00:00
commit dc3b0f8a45

View file

@ -1411,7 +1411,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
ticcmd_centerviewdown[forplayer] = true;
}
else if (ticcmd_centerviewdown[forplayer] || (leveltime < 5))
else if (ticcmd_centerviewdown[forplayer])
{
if (controlstyle == CS_SIMPLE)
{
@ -1426,7 +1426,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
{
if (
P_MobjWasRemoved(ticcmd_ztargetfocus[forplayer]) ||
(leveltime < 5) ||
(cv_directionchar[forplayer].value != 2) ||
(R_PointToDist2(player->mo->x, player->mo->y, ticcmd_ztargetfocus[forplayer]->x, ticcmd_ztargetfocus[forplayer]->y) > 3000<<FRACBITS) || // Locks on to the wrong mobj if too far away, so just cancel it
(player->playerstate != PST_LIVE) ||
player->exiting ||
!ticcmd_ztargetfocus[forplayer]->health ||
@ -1479,8 +1480,20 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
}
}
if (ticcmd_centerviewdown[forplayer] && controlstyle == CS_SIMPLE)
controlstyle = CS_LEGACY;
if (ticcmd_centerviewdown[forplayer] && chasecam)
{
if (controlstyle == CS_SIMPLE)
controlstyle = CS_LEGACY;
}
else if (cv_directionchar[forplayer].value == 2)
{
if (P_MobjWasRemoved(ticcmd_ztargetfocus[forplayer]) || !chasecam)
{
P_SetTarget(&ticcmd_ztargetfocus[forplayer], NULL);
CV_SetValue(&cv_directionchar[forplayer], 1);
}
}
if (PLAYERINPUTDOWN(ssplayer, GC_CAMRESET))
{