Quite a productive hour and a half of coding: I managed to pull all the code that manipulated the funky little extra windows that came with Playgate (you can find them lurking behind the playgate window). To avoid this being messy, I split the application into two threads, one which is dedicated to talking to the auth host, and the old main thread which can exchange messages with the new thread.
Then I merged the “Patching” dialog into the main dialog. We might actually want two dialogs at the end of the day, but it will be real easy to split back out and it now behaves nicely.
The benefit of having ripped 13500 lines of code out of 21000 line project is that it is now just the details, so reimplementing it as part of a new app (or as part of the game) ought to be a lot easier.
With it stripped down like this, I can also now more easily rework the process so that it can fit any interface we decide upon. For instance, I’d like to make it so that it can tell you that a server is unavailable to you because a patch is required without requiring you to try and launch the game first (which means that the launcher app goes away and you have to restart it and re-agree to the TOS).
Oh, and I made it Vista compatible :)
Caveat: There’s nothing special or significant about the baby steps of progress I’m making; except the fact that I’m a Linux programmer and this is a Windows application.