I worked for a while. Once more I have a hard time remembering what all I did — mostly improvements in the prototype system’s tracking of whether it’s saved to file or not. I hid everything behind some get/set functions now, so that the prototype can tell when it is changed and flag itself appropriately. Tomorrow I’m probably going to set up levels and maps to do the same thing, so that I have a reliable method of tracking the save status that is internal to the class (rather than having to make sure to follow certain practices outside of the class when using it).
This is really just good design. A class should be as idiot-proof as you can make it — any usage that isn’t obvious should be arbitrated through one that is, wherever possible. More and more, as this project goes on, do I appreciate principles and best practices like that. Of course, there are plenty of other ‘best practices’ that are just slow, monotonous, inconvenient, and unnecessary — it’s really only experience that can show you which are which.