Except today, I haven’t been programming on the patcher since 30th October.
Today, I finished one major part: Streamlining how the patcher deals with distributions. Basically, one piece of software (application, map or GUI) will be considered a distribution. A GUI may contain multiple components, such as xml files (located in cd_image\gui\) and texture files (located in cd_image\textures\Archives).
The library will read the Distribution definitions and deal with the details, so that the calling application won’t have to deal with specifics. It will get to know what has to be updated (if anything), and what needs to be downloaded.
Once the installation routine is implemented in the library, the calling application will have one less thing to worry about; It will just tell the library “Hey, I want to install this” and it’s done.
Version Checking: The DistributionComponent class will need support for specifying what version it is, and the “quick version checker” needs to use this info vs. the “version.id” file in the DistributionComponents root directory, for quick & painless version checking. This method makes it unnecessary to keep a local register of which versions are installed, as the version numbers are already present in the distribution.
The main reason restructure takes so long, is because I want its basic design to be nearly perfect for the task, so that I won’t have to go back and redo huge chunks later. As I write this, I realize that this restructure is actually me going back to redo things from scratch the 5th time. I’m just hoping I’ll manage to avoid that from happening again, for a long time.
I’m looking forward to finishing the 0.1 (restructure) branch, so that I can focus 100% on GUI and getting the application out there, for people to use.