| I'm currently trying to build a particle system up, and up until now it's worked great. It's only simple really, when the sprites alpha reaches 0, then particle & entity are deleted. 
 Anyway, I have a Fire sprite that I want to spawn a smoke sprite halfway through it's 'life'. I have it set up so when the alpha drops below a certain value and the spawn flag hasn't been triggered (FALSE), it creates a new particle and sets the spawned flag to triggered (TRUE).
 The problem is, it seems to be ignoring the triggered flag and spawning dozens, if not a couple of hundred smoke sprites! They stop eventually and continue to fade away as normal, but I only want each fire sprite to spawn one smoke sprite.
 I've checked all the varible names, etc. and in theory it should work, but this has flummoxed me completely!
 
 Could it be something to do with the way Blitz handles 'for...each' loops? I'm creating a new particle (and therefore adding to the type list) mid-loop. I've tried adding the code to a seperate loop but it's doing the same thing still. I'm not sure why it's doing this. Here's the bit of code in question:
 
 
 	For particle.particle_dat = Each particle_dat
		Select particle\ptype
			Case FIRE
				particle\r			= tween(particle\tr, particle\r, .05)
				particle\g			= tween(particle\tg, particle\g, .05)
				particle\b			= tween(particle\tb, particle\b, .05)
				particle\scale		= tween(particle\max_scale, particle\scale, .05)
				particle\alpha		= particle\alpha - Rnd(particle\fade)
				particle\spr_ang	= particle\spr_ang + Sgn(particle\spr_ang) * particle\spd
				particle\spd		= particle\spd * .92
				MoveEntity		particle\obj, 0, 0, particle\spd
				
				RotateSprite	particle\obj, particle\spr_ang
				
				ScaleSprite		particle\obj, particle\scale, particle\scale
				
				EntityColor		particle\obj, particle\r, particle\g, particle\b
				EntityAlpha		particle\obj, particle\alpha
				
				If particle\alpha < 0.25 Then
					If particle\pspawn = False Then
						create_particle(SMOKE, EntityX(particle\obj), EntityY(particle\obj), EntityZ(particle\obj), 0, 0, 0, .001)
						particle\pspawn = True
					End If
				End If
					
				
			Case SMOKE
				particle\r			= tween(particle\tr, particle\r, .02)
				particle\g			= tween(particle\tg, particle\g, .02)
				particle\b			= tween(particle\tb, particle\b, .02)
				particle\scale		= tween(particle\max_scale, particle\scale, .02)
				particle\alpha		= particle\alpha - particle\fade
				particle\spr_ang	= particle\spr_ang + Sgn(particle\spr_ang) * particle\spd
				particle\spd		= particle\spd * .5
				MoveEntity		particle\obj, 0, 0, particle\spd
				TranslateEntity particle\obj, 0, .01, 0
				
				RotateSprite	particle\obj, particle\spr_ang
				
				ScaleSprite		particle\obj, particle\scale, particle\scale
				
				EntityColor		particle\obj, particle\r, particle\g, particle\b
				EntityAlpha		particle\obj, particle\alpha
							
		End Select
	Next
 
 Thanks for any assistance!
 
 
 |