Sub Smoke_Emitter_Updateline
u = Mouse_X - Smoke_Emitter_X[Smoke_Emitter_New]
v = Mouse_Y - Smoke_Emitter_Y[Smoke_Emitter_New]
Smoke_Emitter_Velocity[Smoke_Emitter_New] = Math.SquareRoot(u * u + v * v)/10
If u = 0 Then
theta = Pi/2
Else
theta = Math.ArcTan(v/u)
EndIf
If (u < 0) Then
theta = Pi + theta
EndIf
Smoke_Emitter_Angle[Smoke_Emitter_New] = Theta
endsub
Sub Smoke_Emitter_Remove
Shapes.Remove(Smoke_Emitter_Line)
Shapes.Remove(Smoke_Emitter[e])
Smoke_Emitter[e] = ""
Smoke_Emitter_X[e] = ""
Smoke_Emitter_Y[e] = ""
Smoke_Emitter_Angle[e] = ""
Smoke_Emitter_Deleted[e] = 1
If Smoke_Emitter_Old = e then
Smoke_Emitter_Old = Smoke_Emitter_Old + 1
endif
endsub
Sub OnMouseDown
If Mouse.IsRightButtonDown Then
For e = Smoke_Emitter_Old+1 To Smoke_Emitter_New 'Check if the cursor is touching the Emitter:
If Mouse_X >= (Smoke_Emitter_X[e] - Smoke_Emitter_Radius) And Mouse_X <= (Smoke_Emitter_X[e] + Smoke_Emitter_Radius) And Mouse_Y >= (Smoke_Emitter_Y[e] - Smoke_Emitter_Radius) And Mouse_Y <= (Smoke_Emitter_Y[e] + Smoke_Emitter_Radius) Then
Smoke_Emitter_Remove()
endif
endfor
endif
Endsub
Sub Smoke_Emitter_Update
Smoke_Emitter_Delay = Smoke_Emitter_Delay + 1
If Smoke_Emitter_Delay >= 2 Then
Smoke_Emitter_Emit()
Smoke_Emitter_Delay = 0
endif
If Mouse.IsLeftButtonDown Then
If Mouse_LeftButtonDown = 0 Then
Smoke_Emitter_Add()
Mouse_LeftButtonDown = 1
endif
Smoke_Emitter_Updateline()
Else
Mouse_LeftButtonDown = 0
endif
endsub