mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 12:11:25 +00:00
- A_ZoomFactor now scales turning with the FOV by default. ZOOM_NOSCALETURNING
will leave it unaltered. SVN r1694 (trunk)
This commit is contained in:
parent
bbebed61f5
commit
37b6e547cd
5 changed files with 27 additions and 6 deletions
|
@ -1,4 +1,6 @@
|
|||
June 30, 2009
|
||||
- A_ZoomFactor now scales turning with the FOV by default. ZOOM_NOSCALETURNING
|
||||
will leave it unaltered.
|
||||
- Added Gez's PowerInvisibility changes.
|
||||
- Fixed: clearflags did not clear flags6.
|
||||
- Added A_SetAngle, A_SetPitch, A_ScaleVelocity, and A_ChangeVelocity.
|
||||
|
|
|
@ -695,6 +695,12 @@ void G_AddViewPitch (int look)
|
|||
return;
|
||||
}
|
||||
look <<= 16;
|
||||
if (players[consoleplayer].playerstate != PST_DEAD && // No adjustment while dead.
|
||||
players[consoleplayer].ReadyWeapon != NULL && // No adjustment if no weapon.
|
||||
players[consoleplayer].ReadyWeapon->FOVScale > 0) // No adjustment if it is non-positive.
|
||||
{
|
||||
look = int(look * players[consoleplayer].ReadyWeapon->FOVScale);
|
||||
}
|
||||
if (!level.IsFreelookAllowed())
|
||||
{
|
||||
LocalViewPitch = 0;
|
||||
|
@ -735,7 +741,14 @@ void G_AddViewAngle (int yaw)
|
|||
{
|
||||
return;
|
||||
}
|
||||
LocalViewAngle -= yaw << 16;
|
||||
yaw <<= 16;
|
||||
if (players[consoleplayer].playerstate != PST_DEAD && // No adjustment while dead.
|
||||
players[consoleplayer].ReadyWeapon != NULL && // No adjustment if no weapon.
|
||||
players[consoleplayer].ReadyWeapon->FOVScale > 0) // No adjustment if it is non-positive.
|
||||
{
|
||||
yaw = int(yaw * players[consoleplayer].ReadyWeapon->FOVScale);
|
||||
}
|
||||
LocalViewAngle -= yaw;
|
||||
if (yaw != 0)
|
||||
{
|
||||
LocalKeyboardTurner = smooth_mouse;
|
||||
|
|
|
@ -1710,11 +1710,14 @@ DEFINE_ACTION_FUNCTION_PARAMS(AWeapon, A_ZoomFactor)
|
|||
if (self->player != NULL && self->player->ReadyWeapon != NULL)
|
||||
{
|
||||
zoom = 1 / clamp(zoom, 0.1f, 50.f);
|
||||
self->player->ReadyWeapon->FOVScale = zoom;
|
||||
if (flags & 1)
|
||||
{
|
||||
// Make the zoom instant.
|
||||
{ // Make the zoom instant.
|
||||
self->player->FOV = self->player->DesiredFOV * zoom;
|
||||
}
|
||||
if (flags & 2)
|
||||
{ // Disable pitch/yaw scaling.
|
||||
zoom = -zoom;
|
||||
}
|
||||
self->player->ReadyWeapon->FOVScale = zoom;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2002,7 +2002,9 @@ void P_PlayerThink (player_t *player)
|
|||
player->ReadyWeapon != NULL && // No adjustment if no weapon.
|
||||
player->ReadyWeapon->FOVScale != 0) // No adjustment if the adjustment is zero.
|
||||
{
|
||||
desired *= player->ReadyWeapon->FOVScale;
|
||||
// A negative scale is used top prevent G_AddViewAngle/G_AddViewPitch
|
||||
// from scaling with the FOV scale.
|
||||
desired *= fabs(player->ReadyWeapon->FOVScale);
|
||||
}
|
||||
if (player->FOV != desired)
|
||||
{
|
||||
|
@ -2087,7 +2089,7 @@ void P_PlayerThink (player_t *player)
|
|||
{
|
||||
int crouchdir = player->crouching;
|
||||
|
||||
if (crouchdir==0)
|
||||
if (crouchdir == 0)
|
||||
{
|
||||
crouchdir = (player->cmd.ucmd.buttons & BT_CROUCH)? -1 : 1;
|
||||
}
|
||||
|
|
|
@ -327,6 +327,7 @@ Actor Weapon : Inventory native
|
|||
|
||||
action native A_ZoomFactor(float scale = 1, int flags = 0);
|
||||
const int ZOOM_INSTANT = 1;
|
||||
const int ZOOM_NOSCALETURNING = 2;
|
||||
}
|
||||
|
||||
ACTOR WeaponGiver : Weapon native
|
||||
|
|
Loading…
Reference in a new issue