Notes |
|
|
Replicable. Inspection of beam.cpp shows that the check for beam firing only takes place during the beam warmup. There is no way to turn off the beams mid-firing (if the firing ship has been destroyed). |
|
|
|
There is code that is supposed to serve this purpose, in beam_move_all_pre():
// check if parent object has died, if so then delete beam
if (b->objp->type == OBJ_NONE) {
// set next beam
moveup = GET_NEXT(moveup);
// delete current beam
beam_delete(b);
continue;
}
The object's type should be set to OBJ_NONE when it's deleted, which should happen shortly after OF_SHOULD_BE_DEAD gets set, which should happen if the ship is either vaporized or finished exploding.
Is the problem that beams aren't stopping during the process of dying? Because that seems like intended behavior. |
|
|
|
Verified that ships upon final death have their beams deleted. Tested with the attached mission.
Press 1 to fire beam.
Press 2 to vaporize ship.
OR
Press 3 to self destruct ship.
Recommend closing. |
|