Daenks/Meridian59_103 — pull request #399 by Daenks (2014-03-17 22:24:11+00:00)
Title: New Launcher/Patcher

Added a new project to the repository, under ./patcher.

Client program connects to a URL, downloads a patchinfo.txt file that contains JSON encoded hashes of each file in a known-good client. Scans the local client folder, detects changes, and downloads correct versions of all client files.

Client also supports Profiles, so you can manage and patch multiple clients. By default comes with definitions for server 103 and server 104 (Beta server). Can be used to patch any meridian client, including the Meridian.NET program, or any other server (101, 102, any new servers that pop up).

User can add, remove, or modify client profiles from within the application, or in settings.txt (JSON) stored in the same folder as the program.

Client is setup to be deployed with OneClick and will keep itself updated by downloading new versions from openmeridian.org

The "Server" is just a tool that scans a known good client to create a patchinfo.txt file for the Client to consume. Takes two parameters: --client=[path to known good client] --outfile=[file to write]

This project is still a Work In Progress and is not quite ready for mass deployment.

TODO:
* Optimize all the things
* Artwork - I want this to look pretty. It was suggested to use this image: http://s.uvlist.net/l/y2011/06/86006.jpg I will contact Zaphod and determine if we can use it.
* Fix issues when downloading a new client from scratch
* Options interface - re-size the form to show/hide the options only when needed.

Screenshot of the main window:
![image](https://f.cloud.github.com/assets/552647/2442434/2ee46b08-ae22-11e3-841c-65d0bbd2fc04.png)

Screenshot of the "Server Selection" box:
![image](https://f.cloud.github.com/assets/552647/2442442/4abb4aa4-ae22-11e3-8e3f-fffed616268d.png)

Screenshot during the modification of an existing profile:
![image](https://f.cloud.github.com/assets/552647/2442450/5e2bcb2c-ae22-11e3-9771-93084700e2fe.png)