Used by the Heretic super firemace sphere impact sequence.
Death: FX02 C 4 Bright A_DeathBallImpact FX02 GHIJ 4 Bright stop
This codepointer handles the complex behaviour of the Heretic super mace spheres on impact.
- If it has landed on any liquid, remove it (only the terrain splash will remain, which is separate from the actor).
- If it has landed on the floor, and still has vertical velocity:
- If current target is still alive, change movement direction towards it. It will go towards it even if out of sight.
- If no target, look all around in 16 directions, at a range of 640 map units, for a shootable target, and if found, change direction towards it.
- It will set the state to spawnstate and play the sound with dehackednum 354 (which in Heretic is ht_pstop). Note that the bouncing effect is actually controlled with the HERETICBOUNCES thing type flag.
- If it hits a wall or is out of vertical velocity, destroy it: set the NOGRAVITY flag, remove the LOGRAV flag and play sound with dehackednum 367 (ht_phohit). It will continue going through the current state sequence (instead of being restored to the spawn state).
This codepointer is meant to be called from a death frame, as it will restore the projectile to its spawn state if it can still move to a target.
The homing destination will be marked as "tracer" with respect to any other codepointers which allow referencing "target" vs "tracer".