Add freecam_speed: speed up freecam flying speed

This commit is contained in:
James R 2024-03-12 17:54:45 -07:00
parent 8ab3478b30
commit a0ef4fe128
2 changed files with 12 additions and 5 deletions

View file

@ -1174,6 +1174,8 @@ consvar_t cv_fov[MAXSPLITSCREENPLAYERS] = {
Player("fov4", "90").floating_point().min_max(60*FRACUNIT, 179*FRACUNIT).onchange(Fov_OnChange).dont_save(),
};
consvar_t cv_freecam_speed = Player("freecam_speed", "1").min_max(1, 10).dont_save();
void I_JoyScale(void);
void I_JoyScale2(void);
void I_JoyScale3(void);

View file

@ -2918,6 +2918,8 @@ fixed_t t_cam_rotate[MAXSPLITSCREENPLAYERS] = {-42,-42,-42,-42};
void P_DemoCameraMovement(camera_t *cam, UINT8 num)
{
extern consvar_t cv_freecam_speed;
ticcmd_t *cmd;
angle_t thrustangle;
player_t *lastp;
@ -2946,16 +2948,17 @@ void P_DemoCameraMovement(camera_t *cam, UINT8 num)
if (!cam->button_a_held)
{
int dir = ((cmd->buttons & BT_ACCELERATE) ? 1 : 0) + ((cmd->buttons & BT_BRAKE) ? -1 : 0);
fixed_t spd = 32*mapobjectscale*cv_freecam_speed.value;
switch (dir)
{
case 1:
cam->z += 32*mapobjectscale;
cam->z += spd;
moving = true;
break;
case -1:
cam->z -= 32*mapobjectscale;
cam->z -= spd;
moving = true;
break;
}
@ -3025,14 +3028,16 @@ void P_DemoCameraMovement(camera_t *cam, UINT8 num)
if (cmd->forwardmove != 0)
{
fixed_t spd = cmd->forwardmove*mapobjectscale*cv_freecam_speed.value;
thrustangle = cam->angle >> ANGLETOFINESHIFT;
cam->x += FixedMul(cmd->forwardmove*mapobjectscale, FINECOSINE(thrustangle));
cam->y += FixedMul(cmd->forwardmove*mapobjectscale, FINESINE(thrustangle));
cam->x += FixedMul(spd, FINECOSINE(thrustangle));
cam->y += FixedMul(spd, FINESINE(thrustangle));
if (!cam->reset_aiming)
{
cam->z += FixedMul(cmd->forwardmove*mapobjectscale, AIMINGTOSLOPE(cam->aiming));
cam->z += FixedMul(spd, AIMINGTOSLOPE(cam->aiming));
}
// momentums are useless here, directly add to the coordinates