Difference between revisions of "Strife save game tracer loading glitch"

From DoomWiki.org

[checked revision][unchecked revision]
(Tracer field is not cleared even in linuxdoom source release. Also verified in chex.exe disassembly.)
(Split savegame→save game)
Line 1: Line 1:
[[Strife]] has a fix for restoring [[monster]]s' targets when loading savegames, but a similar fix for restoring the tracer target of homing [[Projectile|missile]]s was neglected.
+
{{Request move|Strife save game tracer loading glitch}}
 +
 
 +
[[Strife]] has a fix for restoring [[monster]]s' targets when loading save games, but a similar fix for restoring the tracer target of homing [[Projectile|missile]]s was neglected.
  
 
Careful observation of [[Doom II]], upon which Strife was based, has revealed that Doom II did not clear the tracer, but in fact loaded the now-stale and invalid pointer value from the previous execution of the program, and began using it as if it were fresh. [[Rogue Entertainment]]'s programmers evidently never noticed this problem.
 
Careful observation of [[Doom II]], upon which Strife was based, has revealed that Doom II did not clear the tracer, but in fact loaded the now-stale and invalid pointer value from the previous execution of the program, and began using it as if it were fresh. [[Rogue Entertainment]]'s programmers evidently never noticed this problem.

Revision as of 03:12, 8 February 2018

Strife has a fix for restoring monsters' targets when loading save games, but a similar fix for restoring the tracer target of homing missiles was neglected.

Careful observation of Doom II, upon which Strife was based, has revealed that Doom II did not clear the tracer, but in fact loaded the now-stale and invalid pointer value from the previous execution of the program, and began using it as if it were fresh. Rogue Entertainment's programmers evidently never noticed this problem.

This bug manifests in the form of random, unpredictable behavior from homing missiles after loading a save, including but not limited to appearing to fly straight, veering off in a wild direction, or homing in on a completely different object, including normally unshootable objects such as medical supplies and torches. It is theoretically possible for this error to crash the program or cause memory corruption effects, although testing seems to indicate that this virtually never occurs in practice.