surface fire
param	float	frame		1
local	color	layer_color	0 0 0
local	color	surface_color	0 0 0
local	color	surface_opac	0 0 0
local	color	layer_opac	0 0 0
local	float	width	0
local	float	cutoff	0
local	float	fade	0
local	float	f	0
local	float	turb	0
local	float	maxfreq	0
local	float	flame	0
local	float	ss	0
local	float	tt	0
local	color	red	0 0 0
local	color	orange	0 0 0
local	color	yellow	0 0 0
local	color	hot	0 0 0
initcode 0
	return
code
	pushif	16 
	popf	maxfreq 
	pushiv	1 0.3 0.1 
	popc	red 
	pushiv	0.95 0.7 0.05 
	popc	orange 
	pushiv	0.95 0.95 0.1 
	popc	yellow 
	pushiv	1 1 0.8 
	popc	hot 
	pushif	0 
	cset	surface_color 
	pushif	0 
	cset	surface_opac 
	pushif	0.01 
	mulF	frame 
	pushif	5 
	mulF	s 
	addff
	popf	ss 
	pushif	0.1 
	mulF	frame 
	addF	t 
	popf	tt 
	pushif	1e-07 
	pushf	dv 
	pushf	tt 
	Dvf
	mulff
	pushf	du 
	pushf	tt 
	Duf
	mulff
	abs
	addff
	fmax
	pushif	1e-07 
	pushf	dv 
	pushf	ss 
	Dvf
	mulff
	pushf	du 
	pushf	ss 
	Duf
	mulff
	abs
	addff
	fmax
	fmax
	popf	width 
	return_area
	pushf	maxfreq 
	pushif	0 
	pushf	width 
	pushif	0.5 
	divff
	fclamp
	popf	cutoff 
	pushif	0 
	popf	turb 
	pushif	1 
	popf	f 
label 0
	pushf	cutoff 
	pushif	0.5 
	mulff
	pushf	f 
	lt
	ifz	2
	pushf	f 
	pushif	1 
	pushif	2 
	pushf	f 
	mulF	tt 
	pushf	f 
	mulF	ss 
	noiseff
	mulff
	subff
	abs
	divff
	addF	turb 
	popf	turb 
label 1
	pushif	2 
	mulF	f 
	popf	f 
	jump	0
label 2
	pushif	1 
	pushif	0 
	pushf	cutoff 
	pushf	f 
	subF	cutoff 
	divff
	pushif	2 
	mulff
	fclamp
	popf	fade 
	pushf	f 
	pushif	1 
	pushif	2 
	pushf	f 
	mulF	tt 
	pushf	f 
	mulF	ss 
	noiseff
	mulff
	subff
	abs
	divff
	mulF	fade 
	addF	turb 
	popf	turb 
	pushif	0.5 
	mulF	turb 
	popf	turb 
	pushif	1 
	pushif	0 
	pushf	turb 
	subF	t 
	fclamp
	popf	flame 
	pushf	flame 
	cset	layer_opac 
	pushc	hot 
	pushc	hot 
	pushc	yellow 
	pushc	orange 
	pushc	red 
	pushc	red 
	pushc	red 
	pushc	red 
	pushf	flame 
	pushif	8 
	colorspline
	popc	layer_color 
	pushc	layer_opac 
	mulC	layer_color 
	pushc	layer_opac 
	pushif	1 
	ftoc
	subcc
	mulC	surface_color 
	addcc
	popc	surface_color 
	pushc	layer_opac 
	mulC	surface_opac 
	pushc	layer_opac 
	addC	surface_opac 
	subcc
	popc	surface_opac 
	cpCC	surface_opac Oi 
	cpCC	surface_color Ci 
	return