Hello again,
I'm right away posting another contribution.
I was looking at the strafing feature (another nice addition ;-) and what it could take to allow backwards movement.
The code is nearly ready so I gave it a try just to find out some strange outcome.
It led me to find a bug in current nightly when strafing diagonally.
The movement preview shows correctly that it will cost 7 TUs (and should cost 3 Energy).
However it actually costs 5 TUs and 5 Energy because the engine has both "strafe" and "run" flags set.
This is incorrect IMHO so I tried to fix this.
The fix also fixed the incorrect behaviour mentioned above when backwards strafing was enabled.
Specifically, the movement around building corner (X +- 1, Y +- 1) was affected, which has the same basic properties as diagonal movement.
I'm attaching both file patches, bug fix and strafe enhancement.
I have done just basic testing, please if you try it, let me know how it works.
Thanks, Marek