Thanks!
The map is generated using a list of 2d points. I start by choosing a random point on the left side of the scene, and then start placing points outward from there. I basically just keep track of an angle at which the road should be drawn in, and every time I place a point I adjust that angle by a random amount. I have some safety checks in there, like the road can never go backwards, and the road is too far up or too far down it forces the angle back on track. When I get a certain distance from the start I stop generating points, and that's the end of the level.
For the decorations and stuff, I just populate the entire map with trees and then remove trees that are a certain distance from each node on the path. Enemies are then placed randomly in trees near the road, and soldiers are placed along the road every couple of nodes or so.
Does that make sense?