A lot of fun.
Spent the past few days checking it out.
If you want to go off road you can, with some extra steps
Under car physics removing
w = clamp(w,-1,1)
You can go anywhere.
Issue is the only thing with a 'height map' is the road generated from the Paths.
You can create a global 2D Array to store a height map and capture points during the 'stage_model_create' phase.
1. get the length of the total grass line
2. divide it by the grid size for the height map. so a 96 width line with a 32 pixel grid gives us 3 'segments'
3. find the total z-depth by taking the known Z of the track (max) and the known z-depth of the ground (min). So a zdpeth of 100 would be 100 -0
4. we know we need to descend 100 pixels in 3 segments. or 100/33 (33)
5. for each segment calculate the point of the road to each segmented point.
basically doing
100-33 = 77 z depth
100-66 = 44
100-99 = 1
Pseudo code
...
var newXForInBetweenWall = txx + lengthdir_x(Dist,Dir);
var newYForInBetweenWall = tyy + lengthdir_y(Dist,Dir);
// round to our grid for height map
newXForInBetweenWall = round(newXForInBetweenWall/spacings)*spacings;
newYForInBetweenWall = round(newYForInBetweenWall/spacings)*spacings;
.....
global.heightm[newXForInBetweenWall, newYForInBetweenWall] = (zz/totalSegmentsOfWall) * (wallCtr);