Magical Missile Mystery Tour

Observations:
i) Projectile mobjs target the mobj that created them
ii) Revenant missiles use the mobj tracer field to track the player
iii) The archvile attack sequence uses the tracer field to place fire sprites

With that in mind:

[CODEPTR]
FRAME 318 = VileAttack


This dehacked places the VileAttack codepointer in the death frames of the revenant missile, so whenever the missile collides with something, it "attacks" its target (the revenant that fired it).

When a mobj M calls the VileAttack codepointer, the codepointer assumes that M->tracer is the fire sprite that is normally spawned during the attack sequence and changes its (x,y) coordinates to that of M->target (i.e. placing fire graphics onto the player). But if M is a revenant missile, then M->tracer is the player, and M->target is the revenant. You are the fire!

fire = actor->tracer;
fire->x = actor->target->x; fire->y = actor->target->y;

Can this be used for something cool? I don't know.

http://rbkz.net/exp/rev_tele.wad

1 comments:

Post a Comment
  1. This idea can be exploited for fun ideas, surprised nobody has bother to do so yet…

Post a Comment