While this creates a cool effect. The explosions quickly fill up the screen. It would be better if the flares burnt out and then were removed from the Flares list. To do this, create a Boolean variable called BurnOut. Set this to False by default but set it to True for the explosion flares. Then in StepAndDraw, decrease the intensity by 5 on each step if BurnOut is True. Also for BurnOut flares we do not want to draw flare points.
Make sure to set Flare.BurnOut to True inside of ExplodeFlare within the loop. TFlare.StepAndDraw should now look something like this:
TFlare.DrawFlarePoint should now look something like this:
Back in the main project source file we should modify DrawAllFlares so that flares with intensity < 5 are automatically removed.
If you haven't already, run this program and see what happens.