After around 7 days of work on the geomys foundation libraries, and an 8th day spent updating the Stockings and then MU projects to use them, and I’m calling it done. Of course, it most certainly isn’t.
For one, I’ve completely left out the stockings library for now; it’ll need to be rearchitectured the same way as the platform-specific classes are in gfl. The Stockings class will become paltform-independent, wrapping up an instance of a new ASocket class, with concrete WinSocket/etc subclasses. I also have to rewrite it to new Thread classes I’ve added to gfl. In addition to making the core ready for porting, this will also break up the current ridiculously huge Stockings.cpp file into multiple smaller files, making that code more manageable.
That is the largest example, but there are plenty of other smaller ones. The basic application structure could use some tuning; pWindow was pulled to the base class AApplication but it is never addressed there except by the constructor; while I’d like to retain the ability to build console apps that run like the current ones, behaving like an ordinary console, but I’d also like to be able to run a console app using the same event model windowed applications use as well, having Update function rather than a Run. Not sure if this should be just an option with the AConsoleApplication class, or a separate sub-class, though, and it is not critical for now.
In any event, that is down the road; for now, I’ll return to the main project. First task is getting the client and server to share assets across the network; after that’s going, it’ll finally be time to tackle integrating some of my gui code. First tasks for the guis in the project are simple dialogs, the very first being a login dialog to replace the text mode login message in the gl client. There’s a lot of code overlap with the gui project, and it’s been left out of date for a long time, so I’m not looking forward to integrating it. I am looking forward to the results, though, as from there I’ll be able to start writing code to attach buttons to things, popping up nametags and labels on mouseover, and generally interacting with the world in a graphical rather than text-based way. Might want to implement a click-based walk-to method as well, while I’m at it.
Time to stop avoiding and start doing, in any case.