diff options
Diffstat (limited to 'src/strife/p_mobj.c')
-rw-r--r-- | src/strife/p_mobj.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/strife/p_mobj.c b/src/strife/p_mobj.c index f0743125..f8676a95 100644 --- a/src/strife/p_mobj.c +++ b/src/strife/p_mobj.c @@ -200,10 +200,15 @@ void P_XYMovement (mobj_t* mo) else if (mo->flags & MF_MISSILE) { // haley 20110203: [STRIFE] - // This modification allows missiles to activate shoot specials + // This modification allows missiles to activate shoot specials. + // *** BUG: In vanilla Strife the second condition is simply + // if(numspechit). However, numspechit can be negative, and + // when it is, this accesses spechit[-2]. This always causes the + // DOS exe to read from NULL, and the 'special' value there (in + // DOS 6.22 at least) is 0x70, which does nothing. if(blockingline && blockingline->special) P_ShootSpecialLine(mo, blockingline); - if(numspechit) + if(numspechit > 0) P_ShootSpecialLine(mo, spechit[numspechit-1]); // explode a missile |