//Leaf
freeslot("MT_LEAFSPAWNER", "MT_LEAF")

addHook("MobjThinker", function(leaf)
	if (leaf and leaf.valid)
	and leaf.type == MT_LEAFSPAWNER
		if leaf.spawnleaf == nil
			leaf.spawnleaf = 0
		end
		if leaf.spawnleaf > 0
			leaf.spawnleaf = $1 - 1
		end
		if leaf.spawnleaf == 0
			leaf.spawnleaf = P_RandomRange(1*TICRATE, 5*TICRATE)
			P_SpawnMobj(leaf.x+P_RandomRange(-32*FRACUNIT, 32*FRACUNIT), leaf.y+P_RandomRange(-32*FRACUNIT, 32*FRACUNIT), leaf.z+P_RandomRange(-16*FRACUNIT, 16*FRACUNIT), MT_LEAF)
		end
	end
end, MT_LEAFSPAWNER)


addHook("MobjThinker", function(leaf)
	if leaf and leaf.valid 
	and leaf.type == MT_LEAF
	and leaf.state == S_LEAF_FALL
	and not P_IsObjectOnGround(leaf)
		P_SetObjectMomZ(leaf, -2*FRACUNIT)
	end
end, MT_LEAF)