I worked on it over the weekend and added a couple of new features as well as ongoing changes to the command queue system and other bits.
First I added rotation, so that units must face the direction of travel before moving and so turrets face their targets before firing. I’m representing a rotation with a single byte right now, with 0 up, 64 right, 128 down and 192 left. This seems to give me enough accuracy and should do for now. This is now worked into the moving code and works fine. Units can have different turning speeds etc.
Lastly I added resources to the map. I see two choices for how to do this. First have a resource level per cell. This is just a number for each cell on the map. The second option is to define each cell that has a resource with a level and x/y co-ordinate. To fill every cell on a map this takes much more memory, but with the amount of resources on a map I’d expect it would take less. I’ve gone for the first option but I’m not sure yet if it was the best one. Still the difference in memory requirement is small but I know things will get tight!