Development diary week 10 - GideonPARANOID/olandroid GitHub Wiki

This week I've added two main new features - an alternative 'plane style' & a autocorrection for manoeuvre height - as well as some extra manoeuvres to the catalogue (& necessary support for their intricacies).

The (flat) plane style implemented is an alternative to the grid plane. It basically consists of a plane textured with grass, though that isn't a trivial task as it involved factoring in support for textures & the required buffers into the class existing structure, as well as changing the shader code to sample. I've put in a rudimentary grass texture I made from a photo I had for the moment - there's room for improvement with it. It looks alright, though it only acts as part of a feature, as I hope to be implementing a method for modelling a plane flying through the flight at some point. This grass plane can be toggled with the grid as an alternative in the options menu.

Another feature I've added is a autocorrection for the height. Previously, it would be simple to write OLAN strings which instantly crash the planes into the ground. To change this, I've written an algorithm which goes through the cumulative matrix stack of components & manoeuvres, looking for the lowest translation on the x-axis. If this is below zero, it adds a manoeuvre annotated in the catalogue as eligible to correct the x translation being too low (a simple OLAN d manoeuvre). This stops the flight from disappearing underground! It can be toggled in the options menu too.

Manoeuvres added this week have been plenty of humpty bumps & some rolls, as well as some manoeuvres with negative length components - manoeuvres where the planes travel backwards - tailslides (OLAN ta). This involved a small refactor of the animation function, but it works well now & looks quite nice!

This week's demo!