Hold up/down for 2 seconds while not moving to pan the camera vertically
This commit is contained in:
parent
5f04d317b6
commit
5dd799ebd7
3 changed files with 20 additions and 1 deletions
|
|
@ -136,6 +136,9 @@ struct camera_t
|
|||
|
||||
boolean reset_aiming; // camera aiming needs to be reset from chase camera
|
||||
|
||||
// Hold up/down to pan the camera vertically
|
||||
SINT8 dpad_y_held;
|
||||
|
||||
// Interpolation data
|
||||
fixed_t old_x, old_y, old_z;
|
||||
angle_t old_angle, old_aiming;
|
||||
|
|
|
|||
13
src/p_tick.c
13
src/p_tick.c
|
|
@ -650,7 +650,18 @@ void P_RunChaseCameras(void)
|
|||
{
|
||||
if (camera[i].chase)
|
||||
{
|
||||
P_MoveChaseCamera(&players[displayplayers[i]], &camera[i], false);
|
||||
player_t *p = &players[displayplayers[i]];
|
||||
camera_t *cam = &camera[i];
|
||||
|
||||
if (p->mo && p->cmd.throwdir != 0)
|
||||
{
|
||||
if (p->speed < 6 * p->mo->scale && abs(cam->dpad_y_held) < 2*TICRATE)
|
||||
cam->dpad_y_held += intsign(p->cmd.throwdir);
|
||||
}
|
||||
else
|
||||
cam->dpad_y_held = 0;
|
||||
|
||||
P_MoveChaseCamera(p, cam, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3100,6 +3100,11 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
|
|||
focusaiming = player->aiming;
|
||||
}
|
||||
|
||||
if (abs(thiscam->dpad_y_held) >= 2*TICRATE)
|
||||
{
|
||||
focusaiming += ANGLE_45 * intsign(thiscam->dpad_y_held) * P_MobjFlip(mo);
|
||||
}
|
||||
|
||||
if (P_CameraThinker(player, thiscam, resetcalled))
|
||||
return true;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue