A_Fire
Jump to navigation
Jump to search
void A_Fire(double spawnheight = 0)
Usage
Places the calling actor directly in front of its tracer, with a z offset of height. If height is not specified, it defaults to 0.
Essentially, this is a specific analog of A_Warp or SetOrigin functions.
Parameters
- double spawnheight
- How high above the actor's tracer the effect should appear. The default value is 0, which means it'll be warped to the tracer's bottom (legs).
ZScript definition
Note: The ZScript definition below is for reference and may be different in the current version of GZDoom.The most up-to-date version of this code can be found on GZDoom GitHub. |
void A_Fire(double spawnheight = 0)
{
Actor dest = tracer;
if (!dest || !target) return;
// don't move it if the vile lost sight
if (!target.CheckSight (dest, 0) ) return;
SetOrigin(dest.Vec3Angle(24, dest.angle, spawnheight), true);
}
See also:
Examples
The Arch-Vile from Doom uses this function in its fire attack's code to keep the fire placed on its target:
class ArchvileFire : Actor { Default { +NOBLOCKMAP +NOGRAVITY +ZDOOMTRANS RenderStyle "Add"; Alpha 1; } States { Spawn: FIRE A 2 BRIGHT A_StartFire; FIRE BAB 2 BRIGHT A_Fire; FIRE C 2 BRIGHT A_FireCrackle; FIRE BCBCDCDCDEDED 2 BRIGHT A_Fire; FIRE E 2 BRIGHT A_FireCrackle; FIRE FEFEFGHGHGH 2 BRIGHT A_Fire; Stop; } }
See also
- A_Warp — more flexible generalized variant of A_Fire.