UIController done, except for the drawing. I'm not sure how I want to handle it; do screens draw on top of each other? Do we only draw _head (no that's silly)? Do we want to have a way to mark whether a screen should be drawn or not? Will come back to these questions later, after doing UIScreenLevel.
Minor changes to Camera, Orders. New orders scheme noted in What_Kinds_Of_Orders. New classes, LevelController (formerly Controller in the dia file) and FactoryScreens; the UI classes essentially just pass the calls on to LevelController, FactoryScreens is called to create new screens.
Moved screens into folder. testUIScreenLevel->testUIScreenLevelDraw; going to make a new test class for non-drawing.
How do you test if a function is called with specific parameters? By constructing an elaborate and time-wasting edifice of dummy objects around your class, in a move that could only be called moderately stupid, since there's almost zero logic in the UIScreen. A lot of effort for little gain; on the other hand I'm getting more than my fair share of use out of Python's duck-typing...this is such a terrible endeavour I have embarked upon. It's not like the tested functions are error-prone or complex...
Yeah, those were all literally one/two-line functions. I'm thinking that the tests are *probably* not worth the time and effort to set up, when concerning the UIScreens.
Two things. First, filled in UIScreenSelectTool. Second, revamped the way that the UI Flow works (consult dia for details; now True is valid return value) + wrote test and updated UIController.
UIScreenFreeLook implemented.
Sketched out rough drafts of a couple of menus. Can change later, of course.
Going to work on FactoryScreens; moved camera out of UIScreenLevel. It will now reside in FactoryScreens and be passed in the constructor to Screen objects.
While moving all the Dummy stuff to a new package I noticed that if you ran all tests, the graphical tests are seriously messed up now. I swear, I've half a mind to just continue and ignore them - but...
Okay, the cause is testUIScreenLevel. I swear, these tests cause me more grief than they save me. Hmm.
Protip: DON'T IGNORE tearDown! And now, back to the factory.
Going to see if I can't get the base menu working to the extent that you can quit from it.
Done for now, trying to hack something out that I can actually interact with.