Difference between revisions of "Arch-vile fire spawned at the wrong location"
From DoomWiki.org
[checked revision] | [checked revision] |
(Fixed the source code which was not displayed correctly) |
m (youtube now uses HTTPS by default) |
||
Line 33: | Line 33: | ||
== Links == | == Links == | ||
− | * [ | + | * [https://www.youtube.com/watch?v=w-1VYKRpVjA YouTube video] |
[[Category:Errors and bugs]] | [[Category:Errors and bugs]] |
Revision as of 17:06, 1 July 2017
This article or section is a stub. Please help the Doom Wiki by adding to it. |
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.