It’s Saturday already and guess what: I haven’t finished the overview of the VectorRenderer class I promised (only a rough draft of it).
As a note to self, I’ll have to stop promising stuff until I stop sucking at meeting deadlines. Oh well, at least I didn’t spend the whole week procrastinating. Apart from exams, which always keep me busy, I spent the week working on yet another class for the new GUI, the InterfaceManager.
The InterfaceManager class isn’t really a replacement class, because its funcionality isn’t present in the current implementation of the graphical user interface. Right now, the ScummVM interface for the main menu is hooked in its startup function as a new LauncherDialog object which is created and ran as a modal inside the same function.
This approach, however, is not valid with the added complexity of the new GUI, and that’s where the InterfaceManager class comes into play. This class is the core of the extendability of the new interface, since it manages key features such as renderer initialization based on the current platform and settings, generation of dynamic drawing lists (when using dynamic drawing) or of precached shapes for the widgets, and the management of drawing updates for the widgets themselves.
Oh, and to complement this new class, I extended the functionality of the Vector Renderer. See? I told you it wouldn’t take long to change the current implementation, plus I’ve also noticed that it’s missing a key drawing feature to imitate the looks of the actual GUI, beleved borders in square shapes. That’ll be coming next week – the feature which I added this week are Drawing Steps, which allow to discretize the drawing of a complex vectorial shape in individual steps. Quite convinient for specifying such steps in an external configuration file.
Together with beveled corners, next week I’ll be busy with a lawsuit for sexual harrassment, some modifications to the current INI file parser (maybe a rehaul?), a programming exam, a numerical computation exam (yes, I also wonder what the fuck does numerical computation mean) and writing more progress updates on this blog.
Notice the stupid level of self-reference in stating an update of your TODO list as an item of your TODO list. I find this fact as amusing as Indy 4.