Doom Wiki

Welcome to the Doom Wiki! Log in and join the community.

READ MORE

Doom Wiki
This article is a stub. Please help the Doom Wiki by expanding it.

Vertical autoaim[]

Since you can't look up or down in Doom or Doom II, the system compensates for you. Accuracy is not affected by the differences in the Z-axis co-ordinates of the player and target. However, vertical autoaim will only work against targets that are within a certain distance from the player; if the target is too far away, vertical autoaim will not take effect.

Horizontal autoaim[]

The player's projectile weapons have a limited ability to adjust their direction if the nearest target is not exactly straight ahead. From P_SpawnPlayerMissile in p_mobj.c:

// see which target is to be aimed at
an = source->angle;
slope = P_AimLineAttack (source, an, 16*64*FRACUNIT);

if (!linetarget)
{
an += 1<<26;
slope = P_AimLineAttack (source, an, 16*64*FRACUNIT);

if (!linetarget)
{
an -= 2<<26;
slope = P_AimLineAttack (source, an, 16*64*FRACUNIT);
}

if (!linetarget)
{
an = source->angle;
slope = 0;
}
}

An angle in the Doom engine is 32 bits, so that 1<<26 = 360° × (226 ÷ 232) ≈ 5.6°.