I've not yet made a patch, because I'd like to commit the agreed parts by myself into the SVN. I'd like to have my name on the commits (in the SVN logs) and don't want someone else to commit my code under their name. I know anybody can make a patch from my released code and just do it, and so I can only express my wish hat I'd appreciate it much if I can do the commits with my name on them.
But to do my part of the agreement, I have commited today's code to Sourceforge:
http://simutrans.svn.sourceforge.net/viewvc/simutrans/simutrans/branches/ironbite/The SVN on Sourceforge says I have changed 437 files, but that is counted against my last Iron Bite release. Compared to Simutrans Standard, there are much less changes - it just shows how much changes I had done in between, and how many now have been reverted by going back to the ST Standard codebase.
Things to discuss - the "total insulation" pattern from the book, I guess, will be a good start for reviewing my new code.
An example of the "total insulation" pattern applied to my new "options" dialog. The header file was free'd of all other header imports, but the base class:
http://simutrans.svn.sourceforge.net/viewvc/simutrans/simutrans/branches/ironbite/gui/optionen.h?revision=799&view=markupThe code now looks like this:
http://simutrans.svn.sourceforge.net/viewvc/simutrans/simutrans/branches/ironbite/gui/optionen.cc?revision=799&view=markupThis pattern has two benefits:
1) If a header file changes, only very few code files must be recompiled.
2) Even for a full compile each code file will compile faster, because there are only few transitive header dependencies.
In case of the UI code, the "private data" class doesn't look too bad. With some other code the pattern might produce less nice results. So I give you this example for inspection, so you can let me know if you like the pattern, or if you don't want it in official Simutrans code.
Code formatting was not changed to comply with ST Standard style yet, but is in my preferred bracing style. I know it must be changed to comply with ST Standard coding rules.