MantisBT - Zandronum
View Issue Details
0001435Zandronum[All Projects] Bugpublic2013-07-27 21:482018-09-30 23:17
NeuralStunner 
Torr Samaho 
normalminoralways
closedfixed 
1.2 
2.0 
0001435: PUFFGETSOWNER Fails in Certain Cases
If the puff enters its Crash state (due to hitting a wall or missing), it will not target the shooter correctly.
At the end of the P_SpawnPuff function in p_mobj.cpp:


    // [BB] If the puff came from a player, set the target of the puff to this player.
    if ( puff && (puff->flags5 & MF5_PUFFGETSOWNER))
        puff->target = source;

    return puff;
}


ZDoom (r2129), however, sets this pointer closer to the function's beginning:

    puff = Spawn (pufftype, x, y, z, ALLOW_REPLACE);
    if (puff == NULL) return NULL;

    // [BB] If the puff came from a player, set the target of the puff to this player.
    if ( puff && (puff->flags5 & MF5_PUFFGETSOWNER))
        puff->target = source;


In ZDoom's case, the Target assignment works perfectly. I duplicated this move in a local Zandronum build and it too was fixed.
No tags attached.
Issue History
2013-07-27 21:48NeuralStunnerNew Issue
2013-07-27 22:30DuskAdditional Information Updatedbug_revision_view_page.php?rev_id=3805#r3805
2013-12-18 00:11NeuralStunnerNote Added: 0007711
2013-12-27 11:52Torr SamahoAssigned To => Torr Samaho
2013-12-27 11:52Torr SamahoStatusnew => resolved
2013-12-27 11:52Torr SamahoResolutionopen => fixed
2013-12-27 11:52Torr SamahoProduct Version => 1.2
2013-12-27 11:52Torr SamahoFixed in Version => 2.0
2018-09-30 23:17Blzut3Statusresolved => closed

Notes
(0007711)
NeuralStunner   
2013-12-18 00:11   
Checking against the beta source, this is fixed in 2.0 (and can be closed as such).