Arch-Vile fire spawned at the wrong location

From DoomWiki.org

Under construction icon-yellow.svgThis article or section is a stub. Please help the Doom Wiki by adding to it.


A screenshot of this bug in Doom II MAP16: Suburbs.

Due to a bug in the Doom engine, the fire from the arch-vile's attack can be spawned at the wrong location.

When the fog is initially spawned, the following code is used, which contains a blatant programming error:

   //
   // A_VileTarget
   // Spawn the hellfire
   //
   void A_VileTarget (mobj_t*	actor)
   {
       mobj_t*	fog;
   
       if (!actor->target)
   	return;
   
       A_FaceTarget (actor);
   
       fog = P_SpawnMobj (actor->target->x,
   		       actor->target->x,
   		       actor->target->z, MT_FIRE);
   
       actor->tracer = fog;
       fog->target = actor;
       fog->tracer = actor->target;
       A_Fire (fog);
   }

On line 15, the actor's target's x coordinate is used again where the code should instead use the target's y coordinate. This causes the initial position of the fire to be shifted on the x-y plane relative to the target of the arch-vile's attack. Should the target become hidden from the arch-vile's line of sight before the fire's position is updated, the fire will remain in this incorrect position until it dissipates completely.

Links[edit]